необходимо зарегистрироваться для просмотра ссылки
Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда
// Проверить картинку штрихкода в области "Штрихкод"
ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода");
Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда
ОбластьМакета = ОбластьМакетаШтрихкод;
ВыводитьШтрихкодВОтдельнуюОбласть = Истина;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Ну и модульменеджера из обработки где макет: необходимо зарегистрироваться для просмотра ссылки
Функция СформироватьПФ(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати) Экспорт
Перем ПервыйДокумент, НомерСтрокиНачало, Ошибки;
Макет = УправлениеПечатью.МакетПечатнойФормы(ОписаниеПечатнойФормы.ПолныйПутьКМакету);
КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();
Макет.КодЯзыкаМакета = КодЯзыкаПечать;
ТабличныйДокумент = ОписаниеПечатнойФормы.ТабличныйДокумент;
ДанныеПечати = Новый Структура;
ЕстьТЧЗапасы = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаЗапасы") <> Неопределено);
ЕстьТЧМатериалы = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаМатериалы") <> Неопределено);
ЕстьПоложениеСклада = (ДанныеОбъектовПечати.Колонки.Найти("ПоложениеСклада") <> Неопределено);
Для каждого ДанныеОбъекта Из ДанныеОбъектовПечати Цикл
СкладВШапке = (НЕ ЕстьПоложениеСклада ИЛИ ДанныеОбъекта.ПоложениеСклада<>Перечисления.ПоложениеРеквизитаНаФорме.ВТабличнойЧасти);
ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало, ДанныеПечати);
МассивОбластейМакета = Новый Массив;
МассивОбластейМакета.Добавить("Заголовок");
//{[+](фрагмент ДОБАВЛЕН), АСВ 08.09.2020 19:16:01
Попытка
СведенияОбКонтрагенте = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(ДанныеОбъекта.Контрагент, ДанныеОбъекта.ДатаДокумента, , , КодЯзыкаПечать);
ДолгКлиента = ПолучитьСуммуДолга(ДанныеОбъекта.Контрагент,ДанныеОбъекта.ДатаДокумента,0,КодЯзыкаПечать);
печНакладные = ПолучитьНакладныеТекущегоДня(ДанныеОбъекта.Контрагент,ДанныеОбъекта.ДатаДокумента,ДанныеОбъекта.Склад,ДанныеОбъекта.Ссылка);
МассивОбластейМакета.Добавить("Покупатель");
МассивОбластейМакета.Добавить("НакладныеТекущегоДня");
Исключение
КонецПопытки;
МассивОбластейМакета.Добавить("Комментарий");
//}АСВ 08.09.2020 19:16:01
Если СкладВШапке Тогда
МассивОбластейМакета.Добавить("Склад");
КонецЕсли;
МассивОбластейМакета.Добавить("ВремяПечати");
НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(ДанныеОбъекта.ДатаДокумента, ДанныеОбъекта.Номер, ДанныеОбъекта.Префикс);
ТекстЗаголовка = ДанныеОбъекта.ПредставлениеРегистратора + " № " + НомерДокумента + НСтр("ru=' от ';uk=' від '", КодЯзыкаПечать) + Формат(ДанныеОбъекта.ДатаДокумента, "Л="+КодЯзыкаПечать+"; ДЛФ=DD");
ДанныеПечати.Вставить("ТекстЗаголовка", ТекстЗаголовка);
ДанныеПечати.Вставить("ПредставлениеСклада", ДанныеОбъекта.ПредставлениеСклада);
//{[+](фрагмент ДОБАВЛЕН), АСВ 08.09.2020 19:17:47
Попытка
ДанныеПечати.Вставить("печКонтрагент",ДанныеОбъекта.Контрагент.Наименование);
ДанныеПечати.Вставить("печТелефоны",СведенияОбКонтрагенте.Телефоны);
ДанныеПечати.Вставить("печФизАдресКонтрагент",СведенияОбКонтрагенте.ФактическийАдрес);
ДанныеПечати.Вставить("ДолгКлиента",ДолгКлиента);
Исключение
КонецПопытки;
ДанныеПечати.Вставить("тКомментарий",ДанныеОбъекта.Ссылка.Комментарий);
Если печНакладные <> "" Тогда
ДанныеПечати.Вставить("печНакладные",печНакладные);
ДанныеПечати.Вставить("текДень",Формат(ДанныеОбъекта.ДатаДокумента, "ДЛФ=D"));
Иначе
МассивОбластейМакета.Удалить(МассивОбластейМакета.Найти("НакладныеТекущегоДня"));
КонецЕсли;
//}АСВ 08.09.2020 19:17:47
Если СкладВШапке И ПолучитьФункциональнуюОпцию("УчетПоЯчейкам") Тогда
МассивОбластейМакета.Вставить(2, "Ячейка");
ДанныеПечати.Вставить("ПредставлениеЯчейки", ДанныеОбъекта.ПредставлениеЯчейки);
КонецЕсли;
ВремяПечати = НСтр("ru='Дата и время печати: ';uk='Дата і час друку: '", КодЯзыкаПечать) + ТекущаяДатаСеанса() + НСтр("ru='. Пользователь: ';uk='. Користувач: '", КодЯзыкаПечать) + Пользователи.АвторизованныйПользователь();
ДанныеПечати.Вставить("ВремяПечати", ВремяПечати);
Для каждого ИмяОбласти Из МассивОбластейМакета Цикл
ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, ИмяОбласти, "", Ошибки);
Если ОбластьМакета <> Неопределено Тогда
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеОбъекта.Ссылка);
ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
КонецЦикла;
ОбластьМакета = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Строка", "", Ошибки);
ОбластьМакетаШапка = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ШапкаТаблицы", "", Ошибки);
Если ОбластьМакета <> Неопределено
И ОбластьМакетаШапка <> Неопределено Тогда
ОбластьМакетаИтого = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Итого", "", Ошибки);
ТаблицаСерийныеНомера = ДанныеОбъекта.ТаблицаСерийныеНомера;
ПараметрыНоменклатуры = Новый Структура;
Если ЕстьТЧЗапасы Тогда
ДанныеПечати.Вставить("ТипНоменклатурыТаблицы", Нстр("ru='Запасы';uk='Запаси'", КодЯзыкаПечать));
ОбластьМакетаШапка.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
Для каждого СтрокаТаблицыЗапасы Из ДанныеОбъекта.ТаблицаЗапасы Цикл
Если НЕ СтрокаТаблицыЗапасы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас Тогда
Продолжить;
КонецЕсли;
Если СтрокаТаблицыЗапасы.Количество = 0 Тогда
Продолжить;
КонецЕсли;
ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТаблицыЗапасы, ДанныеПечати, ПараметрыНоменклатуры, ТаблицаСерийныеНомера);
ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ОбластьМакета.Параметры.ТоварнаяГруппа = СокрЛП(СтрокаТаблицыЗапасы.РодительГруппы)+"; "+СокрЛП(СтрокаТаблицыЗапасы.Группа);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ОбластьМакетаИтого <> Неопределено Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
КонецЕсли;
КонецЕсли;
Если ЕстьТЧМатериалы Тогда
ДанныеПечати.Вставить("ТипНоменклатурыТаблицы", Нстр("ru='Материалы';uk='Матеріали'", КодЯзыкаПечать));
ОбластьМакетаШапка.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
Для каждого СтрокаТаблицыМатериалов Из ДанныеОбъекта.ТаблицаМатериалы Цикл
Если НЕ СтрокаТаблицыМатериалов.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас Тогда
Продолжить;
КонецЕсли;
ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТаблицыМатериалов, ДанныеПечати, ПараметрыНоменклатуры, ТаблицаСерийныеНомера);
ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ОбластьМакетаИтого <> Неопределено Тогда
ТабличныйДокумент.Вывести(ОбластьМакетаИтого);
КонецЕсли;
КонецЕсли;
КонецЕсли;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеОбъекта.Ссылка);
КонецЦикла;
//{[+](фрагмент ДОБАВЛЕН), АСВ 03.02.2021 22:05:47
ТабличныйДокумент.ТолькоПросмотр = Истина;
ТабличныйДокумент.Защита = Истина;
//}АСВ 03.02.2021 22:05:47
Возврат ТабличныйДокумент;
