powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Фиксация в отчетах на СКД
9 сообщений из 9, страница 1 из 1
Фиксация в отчетах на СКД
    #36372051
1С ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с примитивной задачкой, а как оно делается на СКД и не знаю :( Подскажите кто-нибудь, как заставить отчет на СКД "автоматом" делать фиксацию слева и сверху для таблицы данных??
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36373831
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКД,СхемаКДНастройки);//Настройки);

ПроцессорКД = Новый ПроцессорКомпоновкиДанных;
ПроцессорКД.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных);
//Вывожу Результат компоновки данных в табличный документ.
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКД);

ДокументРезультат.ОтображатьСетку = Ложь;
//Фиксация колонок слева
ДокументРезультат.ФиксацияСверху=?(ПоРубрикам,?(ИспользоватьРазрезы,?(ПоСкладам,5,4),?(ПоСкладам,4,3)),?(ИспользоватьРазрезы,?(ПоСкладам,6,5),?(ПоСкладам,5,?(ДоляПродаж,4,3))));
ДокументРезультат.ФиксацияСлева=?(КодРубрика,2,1);
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36373837
//Фиксация сверху и слева
ДокументРезультат.ФиксацияСверху=?(ПоРубрикам,?(ИспользоватьРазрезы,?(ПоСкладам,5,4),?(ПоСкладам,4,3)),?(ИспользоватьРазрезы,?(ПоСкладам,6,5),?(ПоСкладам,5,?(ДоляПродаж,4,3))));
ДокументРезультат.ФиксацияСлева=?(КодРубрика,2,1);
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36373848
В данном примере вывод осуществляется средствами СКД в табличный документ. Фиксация делается свойством табличного документа ФиксацияСлева(сверху).
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36373955
1С ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это-то понятно. но у меня написано:
авторзаставить отчет на СКД "автоматом"
Вопрос, можно ли задать в самом конструкторе СКД, чтобы не дорабатывая напильником скд сама фиксировала заголовок таблицы/строки (отделяла фиксацией ту часть таблицы, где выводятся ресурсы).

Видимо, такой возможности действительно нет.
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36381342
Димитрий_Галин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогичный вопрос
Как зафиксировать Отчет в том месте, где начинаются ресурсы?
Корректнее наверно сформулировать так:
Как определить ячейку табличного докумена, где появляется первый ресурс?
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36531465
В СКД не предусмотрена фиксация строк и колонок табличного документа.
Высоту таблицы после вывода шапки (за строчку до того как начнут выводиться ресурсы :) можно определить по настройкам СКД на момент вывода процессором, т.е. вывод в процедуре, а не по стандартной кнопке Сформировать. Высота таблицы зависит от режимов вывода заголовка, параметров(и их числа) и отбора.
Все сказанное работает при использовании встроенного макета.
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36904498
Паучог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergeyrm(at)mailточкаru,
Процедура глВывестиРезультатКомпоновкиСАвтофиксациейСтрок( Таб,
ПроцессорКомпоновкиДанных,
ЭлементыРасшировки,
Знач МассивИгнорируемыхПолей = Неопределено,
РазрешитьПрерывание = Истина) Экспорт

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб);
ПроцессорВывода.НачатьВывод();
ФиксацияВыполнена = Ложь;
Если МассивИгнорируемыхПолей = Неопределено Тогда
МассивИгнорируемыхПолей = Новый Массив;
КонецЕсли;
Пока Истина Цикл
ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий();
Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
Прервать;
КонецЕсли;

// Автофиксация
Если Не ФиксацияВыполнена Тогда
Для Каждого ЗначениеПараметра Из ЭлементРезультатаКомпоновкиДанных.ЗначенияПараметров Цикл
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ЗначенияПолейРасшифровки = ЭлементыРасшировки[ЗначениеПараметра.Значение].ПолучитьПоля();
Для Каждого ЗначениеПоляРасшифровки Из ЗначенияПолейРасшифровки Цикл
Если МассивИгнорируемыхПолей.Найти(ЗначениеПоляРасшифровки.Поле) = Неопределено Тогда
Таб.ФиксацияСверху = Таб.ВысотаТаблицы;
ФиксацияВыполнена = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ФиксацияВыполнена Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;

ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных);
Если РазрешитьПрерывание Тогда
#Если Клиент тогда
ОбработкаПрерыванияПользователя();
#КонецЕсли
КонецЕсли;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры
...
Рейтинг: 0 / 0
Фиксация в отчетах на СКД
    #36904559
1C ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. интересовала возможность автоматически выводить. смирившись с необходимостью допиливать уже давно допилил сам. :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Фиксация в отчетах на СКД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]