helpf.pro
Регистрация

v8: Как распечатать содержимое ФормыСписка с отбором?

Vzonder
12.01.2017 22:32Прочитано: 2595

1С 8.2 УП 10.3

Создал форму списка документа с отбором:

В Процедуре ПриОткрытии()

Код 1C v 8.х
 
ДокументСписок.Отбор.Сбросить();
ДокументСписок.Отбор.ЭтапыПродажи.ВидСравнения=ВидСравнения.Равно;
ДокументСписок.Отбор.ЭтапыПродажи.Значение="Отгружать ТК"; 
ДокументСписок.Отбор.ЭтапыПродажи.Установить();

Открывается форма со списком документов, в котором перечислены документы у которых в реквизите ЭтапыПродажи значение Равно Отгружать ТК.

Если создать кнопку с присвоенной процедурой из конструктора печати, то на печать выводится весь список без отбора….

Код 1C v 8.х
 
Процедура ПечатьСписка(Элемент)

ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ЗаказПокупателя.ПолучитьМакет("ПечатьСписка");

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

КонецПроцедуры

На всякий случай уточню, печать не документов из списка, а именно список (перечень) документов.

Конечно можно использовать штатную кнопку Вывести список выбрать реквизиты и распечатать.

Только при этом нет возможности влиять на макет…

Вопрос:

Как в процедуру ПечатьСписка внести отбор документов по содержанию реквизита?

Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
13.01.2017 02:58Ответ № 1

Через построительОтчета надо, передаешь в него список как источник данных:

Код 1C v 8.2 УП
 Процедура ДействияФормыПечать(Кнопка)

//Список для вывода
Список = ЭтаФорма.ТабличноеПолеСпискаДокументов;

//Табличный документ и его параметры
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьСетку = Ложь;

//Макет
Макет = Документы.Доставка.ПолучитьМакет("МакетСписок");

//Обозначение облостей макета
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

//Вывод облости макета
ТабДок.Вывести(ОбластьШапка);

//Читаем список через построитель отчета
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Список);
Выборка = Построитель.Результат.Выбрать();

Пока Выборка.Следующий() Цикл

ОбработкаПрерыванияПользователя();
ОбластьСтрока.Параметры.Заполнить(Выборка);

//Вывод области макета
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;

//Показываем сформированную печатную форму
ТабДок.Показать();
КонецПроцедуры
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.