Печать реализаций из отчета продажи



Печать документов "реализация товаров и услуг" из формы любого отчета. В примере реализовано для отчета "продажи" для конфигурации управление торговлей 10.3.

В отчете задаете необходимые отборы. Обязательно должно присутствовать поле (группировка) «Регистратор» или поле «Документ продажи».

Нажимаете действияПечать документов. Остается только выбрать печатные формы и нажать «Выполнить.» Выбор печатных форм доступен как внешних так и типовых. Можно выбрать несколько форм одновременно.

Разработку можно использовать как пример для интеграции в любой типовой отчет на базе универсального и не только.

Достаточно скопировать из него форму «Печать Документов» и следующий код:

 

Процедура КоманднаяПанельФормыПечатьДокументов(Кнопка)  Для каждого ТекущийПоказатель из УниверсальныйОтчет.Показатели.Строки Цикл       // Группа показателей   Если ТекущийПоказатель.Строки.Количество() > 0 И ТекущийПоказатель.Использование > 0 Тогда         КоличествоПоказателейВГруппе = 0;        Для каждого Показатель из ТекущийПоказатель.Строки Цикл           Если Показатель.Использование > 0 Тогда            УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить(Показатель.Имя);            КонецЕсли;          КонецЦикла;        ИначеЕсли ТекущийПоказатель.Использование > 0 Тогда // Показатель        УниверсальныйОтчет.ПостроительОтчета.ВыбранныеПоля.Добавить(ТекущийПоказатель.Имя);        КонецЕсли;      КонецЦикла;    УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ДатаНач», ?(УниверсальныйОтчет.ДатаНач = Дата(‘00010101000000’), УниверсальныйОтчет.ДатаНач, Новый Граница(НачалоДня(УниверсальныйОтчет.ДатаНач), ВидГраницы.Включая)));  УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ДатаКон», ?(УниверсальныйОтчет.ДатаКон = Дата(‘00010101000000’), УниверсальныйОтчет.ДатаКон, Новый Граница(КонецДня(УниверсальныйОтчет.ДатаКон), ВидГраницы.Включая)));  УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ДатаНачала», ?(УниверсальныйОтчет.ДатаНач = Дата(‘00010101000000’), УниверсальныйОтчет.ДатаНач, НачалоДня(УниверсальныйОтчет.ДатаНач)));  УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ДатаКонца», ?(УниверсальныйОтчет.ДатаКон = Дата(‘00010101000000’), Дата(«39991231»), КонецДня(УниверсальныйОтчет.ДатаКон)));  УниверсальныйОтчет.ПостроительОтчета.Выполнить();  РезультатОтчета1 = УниверсальныйОтчет.ПостроительОтчета.Результат;  Таб1 = РезультатОтчета1.Выгрузить();  //Запр=УниверсальныйОтчет.ПостроительОтчета.ПолучитьЗапрос();  //Сообщить(Запр.Текст);  //Для каждого КЗ Из Запр.Параметры Цикл  //  // сообщить(«* «+КЗ.Ключ+» — «+ КЗ.Значение +» — «+ ТипЗнч(КЗ.Значение) + ?(ТипЗнч(КЗ.Значение)=Тип(«Граница»),КЗ.Значение.Значение,»»));  //  //КонецЦикла;  Если Таб1.Количество()=0 Тогда     Предупреждение(«Нет данных. Количество строк в таблице = 0»);   возврат;    КонецЕсли;  ЕстьКолонкаРегистратор=не Таб1.Колонки.Найти(«Регистратор»)=Неопределено;  ЕстьКолонкаДокументПродажи=не Таб1.Колонки.Найти(«ДокументПродажи»)=Неопределено;  ЕстьКолонкаКонтрагент=не Таб1.Колонки.Найти(«Контрагент»)=Неопределено;  Если ЕстьКолонкаРегистратор и ЕстьКолонкаДокументПродажи Тогда     Предупреждение(«Нет данных. Нет колонки Регистратор и колонки ДокументПродажи»);   возврат;    КонецЕсли;  ЭтотОбъект.НайденныеОбъекты.Очистить();  НайденныеОбъекты1 = ЭтотОбъект.НайденныеОбъекты.Выгрузить();    Для каждого СтрокаТаб Из Таб1 Цикл     Если ЕстьКолонкаДокументПродажи и    ЗначениеЗаполнено(СтрокаТаб.ДокументПродажи) и    ТипЗнч(СтрокаТаб.ДокументПродажи)=Тип(«ДокументСсылка.РеализацияТоваровУслуг») Тогда       НовСтрока=НайденныеОбъекты1.Добавить();    НовСтрока.Объект = СтрокаТаб.ДокументПродажи;    НовСтрока.Менеджер= СтрокаТаб.ДокументПродажи.Ответственный;    НовСтрока.Пометка= Истина;    НовСтрока.Контрагент= СтрокаТаб.ДокументПродажи.Контрагент;      КонецЕсли;   Если ЕстьКолонкаРегистратор и    ЗначениеЗаполнено(СтрокаТаб.Регистратор) и    ТипЗнч(СтрокаТаб.Регистратор)=Тип(«ДокументСсылка.РеализацияТоваровУслуг») Тогда       НовСтрока=НайденныеОбъекты1.Добавить();    НовСтрока.Объект = СтрокаТаб.Регистратор;    НовСтрока.Менеджер= СтрокаТаб.Регистратор.Ответственный;    НовСтрока.Пометка= Истина;    НовСтрока.Контрагент= СтрокаТаб.Регистратор.Контрагент;      КонецЕсли;    КонецЦикла;  НайденныеОбъекты1.Свернуть(«Объект,Менеджер,Пометка,Контрагент»,»»);  ЭтотОбъект.НайденныеОбъекты.Загрузить(НайденныеОбъекты1);  Форма1 = получитьформу(«ПечатьДокументов»);  Форма1.открыть(); КонецПроцедуры  

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *