Печать динамического списка в 1С
Приветствую, мои маленькие любители длинных запросов … и динамических списков в 1С.
Сегодня мы с вами рассмотрим довольно нетривиальную в прошлом задачу: вывод на печать содержимого динамического списка с учетом установленных пользователем отборов и, даже, наложенного через Ctrl+F поиска .
До версии 8.3.6 эта задача ставила в тупик немалую часть разработчиков, многие предпочитали отмахиваться от хотелок пользователей фразами, вроде «технически не реализуемо», или рисовали свои поля поиска, вместо типовых.
В 8.3.6 все изменилось. Динамический список перестал был «черным ящиком» и получил ряд методов, позволяющих «подсмотреть», что именно в текущий момент видит пользователь.
Думаю, рисование кнопки на форме и создание команды формы можно опустить. Перейдем к сути добавленных методов.
ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Возвращает полностью готовую к употреблению схему компоновки данных. Более не требуется анализировать произвольный запрос, основные таблицы и прочее.
ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
Возвращает настройки компоновки данных со всеми отборами, пользовательским поиском, отображаемыми колонками и, даже, сортировкой и оформлением списка.
После нам остается лишь использовать результаты этих функций, чтобы вывести данные в печатную форму или коллекцию значений.
Подсмотреть код программного формирования схемы компоновки можно тут.
Если ограничиться выводом, «как есть», то достаточно следующих строк кода:
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабличныйДокумент = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Взято отсюда.
Comments
So empty here ... leave a comment!