Top.Mail.Ru

Печать динамического списка в 1С

Приветствую, мои маленькие любители длинных запросов … и динамических списков в 1С.
Сегодня мы с вами рассмотрим довольно нетривиальную в прошлом задачу: вывод на печать содержимого динамического списка с учетом установленных пользователем отборов и, даже, наложенного через Ctrl+F поиска .
До версии 8.3.6 эта задача ставила в тупик немалую часть разработчиков, многие предпочитали отмахиваться от хотелок пользователей фразами, вроде «технически не реализуемо», или рисовали свои поля поиска, вместо типовых.
В 8.3.6 все изменилось. Динамический список перестал был «черным ящиком» и получил ряд методов, позволяющих «подсмотреть», что именно в текущий момент видит пользователь.
Думаю, рисование кнопки на форме и создание команды формы можно опустить. Перейдем к сути добавленных методов.

ПолучитьИсполняемуюСхемуКомпоновкиДанных();

Возвращает полностью готовую к употреблению схему компоновки данных. Более не требуется анализировать произвольный запрос, основные таблицы и прочее.

ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

Возвращает настройки компоновки данных со всеми отборами, пользовательским поиском, отображаемыми колонками и, даже, сортировкой и оформлением списка.

После нам остается лишь использовать результаты этих функций, чтобы вывести данные в печатную форму или коллекцию значений.
Подсмотреть код программного формирования схемы компоновки можно тут.
Если ограничиться выводом, «как есть», то достаточно следующих строк кода:

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);

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

ТабличныйДокумент = ПроцессорВывода.Вывести(ПроцессорКомпоновки);

Взято отсюда.

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar