Версия для печати темы (https://pro1c.org.ua/index.php?s=ce9761a420c5e7b06de5bd7ff87994bd&showtopic=34514)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Как распечатать содержимое ФормыСписка с отбором?

Автор: Vzonder 12.01.17, 21:38

1С 8.2 УП 10.3

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

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

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


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

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

Процедура ПечатьСписка(Элемент)

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

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

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

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

Автор: Vofka 13.01.17, 9:52

Выборка = Документы.ЗаказПокупателя.Выбрать();

Почитайте в СП описание метода Выбрать. Там среди прочих параметров есть параметр Отбор, нужно его задействовать.

Автор: Flexy 13.01.17, 10:41

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

Автор: Vofka 13.01.17, 11:36

Flexy, а СписокДокументов где взять? И, как по мне, использовать построитель сегодня это моветон smile.gif .

Автор: Flexy 13.01.17, 12:03

Vofka @ Сегодня, 11:36 * ,
Так автор же написал, что создал форму списка документов.
А про построитель...может и моветон, но такую попсовую задачу, как печать списка документов вполне решает.

З.Ы. Это ж обычные формы. Для управляемых наверное надо выгадывать более кошерное решение smile.gif

Автор: Vofka 13.01.17, 12:32

Flexy @ Сегодня, 12:03 * ,
согласен. Сбило с толку название переменной СписокДокументов. Если бы там было указано ДокументСписок, то вопрос бы не возник smile.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua