|
Внешняя обработка печатная форма в 1с фреш ГдеСобакаЗарыта, ass1c, p-soft, sea1956, Winnie Buh, Alex7771, АЛьФ, yzimin, Prog_man, mortal, tulke, paramedic, ivanov-i-i, Гость из Мариуполя, Gucci76, _Batoo, diamkms, kir-g, Vstur, zzz_zzz_zzz, Мультук, Homer, Fregat, Доминошник, alexxx961503, АгентБезопаснойНацио, Гипервизор, reloc, AAA, Волшебник, Ногаминебить, Phace, WerLym
| ☑ | ||
|---|---|---|---|---|
|
0
WerLym
16.02.26
✎
14:47
|
Есть код внешней обработки, она просит все время разрешение на папке временных файлов, не могу найти где он это использует, за основу брал бсп унф, код в следующем сообщении
|
|||
|
1
WerLym
16.02.26
✎
14:48
|
СведенияОВнешнейОбработкеФункция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.2.1.243");
ПараметрыРегистрации.Информация = "СчетНаОплатуСпец";
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "2.2";
ПараметрыРегистрации.Наименование = "Счет на оплату (спец)";
ПараметрыРегистрации.БезопасныйРежим = Истина;
// Назначение для документа ЗаказПокупателя
Назначение = ПараметрыРегистрации.Назначение;
Назначение.Добавить("Документ.ЗаказПокупателя");
КомандаПечати = ПараметрыРегистрации.Команды.Добавить();
КомандаПечати.Представление = "Счет на оплату (спец)";
КомандаПечати.Идентификатор = "ПечатьСчетНаОплатуСпец";
КомандаПечати.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Перем Ошибки;
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПечатьСчетНаОплатуСпец");
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
ПечатнаяФорма.ТабличныйДокумент.КлючПараметровПечати = "ПечатьСчетНаОплатуСпец";
ПечатнаяФорма.ТабличныйДокумент.Автомасштаб = Истина;
ПечатнаяФорма.СинонимМакета = "Счет на оплату (спец)";
ДанныеОбъектовПечати = ЗапросПоДаннымДокумента(МассивОбъектов, Ложь, Ошибки);
СформироватьПФ(ПечатнаяФорма, ДанныеОбъектовПечати, ОбъектыПечати, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
#Область ПрограммныйИнтерфейс
Функция СформироватьПФ(ОписаниеПечатнойФормы, ДанныеОбъектовПечати, ОбъектыПечати, ВывестиПланОплаты, ВыводитьОбластьФаксимиле = Ложь) Экспорт
Перем Ошибки, ПервыйДокумент, НомерСтрокиНачало;
ТабличныйДокумент = ОписаниеПечатнойФормы.ТабличныйДокумент;
ДанныеПечати = Новый Структура;
ЕстьТЧЗапасы = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаЗапасы") <> Неопределено);
ЕстьТЧРаботыУслуги = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаРаботыУслуги") <> Неопределено);
ЕстьТЧПланОплаты = (ДанныеОбъектовПечати.Колонки.Найти("ТаблицаПланаОплат") <> Неопределено);
ЕстьТекстДополнительныхУсловий = ДанныеОбъектовПечати.Колонки.Найти("ТекстДополнительныхУсловий") <> Неопределено;
ПредставлениеСкидки = Константы.ПредставлениеСкидкиВПечатнойФорме.Получить();
ШаблонСообщенийВариантов = НСтр(
"ru='Печатная форма ""%1"" (%2) не может быть сформирована: не выбран основной вариант.'");
ОписаниеПечатнойФормы.ИмяФайлаПечатнойФормы = Новый Соответствие;
ТекстСообщенияМакетИзменен = ПечатьДокументовУНФ.ТекстСообщенияМакетИзменен(НСтр("ru = 'Счет на оплату'"));
Для каждого ДанныеОбъекта Из ДанныеОбъектовПечати Цикл
Если ТипЗнч(ДанныеОбъекта.Ссылка) = Тип("ДокументСсылка.ЗаказПокупателя")
И ДанныеОбъекта.ОжидаетсяВыборВариантаКП Тогда
ОбщегоНазначения.СообщитьПользователю(СтрШаблон(ШаблонСообщенийВариантов,
ОписаниеПечатнойФормы.СинонимМакета, ДанныеОбъекта.Ссылка), ДанныеОбъекта.Ссылка);
Продолжить;
КонецЕсли;
ПечатьДокументовУНФ.ПередНачаломФормированияДокумента(ТабличныйДокумент, ПервыйДокумент, НомерСтрокиНачало,
ДанныеПечати);
Макет = ПолучитьМакет("Расш1_ПФ_MXL_СчетНаОплатуСпец");
ОбластиМакета = Новый Структура;
ТаблицаОписанияОбластей= ШаблонТаблицыОписанияОбластейЛоготипа();
Если Макет.Области.Найти("ОтступЗаголовка") <> Неопределено Тогда
ОбластьОтступ = Макет.ПолучитьОбласть("ОтступЗаголовка");
ТабличныйДокумент.Вывести(ОбластьОтступ);
КонецЕсли;
// :::Рекламный блок, шапка
ПараметрыРекламногоБлока = Справочники.РекламныеБлокиПечатныхФорм.ПараметрыРекламныхБлоковПоДокументу(ДанныеОбъекта.Ссылка);
Если ПараметрыРекламногоБлока.ВыводитьРекламуВШапке Тогда
ОбластьРекламаШапка = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ОбластьРекламныйБлокШапка", "", Ошибки);
КонецЕсли;
СведенияОбОрганизации = ПечатьДокументовУНФ.СведенияОЮрФизЛице(ДанныеОбъекта.Организация,
ДанныеОбъекта.ДатаДокумента, , ДанныеОбъекта.БанковскийСчет);
СведенияОбКонтрагенте = ПечатьДокументовУНФ.СведенияОЮрФизЛице(ДанныеОбъекта.Контрагент,
ДанныеОбъекта.ДатаДокумента, , );
ЕстьQR = Ложь;
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаглавиеСЛоготипом", Истина, Истина, 1);
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаглавиеБезЛоготипа", Ложь, Истина, 2);
Если Макет.Области.Найти("QRКод") <> Неопределено Тогда
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаголовокСчетаСЛоготипом|Реквизиты", Истина, Ложь, 3);
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаголовокСчета|Реквизиты", Ложь, Ложь, 4);
Иначе
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаголовокСчетаСЛоготипом", Истина, Ложь, 3);
ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, "ЗаголовокСчета", Ложь, Ложь, 4);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияМакетИзменен);
КонецЕсли;
СтрокаСвойствОбластиМакета = ЗаполнитьОбластьЗаголовкаСчетовЗаказовИРазместитьЛоготип(ДанныеОбъекта,
ТаблицаОписанияОбластей, Ошибки);
Если СтрокаСвойствОбластиМакета <> Неопределено Тогда
Если ЗначениеЗаполнено(СведенияОбОрганизации.Банк) Тогда
ДанныеПечати.Вставить("БанкПолучателяПредставление", СведенияОбОрганизации.Банк.Наименование + " "
+ СведенияОбОрганизации.Банк.Город);
КонецЕсли;
ДанныеПечати.Вставить("ИНН", СведенияОбОрганизации.ИНН);
ДанныеПечати.Вставить("КПП", СведенияОбОрганизации.КПП);
ПредставлениеПоставщика = ?(ПустаяСтрока(СведенияОбОрганизации.ТекстКорреспондента),
СведенияОбОрганизации.НаименованиеДляПечати, СведенияОбОрганизации.ТекстКорреспондента);
ДанныеПечати.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
ДанныеПечати.Вставить("БИКБанкаПолучателя", СведенияОбОрганизации.БИК);
ДанныеПечати.Вставить("СчетБанкаПолучателяПредставление", СведенияОбОрганизации.КоррСчет);
ДанныеПечати.Вставить("СчетПолучателяПредставление", СведенияОбОрганизации.НомерСчета);
СтрокаСвойствОбластиМакета.ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет,
СтрокаСвойствОбластиМакета.ОбластьМакета, ДанныеОбъекта.Ссылка);
НачалоНовогоФормата = ТабличныйДокумент.ВысотаТаблицы;
ТабличныйДокумент.Вывести(СтрокаСвойствОбластиМакета.ОбластьМакета);
ТабличныйДокумент.Область(НачалоНовогоФормата+1,,ТабличныйДокумент.ВысотаТаблицы).СоздатьФорматСтрок();
КонецЕсли;
// :::Заголовок
НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(ДанныеОбъекта.ДатаДокумента,
ДанныеОбъекта.Номер, ДанныеОбъекта.Префикс);
ПредставлениеДокументаДляСохранения = СокрЛП(СтрШаблон(НСтр("ru ='Счет на оплату № %1 от %2'"),
НомерДокумента, Формат(ДанныеОбъекта.ДатаДокумента, "ДЛФ=DD")));
ПредставлениеДокументаДляПечати = СокрЛП(СтрШаблон(НСтр("ru ='Счет на оплату № %1 от %2'"), НомерДокумента,
Формат(ДанныеОбъекта.ДатаДокумента, "ДЛФ=DD")));
ОписаниеПечатнойФормы.ИмяФайлаПечатнойФормы.Вставить(ДанныеОбъекта.Ссылка, ПредставлениеДокументаДляСохранения);
ОбластьЗаголовок = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Заголовок", "", Ошибки);
Если ОбластьЗаголовок <> Неопределено Тогда
ДанныеПечати.Вставить("ПредставлениеДокумента", ПредставлениеДокументаДляПечати);
ОбластьЗаголовок.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
КонецЕсли;
// :::Поставщик
ОбластьПоставщик = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Поставщик", "", Ошибки);
Если ОбластьПоставщик <> Неопределено Тогда
ДанныеПечати.Вставить("ПредставлениеПоставщика", ПечатьДокументовУНФ.ОписаниеОрганизации(
СведенияОбОрганизации, "НаименованиеДляПечати,ИНН,КПП,ЮридическийАдрес,Телефоны,"));
ОбластьПоставщик.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьПоставщик);
КонецЕсли;
// :::Покупатель
Если ЗначениеЗаполнено(ДанныеОбъекта.ОснованиеПечати) Тогда
ОбластьПокупатель = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Покупатель", "", Ошибки);
Иначе
ОбластьПокупатель = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ПокупательБезОснования", "", Неопределено);
Если ОбластьПокупатель = Неопределено Тогда
ОбластьПокупатель = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Покупатель", "", Ошибки);
КонецЕсли;
КонецЕсли;
Если ОбластьПокупатель <> Неопределено Тогда
ДанныеПечати.Вставить("ПредставлениеПолучателя", ПечатьДокументовУНФ.ОписаниеОрганизации(
СведенияОбКонтрагенте, "ПолноеНаименование,ИНН,КПП,РегистрационныйНомер,ЮридическийАдрес,Телефоны,"));
ДанныеПечати.Вставить("ОснованиеПечати", ДанныеОбъекта.ОснованиеПечати);
ОбластьПокупатель.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьПокупатель);
КонецЕсли;
// :::Шапка таблицы
ОбластиМакета.Очистить();
ОбластиМакета.Вставить("НомерСтраницы", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "НомерСтраницы",
НСтр("ru ='Номер страницы'"), Ошибки));
СкидкаПоЗапасам = 0;
Если ЕстьТЧЗапасы Тогда
СкидкаПоЗапасам = ДанныеОбъекта.ТаблицаЗапасы.Итог("ЕстьСкидка");
КонецЕсли;
СкидкаПоРаботам = 0;
Если ЕстьТЧРаботыУслуги Тогда
СкидкаПоРаботам = ДанныеОбъекта.ТаблицаРаботыУслуги.Итог("ЕстьСкидка");
КонецЕсли;
ЕстьСкидки = ((СкидкаПоЗапасам + СкидкаПоРаботам) <> 0);
ИмяОбласти = ?(ЕстьСкидки, "ШапкаТаблицыСоСкидкой", "ШапкаТаблицы");
ИспользоватьШапкуСуммаБезСкидки = Ложь;
ЕстьШапкаТаблицыСоСкидкойСуммаБезСкидки = НЕ Макет.Области.Найти("ШапкаТаблицыСоСкидкойСуммаБезСкидки") = Неопределено;
ВыводитьСуммуБезСкидок = Константы.ВыводитьСуммуБезСкидки.Получить() = Перечисления.ВариантыВыводаСуммыБезСкидки.Печатать;
Если ВыводитьСуммуБезСкидок И ЕстьСкидки И ЕстьШапкаТаблицыСоСкидкойСуммаБезСкидки Тогда
ИмяОбласти = "ШапкаТаблицыСоСкидкойСуммаБезСкидки";
ИспользоватьШапкуСуммаБезСкидки = Истина;
КонецЕсли;
Если НЕ ЕстьШапкаТаблицыСоСкидкойСуммаБезСкидки И ВыводитьСуммуБезСкидок Тогда
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияМакетИзменен);
КонецЕсли;
ОбластиМакета.Вставить("ОбластьМакетаЗаголовокТаблицы", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
ИмяОбласти, "", Ошибки));
Если ОбластиМакета.ОбластьМакетаЗаголовокТаблицы <> Неопределено Тогда
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаЗаголовокТаблицы);
КонецЕсли;
// :::Табличные части
ИмяОбласти = ?(ИспользоватьШапкуСуммаБезСкидки, "ИтогоПоСтраницеСуммаБезСкидки", "ИтогоПоСтранице");
ОбластиМакета.Вставить("ОбластьМакетаИтогоПоСтранице", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
ИмяОбласти, НСтр("ru ='Итоги по странице'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаИтогоПоДокументу", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"Итого", "", Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаИтогоНДС_ЧО", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ИтогоНДСЧастичнаяОплата", НСтр("ru ='Итого НДС по частичной оплате'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаИтогоСкидка", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ИтогоСкидка", "", Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаИтогоКОплате", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ИтогоКОплате", НСтр("ru ='Итого к оплате'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаИтогоКОплатеСВесом", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ИтогоКОплатеСВесом", НСтр("ru ='Итого к оплате и вес'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаСуммаПрописью", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"СуммаПрописью", НСтр("ru ='Сумма прописью'"), Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаУсловия", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
"ДополнительныеУсловия", , Ошибки));
// :::Подписи
ШаблонИмени = "Подписи%1%2";
ПредставлениеПредприниматель = ?(ДанныеОбъекта.ОрганизацияЮридическоеФизическоеЛицо
= Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо, "Предпринимателя", "");
ИмяОбластиСФаксимиле = СтрШаблон(ШаблонИмени, ПредставлениеПредприниматель, "СФаксимиле");
ИмяОбластиБезФаксимиле = СтрШаблон(ШаблонИмени, ПредставлениеПредприниматель, "БезФаксимиле");
ОбластиМакета.Вставить("ОбластьМакетаПодписьСФаксимиле", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
ИмяОбластиСФаксимиле, "", Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаПодписьБезФаксимиле", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
ИмяОбластиБезФаксимиле, "", Ошибки));
ИмяОбласти = ?(ЕстьСкидки, "СтрокаСоСкидкой", "Строка");
ИмяОбласти = ?(ИспользоватьШапкуСуммаБезСкидки, "СтрокаСоСкидкойСуммаБезСкидки", ИмяОбласти);
ОбластиМакета.Вставить("ОбластьМакетаСтрока", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, ИмяОбласти,
"", Ошибки));
ИмяОбласти = ?(ЕстьСкидки, "СтрокаСоСкидкойГруппировка", "СтрокаГруппировка");
ИмяОбласти = ?(ИспользоватьШапкуСуммаБезСкидки, "СтрокаСоСкидкойГруппировкаСуммаБезСкидки", ИмяОбласти);
ОбластиМакета.Вставить("ОбластьМакетаРазделитель", ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет,
ИмяОбласти, "", Ошибки));
ОбластиМакета.Вставить("ОбластьМакетаОтветственныйЗаОформлениеДокумента",
ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "Ответственный", "", Ошибки));
Итоги = Новый Структура;
Итоги.Вставить("НомерСтраницы", 1);
Итоги.Вставить("Сумма", 0);
Итоги.Вставить("СуммаНаСтранице", 0);
Итоги.Вставить("СуммаНаСтраницеБезСкидки", 0);
Итоги.Вставить("СуммаСкидкиНаСтранице", 0);
Итоги.Вставить("СуммаНДС", 0);
Итоги.Вставить("Всего", 0);
Итоги.Вставить("Количество", 0);
Итоги.Вставить("КоличествоНаСтранице", 0);
Итоги.Вставить("НомерСтроки", 0);
Итоги.Вставить("Вес", 0);
Итоги.Вставить("СкидкаПоСтроке", 0);
Итоги.Вставить("СкидкаПоДокументу", 0);
Итоги.Вставить("ОбработаноСтрок", 0);
Итоги.Вставить("КоличествоСтрок", 0);
Итоги.Вставить("ЕстьСкидки", ЕстьСкидки);
Итоги.Вставить("ЕстьСтавкаНольПроцентов", Ложь);
Итоги.Вставить("ВывестиСекциюЧастичнаяОплата", (ВывестиПланОплаты И ЕстьТЧПланОплаты));
Итоги.Вставить("ПредставлениеСкидки", ПредставлениеСкидки);
Итоги.Вставить("КоличествоСтрокВОписанииУсловий", 0);
Итоги.Вставить("ПредставлениеДокумента", ПредставлениеДокументаДляПечати);
Итоги.Вставить("ИспользоватьШапкуСуммаБезСкидки", ИспользоватьШапкуСуммаБезСкидки);
Итоги.Вставить("СтавкиНДС", Новый Массив);
Итоги.КоличествоСтрок = КоличествоСтрокКВыводуНаПечать(ДанныеОбъекта, ЕстьТЧРаботыУслуги, ЕстьТЧЗапасы);
ТекстДополнительныхУсловий = "";
Если ЗначениеЗаполнено(ДанныеОбъекта.ДополнительныеУсловия) Тогда
Если ЕстьТекстДополнительныхУсловий И ЗначениеЗаполнено(ДанныеОбъекта.ТекстДополнительныхУсловий) Тогда
ТекстДополнительныхУсловий = ДанныеОбъекта.ТекстДополнительныхУсловий;
Иначе
ТекстДополнительныхУсловий = ДанныеОбъекта.ДополнительныеУсловия.ТекстУсловий;
КонецЕсли;
Итоги.КоличествоСтрокВОписанииУсловий = СтрЧислоСтрок(ТекстДополнительныхУсловий);
Иначе
Если ПолучитьФункциональнуюОпцию("ИнтерфейсВыставлениеСчетов")
И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДанныеОбъекта, "ТекстДополнительныхУсловий")
И ЗначениеЗаполнено(ДанныеОбъекта.ТекстДополнительныхУсловий) Тогда
ТекстДополнительныхУсловий = ДанныеОбъекта.ТекстДополнительныхУсловий;
Итоги.КоличествоСтрокВОписанииУсловий = СтрЧислоСтрок(ТекстДополнительныхУсловий);
КонецЕсли;
КонецЕсли;
Если ОбластиМакета.ОбластьМакетаСтрока <> Неопределено Тогда
ПараметрыНоменклатуры = Новый Структура;
Если ЕстьТЧРаботыУслуги Тогда
Для каждого СтрокаРаботыУслуги Из ДанныеОбъекта.ТаблицаРаботыУслуги Цикл
Итоги.ОбработаноСтрок = Итоги.ОбработаноСтрок + 1;
Если СтрокаРаботыУслуги.ЭтоРазделитель
И ОбластиМакета.ОбластьМакетаРазделитель = Неопределено Тогда
Продолжить;
КонецЕсли;
Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги, ВыводитьОбластьФаксимиле) = Ложь Тогда
ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);
КонецЕсли;
ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаРаботыУслуги, ДанныеПечати,
ПараметрыНоменклатуры, Итоги);
ОбластьМакетаСтроки = ?(СтрокаРаботыУслуги.ЭтоРазделитель, ОбластиМакета.ОбластьМакетаРазделитель,
ОбластиМакета.ОбластьМакетаСтрока);
ОбластьМакетаСтроки.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакетаСтроки);
НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластьМакетаСтроки,
СтрокаРаботыУслуги);
КонецЦикла;
КонецЕсли;
Если ЕстьТЧЗапасы Тогда
Для Каждого СтрокаЗапасы Из ДанныеОбъекта.ТаблицаЗапасы Цикл
Итоги.ОбработаноСтрок = Итоги.ОбработаноСтрок + 1;
Если СтрокаЗапасы.ЭтоРазделитель И ОбластиМакета.ОбластьМакетаРазделитель = Неопределено Тогда
Продолжить;
КонецЕсли;
Если Итоги.НомерСтроки <> 0 И СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент,
ОбластиМакета, Итоги, ВыводитьОбластьФаксимиле) = Ложь Тогда
ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги);
КонецЕсли;
ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаЗапасы, ДанныеПечати, ПараметрыНоменклатуры,
Итоги);
ОбластьМакетаСтроки = ?(СтрокаЗапасы.ЭтоРазделитель, ОбластиМакета.ОбластьМакетаРазделитель,
ОбластиМакета.ОбластьМакетаСтрока);
ОбластьМакетаСтроки.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакетаСтроки);
НаборыСервер.УчестьОформлениеСтрокиНабора(ТабличныйДокумент, ОбластьМакетаСтроки, СтрокаЗапасы);
КонецЦикла;
КонецЕсли;
КонецЕсли;
// :::Итоги по посл. странице
Если ОбластиМакета.ОбластьМакетаИтогоПоСтранице <> Неопределено Тогда
ОбластиМакета.ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(Итоги);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоПоСтранице);
КонецЕсли;
// :::Итоги по документу
Если ОбластиМакета.ОбластьМакетаИтогоПоДокументу <> Неопределено Тогда
ДанныеПечати.Вставить("Всего", ПечатьДокументовУНФ.ФорматСумм(Итоги.Сумма));
ДанныеПечати.Вставить("ЗаголовокНДС", ПечатьДокументовУНФ.ПредставлениеИтоговНДС(
Итоги.СуммаНДС, ДанныеОбъекта.СуммаВключаетНДС, Итоги.СтавкиНДС));
ДанныеПечати.Вставить("ВсегоНДС", ?(Итоги.СуммаНДС = 0
И Не Итоги.ЕстьСтавкаНольПроцентов, "-", ПечатьДокументовУНФ.ФорматСумм(
Итоги.СуммаНДС, , "0,00")));
ОбластиМакета.ОбластьМакетаИтогоПоДокументу.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоПоДокументу);
КонецЕсли;
// :::Частичная оплата
Если Итоги.ВывестиСекциюЧастичнаяОплата Тогда
Если ОбластиМакета.ОбластьМакетаИтогоНДС_ЧО <> Неопределено Тогда
ДанныеПечати.Вставить("НДСкОплате", ПечатьДокументовУНФ.ПредставлениеЗаголовкаНДС(
Итоги.СуммаНДС, ДанныеОбъекта.СуммаВключаетНДС, Истина));
Если ДанныеОбъекта.ТаблицаПланаОплат.Итог("ПроцентОплаты") > 0 Тогда
ДанныеПечати.Вставить("ПроцентОплаты", ДанныеОбъекта.ТаблицаПланаОплат.Итог("ПроцентОплаты"));
ДанныеПечати.Вставить("ВсегоКОплате", ПечатьДокументовУНФ.ФорматСумм(
ДанныеОбъекта.ТаблицаПланаОплат.Итог("СуммаОплаты")));
ДанныеПечати.Вставить("ВсегоНДСкОплате", ПечатьДокументовУНФ.ФорматСумм(
ДанныеОбъекта.ТаблицаПланаОплат.Итог("СуммаНДСОплаты")));
Иначе
СтрокаПрочерк = НСтр("ru ='-'");
ДанныеПечати.Вставить("ВсегоКОплате", СтрокаПрочерк);
ДанныеПечати.Вставить("ПроцентОплаты", СтрокаПрочерк);
ДанныеПечати.Вставить("ВсегоНДСкОплате", СтрокаПрочерк);
КонецЕсли;
ОбластиМакета.ОбластьМакетаИтогоНДС_ЧО.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоНДС_ЧО);
КонецЕсли;
КонецЕсли;
// ::: Итоговая скидка по документу
Если Итоги.ЕстьСкидки Тогда
Если ОбластиМакета.ОбластьМакетаИтогоСкидка <> Неопределено Тогда
ОбластиМакета.ОбластьМакетаИтогоСкидка.Параметры.Заполнить(Итоги);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоСкидка);
КонецЕсли;
КонецЕсли;
// ::: Всего к оплате
Если Итоги.ЕстьСкидки Тогда
ЗаголовокВсегоКОплате = НСтр("ru = 'Всего к оплате (с учетом скидки):'");
Иначе
ЗаголовокВсегоКОплате = НСтр("ru = 'Всего к оплате:'");
КонецЕсли;
ДанныеПечати.Вставить("ЗаголовокВсегоКОплате", ЗаголовокВсегоКОплате);
ДанныеПечати.Вставить("ИтогоКОплате", ПечатьДокументовУНФ.ФорматСумм(Итоги.Всего));
ВесПоДокументу = ?(ДанныеОбъектовПечати.Колонки.Найти("Вес") <> Неопределено, ДанныеОбъекта.Вес, 0);
ДанныеПечати.Вставить("ИтогоВес", ?(Итоги.Вес <> 0, Итоги.Вес, ВесПоДокументу));
ОбластьМакетаИтогоКОплате = ?(ДанныеПечати.ИтогоВес <> 0, ОбластиМакета.ОбластьМакетаИтогоКОплатеСВесом,
ОбластиМакета.ОбластьМакетаИтогоКОплате);
Если ОбластьМакетаИтогоКОплате <> Неопределено Тогда
ОбластьМакетаИтогоКОплате.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьМакетаИтогоКОплате);
КонецЕсли;
// ::: Сумма прописью
Если ОбластиМакета.ОбластьМакетаСуммаПрописью <> Неопределено Тогда
ИтоговаяСтрока = НСтр("ru = 'Всего наименований %1, на сумму %2'");
ФорматированнаяСумма = ПечатьДокументовУНФ.ФорматСумм(Итоги.Всего,
ДанныеОбъекта.ВалютаДокумента);
ДанныеПечати.Вставить("ИтоговаяСтрока", СтрШаблон(ИтоговаяСтрока, Итоги.Количество,
ФорматированнаяСумма));
ДанныеПечати.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(Итоги.Всего,
ДанныеОбъекта.ВалютаДокумента));
ОбластиМакета.ОбластьМакетаСуммаПрописью.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаСуммаПрописью);
КонецЕсли;
// :::Дополнительные условия
Если Не ПустаяСтрока(ТекстДополнительныхУсловий) И ОбластиМакета.ОбластьМакетаУсловия <> Неопределено Тогда
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаУсловия);
Для СчетчикСтрок = 1 По Итоги.КоличествоСтрокВОписанииУсловий Цикл
ДанныеПечати.Вставить("ТекстДополнительныхУсловий", СтрПолучитьСтроку(ТекстДополнительныхУсловий,
СчетчикСтрок));
ОбластиМакета.ОбластьМакетаУсловия.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаУсловия);
КонецЦикла;
КонецЕсли;
// :::Подписи
ЕстьФаксимиле = Ложь;
ИмяОбласти = "_Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ=");
Если ОбластиМакета.ОбластьМакетаПодписьСФаксимиле <> Неопределено Тогда
Если ЗначениеЗаполнено(ДанныеОбъекта.ФаксимилеРуководителя)
Или ЗначениеЗаполнено(ДанныеОбъекта.ФаксимилеГлавногоБухгалтера)
Или ЗначениеЗаполнено(ДанныеОбъекта.ФаксимилеПечати) Тогда
ЕстьФаксимиле = Истина;
КонецЕсли;
МакетИзменен = Макет.Области.Найти("СкрываемаяБезПодписейИПечати") = Неопределено;
Если Не ЕстьФаксимиле И МакетИзменен Тогда
ОбластиМакета.ОбластьМакетаПодписьБезФаксимиле.Параметры.Заполнить(ДанныеОбъекта);
ОбластьПодписи = ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаПодписьБезФаксимиле);
РисунокПодписи = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
РисунокПодписи.Имя = "ПодписьБезФаксимиле";
Иначе
ОбластиМакета.ОбластьМакетаПодписьСФаксимиле.Параметры.Заполнить(ДанныеОбъекта);
ОбластьПодписи = ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаПодписьСФаксимиле);
КонецЕсли;
Если МакетИзменен И ЕстьФаксимиле Тогда
Если ОбъектыПечати.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияМакетИзменен);
КонецЕсли;
КонецЕсли;
ОбластьПодписи.Имя = ОбластьПодписи.Имя + ИмяОбласти;
ОбластьБезФаксимиле = ТабличныйДокумент.Области.Найти("СкрываемаяБезПодписейИПечати");
Если ОбластьБезФаксимиле <> Неопределено Тогда
ОбластьБезФаксимиле.Имя = ОбластьБезФаксимиле.Имя + ИмяОбласти;
Если Не ЕстьФаксимиле Тогда
ТабличныйДокумент.УдалитьОбласть(ОбластьБезФаксимиле, ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЕсли;
КонецЕсли;
Иначе
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияМакетИзменен);
КонецЕсли;
// :::Ответственный
МассивСекций = Новый Массив;
Если ОбластиМакета.ОбластьМакетаОтветственныйЗаОформлениеДокумента <> Неопределено Тогда
Если ПолучитьФункциональнуюОпцию("ИспользоватьСправочникСотрудники") Тогда
ТелефонОтветственного = "";
ЭлектроннаяПочтаОтветственного = "";
Если ЗначениеЗаполнено(ДанныеОбъекта.ФизическоеЛицоОтветственного) Тогда
ТелефонОтветственного = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформацииОбъекта(
ДанныеОбъекта.ФизическоеЛицоОтветственного, Справочники.ВидыКонтактнойИнформации.ТелефонФизЛица);
ЭлектроннаяПочтаОтветственного = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформацииОбъекта(
ДанныеОбъекта.ФизическоеЛицоОтветственного, Справочники.ВидыКонтактнойИнформации.EmailФизическиеЛица);
КонецЕсли;
ОтветственныйЗаОформлениеДокумента = Строка(ДанныеОбъекта.Ответственный) + ?(ПустаяСтрока(
ТелефонОтветственного), "", НСтр("ru =', тел.:'")) + ТелефонОтветственного + ?(ПустаяСтрока(
ЭлектроннаяПочтаОтветственного), "", НСтр("ru =', e-mail:'")) + ЭлектроннаяПочтаОтветственного;
ДанныеПечати.Вставить("ОтветственныйЗаОформлениеДокумента", ОтветственныйЗаОформлениеДокумента);
ОбластиМакета.ОбластьМакетаОтветственныйЗаОформлениеДокумента.Параметры.Заполнить(ДанныеПечати);
Если ПараметрыРекламногоБлока.ВыводитьРекламуВПодвале Тогда
МассивСекций.Добавить(ОбластиМакета.ОбластьМакетаОтветственныйЗаОформлениеДокумента);
Иначе
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаОтветственныйЗаОформлениеДокумента);
КонецЕсли;
КонецЕсли;
Иначе
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияМакетИзменен);
КонецЕсли;
// :::Рекламный блок, подвал
Если ПараметрыРекламногоБлока.ВыводитьРекламуВПодвале Тогда
ОбластьРекламаПодвал = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ОбластьРекламныйБлокПодвал", "", Ошибки);
Если ОбластьРекламаПодвал <> Неопределено Тогда
// Тут проверка на значение ПодписиИПечать
ВыводитьПодписьИПечать = ПечатьДокументовУНФ.НастройкаПользователяЗаполнятьФаксимиле("СчетНаОплату");
Если ВыводитьПодписьИПечать = Неопределено Тогда
ВыводитьПодписьИПечать = Ложь;
КонецЕсли;
Если НЕ ВыводитьПодписьИПечать ИЛИ НЕ ЕстьФаксимиле Тогда
ТабличныйДокументДляПроверки = Новый ТабличныйДокумент;
ТабличныйДокументДляПроверки.Вывести(ТабличныйДокумент);
ЗаполнитьЗначенияСвойств(ТабличныйДокументДляПроверки, ТабличныйДокумент);
ОбластиКУдалению = Новый Массив;
Для Каждого Область Из ТабличныйДокумент.Области Цикл
Если СтрНайти(Область.Имя, "СкрываемаяБезПодписейИПечати") <> 0 Тогда
ОбластиКУдалению.Добавить(Область);
КонецЕсли;
КонецЦикла;
Для Каждого Область Из ОбластиКУдалению Цикл
ТабличныйДокументДляПроверки.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЦикла;
Иначе
ТабличныйДокументДляПроверки = ТабличныйДокумент;
КонецЕсли;
МассивСекций.Добавить(ОбластьРекламаПодвал);
ОбластьОтступ = ПечатьДокументовУНФ.ПолучитьОбластьБезопасно(Макет, "ОтступЗаголовка", "", Ошибки);
Если ПечатьДокументовУНФ.ПроверитьВыводТабличногоДокумента(ТабличныйДокументДляПроверки, МассивСекций, Ошибки) Тогда
Пока ПечатьДокументовУНФ.ПроверитьВыводТабличногоДокумента(ТабличныйДокументДляПроверки, МассивСекций, Ошибки) Цикл
МассивСекций.Вставить(1, ОбластьОтступ);
КонецЦикла;
// Несмотря на проверку вывода, одна секция всегда лишняя
Если МассивСекций.Количество() >= 3 Тогда
МассивСекций.Удалить(1);
КонецЕсли;
Для каждого Секция Из МассивСекций Цикл
ТабличныйДокумент.Вывести(Секция);
КонецЦикла;
Иначе
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаОтветственныйЗаОформлениеДокумента);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ТекущаяОбластьПечати = Неопределено;
Если ВывестиПланОплаты Тогда
ОписаниеОбъектаПечати = ОбъектыПечати.НайтиПоЗначению(ДанныеОбъекта.Ссылка);
Если ОписаниеОбъектаПечати <> Неопределено Тогда
ТекущаяОбластьПечати = ТабличныйДокумент.Области.Найти(ОписаниеОбъектаПечати.Представление);
ОбъектыПечати.Добавить(ДанныеОбъекта.Ссылка, "Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ="));
ЗаполнитьРисункиВТабличномДокументе(ТабличныйДокумент, ИмяОбласти);
КонецЕсли;
КонецЕсли;
Если ТекущаяОбластьПечати = Неопределено Тогда
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
ДанныеОбъекта.Ссылка);
Иначе
ПрисоединитьКОбластиПечатиДокумента(ТабличныйДокумент, ТекущаяОбластьПечати, ОписаниеОбъектаПечати);
КонецЕсли;
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Функция ШаблонТаблицыОписанияОбластейЛоготипа() Экспорт
ТаблицаОписанияОбластей = Новый ТаблицаЗначений;
ТаблицаОписанияОбластей.Колонки.Добавить("ОбластьМакета");
ТаблицаОписанияОбластей.Колонки.Добавить("СодержитЛоготип", , Новый ОписаниеТипов("Булево"));
ТаблицаОписанияОбластей.Колонки.Добавить("Устарела", , Новый ОписаниеТипов("Булево"));
ТаблицаОписанияОбластей.Колонки.Добавить("Приоритет", , Новый ОписаниеТипов("Число"));
Возврат ТаблицаОписанияОбластей;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьОписаниеОбластиЛоготипа(ТаблицаОписанияОбластей, Макет, ИмяОбласти, СодержитЛоготип, Устаревшая,
Приоритет)
СтрокаТаблицы = ТаблицаОписанияОбластей.Добавить();
ОбластьМакета = Неопределено;
ОбластиНайдены = Истина;
ОбластиДляПоиска = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяОбласти, "|");
Для каждого ИмяОбластиДляПоиска Из ОбластиДляПоиска Цикл
Если Макет.Области.Найти(ИмяОбластиДляПоиска) = Неопределено Тогда
ОбластиНайдены = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ОбластиНайдены Тогда
ОбластьМакета = Макет.ПолучитьОбласть(ИмяОбласти);
КонецЕсли;
СтрокаТаблицы.ОбластьМакета = ОбластьМакета;
СтрокаТаблицы.СодержитЛоготип = СодержитЛоготип;
СтрокаТаблицы.Устарела = Устаревшая;
СтрокаТаблицы.Приоритет = Приоритет;
КонецПроцедуры
Процедура ЗаполнитьРисункиВТабличномДокументе(ТабличныйДокумент, ИмяОбласти)
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
ЭтоПодписьИПечать = Ложь;
Для Каждого ИмяОбластиСПодписьюИПечатью Из УправлениеПечатью.ПрефиксыИменОбластейСПодписьюИПечатью() Цикл
Если СтрНайти(Рисунок.Имя, ИмяОбластиСПодписьюИПечатью) > 0 Тогда
ЭтоПодписьИПечать = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ЭтоПодписьИПечать Тогда
Продолжить;
КонецЕсли;
Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") = 0 Тогда
Рисунок.Имя = Рисунок.Имя + ИмяОбласти;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьНовуюСтраницуДокумента(ТабличныйДокумент, ОбластиМакета, Итоги)
Если ОбластиМакета.ОбластьМакетаИтогоПоСтранице <> Неопределено Тогда
ОбластиМакета.ОбластьМакетаИтогоПоСтранице.Параметры.Заполнить(Итоги);
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаИтогоПоСтранице);
КонецЕсли;
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Итоги.КоличествоНаСтранице= 0;
Итоги.СуммаНаСтранице = 0;
Итоги.СуммаНаСтраницеБезСкидки = 0;
Итоги.НомерСтраницы = Итоги.НомерСтраницы + 1;
Если ОбластиМакета.НомерСтраницы <> Неопределено Тогда
ДанныеПечати = Новый Структура;
ДанныеПечати.Вставить("ПредставлениеДокумента", Итоги.ПредставлениеДокумента);
ДанныеПечати.Вставить("ПредставлениеСтраницы", СтрШаблон(НСтр("ru ='Страница %1'"), Итоги.НомерСтраницы));
ОбластиМакета.НомерСтраницы.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Вывести(ОбластиМакета.НомерСтраницы);
КонецЕсли;
Если ОбластиМакета.ОбластьМакетаЗаголовокТаблицы <> Неопределено Тогда
ТабличныйДокумент.Вывести(ОбластиМакета.ОбластьМакетаЗаголовокТаблицы);
КонецЕсли;
КонецПроцедуры
Функция СтрокаКорректноРазмещаетсяНаСтранице(ТабличныйДокумент, ОбластиМакета, Итоги, ВыводитьОбластьФаксимиле = Ложь)
ЕстьВсеОбласти = Истина;
Для каждого ЭлементСтруктуры Из ОбластиМакета Цикл
Если ЭлементСтруктуры.Значение = Неопределено Тогда
ЕстьВсеОбласти = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ЕстьВсеОбласти Тогда
Возврат Неопределено;
КонецЕсли;
МассивОбластейМакета = Новый Массив;
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаСтрока);
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаИтогоПоСтранице);
Если Итоги.ОбработаноСтрок = Итоги.КоличествоСтрок - 1 Тогда
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаИтогоПоДокументу);
Если Итоги.ВывестиСекциюЧастичнаяОплата Тогда
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаИтогоНДС_ЧО);
КонецЕсли;
Если Итоги.ЕстьСкидки Тогда
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаИтогоСкидка);
КонецЕсли;
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаИтогоКОплатеСВесом);
Если Итоги.КоличествоСтрокВОписанииУсловий > 0 Тогда
Для Итератор = 0 По Итоги.КоличествоСтрокВОписанииУсловий Цикл
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаУсловия);
КонецЦикла;
КонецЕсли;
Если ВыводитьОбластьФаксимиле Тогда
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаПодписьСФаксимиле);
Иначе
МассивОбластейМакета.Добавить(ОбластиМакета.ОбластьМакетаПодписьБезФаксимиле);
КонецЕсли;
КонецЕсли;
Возврат ТабличныйДокумент.ПроверитьВывод(МассивОбластейМакета)
КонецФункции
Функция ЗаполнитьОбластьЗаголовкаСчетовЗаказовИРазместитьЛоготип(ДанныеОбъекта, ОбластиМакета, Ошибки)
ПользовательПравилМакет = Ложь;
ЛоготипЗаполнен = ЗначениеЗаполнено(ДанныеОбъекта.ФайлЛоготип);
Приоритет = 999;
МассивОбластей = ОбластиМакета.НайтиСтроки(Новый Структура("СодержитЛоготип", ЛоготипЗаполнен));
Для каждого ОписаниеОбласти Из МассивОбластей Цикл
Если ОписаниеОбласти.ОбластьМакета <> Неопределено Тогда
Если Приоритет > ОписаниеОбласти.Приоритет Тогда
Приоритет = ОписаниеОбласти.Приоритет;
КонецЕсли;
Если ОписаниеОбласти.Устарела Тогда
ПользовательПравилМакет = Истина;
КонецЕсли;
ОписаниеОбласти.ОбластьМакета.Параметры.Заполнить(ДанныеОбъекта);
//Если ЛоготипЗаполнен Тогда
//
// ДанныеКартинки = РаботаСФайлами.ДвоичныеДанныеФайла(ДанныеОбъекта.ФайлЛоготип);
// Если ЗначениеЗаполнено(ДанныеКартинки) Тогда
//
// КартинкаЛоготипа = Новый Картинка(ДанныеКартинки);
// ПечатьДокументовУНФ.УстановитьКартинкуБезопасно(ОписаниеОбласти.ОбластьМакета.Рисунки, "Логотип", КартинкаЛоготипа);
//
// КонецЕсли;
//
//КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ПользовательПравилМакет Тогда
ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(Ошибки, ,
ПечатьДокументовУНФ.ШаблонТекстаПредупрежденияПравкиМакета(), Неопределено);
КонецЕсли;
Если Приоритет = 999 Тогда
Возврат Неопределено;
Иначе
Возврат ОбластиМакета.Найти(Приоритет, "Приоритет");
КонецЕсли;
КонецФункции
Процедура ЗаполнитьДанныеПечатиПоСтрокеТабличнойЧасти(СтрокаТабличнойЧасти, ДанныеПечати, ПараметрыНоменклатуры, Итоги)
ДанныеПечати.Очистить();
Если Не СтрокаТабличнойЧасти.ЭтоРазделитель И Не СтрокаТабличнойЧасти.ЭтоНабор Тогда
Итоги.Количество = Итоги.Количество + 1;
КонецЕсли;
Если СтрокаТабличнойЧасти.ЭтоРазделитель Тогда
НомерСтроки = 0;
Итоги.НомерСтроки = 0;
ИначеЕсли СтрокаТабличнойЧасти.ЭтоНабор Тогда
НомерСтроки = 0;
Иначе
Итоги.НомерСтроки = Итоги.НомерСтроки + 1;
НомерСтроки = Итоги.НомерСтроки;
КонецЕсли;
ДанныеПечати.Вставить("НомерСтроки", НомерСтроки);
ПараметрыНоменклатуры.Очистить();
ПараметрыНоменклатуры.Вставить("Содержание", СтрокаТабличнойЧасти.Содержание);
ПараметрыНоменклатуры.Вставить("ПредставлениеНоменклатуры", СтрокаТабличнойЧасти.ПредставлениеНоменклатуры);
ПараметрыНоменклатуры.Вставить("ПредставлениеХарактеристики", СтрокаТабличнойЧасти.Характеристика);
ПараметрыНоменклатуры.Вставить("ПредставлениеАртикула", СтрокаТабличнойЧасти.Артикул);
ПараметрыНоменклатуры.Вставить("НеобходимоВыделитьКакСоставНабора",
СтрокаТабличнойЧасти.НеобходимоВыделитьКакСоставНабора);
ДанныеПечати.Вставить("ПредставлениеНоменклатуры", ПечатьДокументовУНФ.ПредставлениеНоменклатуры(
ПараметрыНоменклатуры));
ДанныеПечати.Вставить("ПредставлениеКодаНоменклатуры", ПечатьДокументовУНФ.ПредставлениеКодаНоменклатуры(
СтрокаТабличнойЧасти));
ДанныеПечати.Вставить("Артикул", СтрокаТабличнойЧасти.Артикул);
ДанныеПечати.Вставить("Количество", СтрокаТабличнойЧасти.Количество);
Если ТипЗнч(СтрокаТабличнойЧасти.ЕдиницаИзмерения) = Тип("СправочникСсылка.ЕдиницыИзмерения")
Или ТипЗнч(СтрокаТабличнойЧасти.ЕдиницаИзмерения) = Тип("СправочникСсылка.КлассификаторЕдиницИзмерения") Тогда
ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧасти.ЕдиницаИзмерения.Наименование);
Иначе
ДанныеПечати.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧасти.ЕдиницаИзмерения);
КонецЕсли;
ДанныеПечати.Вставить("Цена", СтрокаТабличнойЧасти.Цена);
//Если Итоги.ЕстьСкидки Тогда
// ДанныеПечати.Вставить("ПредставлениеСкидки", ПечатьДокументовУНФ.ПредставлениеСкидки(СтрокаТабличнойЧасти,
// Итоги));
//КонецЕсли;
ДанныеПечати.Вставить("Сумма", СтрокаТабличнойЧасти.Сумма);
ДанныеПечати.Вставить("СуммаБезСкидки", СтрокаТабличнойЧасти.СуммаБезСкидки);
Если Не СтрокаТабличнойЧасти.ЭтоРазделитель И Не СтрокаТабличнойЧасти.ЭтоНабор Тогда
Итоги.КоличествоНаСтранице= Итоги.КоличествоНаСтранице + СтрокаТабличнойЧасти.Количество;
Итоги.Сумма = Итоги.Сумма + СтрокаТабличнойЧасти.Сумма;
Итоги.СуммаНаСтранице = Итоги.СуммаНаСтранице + СтрокаТабличнойЧасти.Сумма;
Итоги.СуммаНДС = Итоги.СуммаНДС + СтрокаТабличнойЧасти.СуммаНДС;
Итоги.Всего = Итоги.Всего + СтрокаТабличнойЧасти.Всего;
// Итоги.СкидкаПоДокументу = Итоги.СкидкаПоДокументу + Итоги.СкидкаПоСтроке;
Итоги.СуммаНаСтраницеБезСкидки = Итоги.СуммаНаСтраницеБезСкидки + СтрокаТабличнойЧасти.СуммаБезСкидки;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтрокаТабличнойЧасти, "СтавкаНДС") Тогда
Если СтрокаТабличнойЧасти.СтавкаНДС = УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСНоль() Тогда
Итоги.ЕстьСтавкаНольПроцентов = Истина;
КонецЕсли;
Итоги.СтавкиНДС.Добавить(СтрокаТабличнойЧасти.СтавкаНДС);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПрисоединитьКОбластиПечатиДокумента(ТабличныйДокумент, ТекущаяОбластьПечати, ОписаниеОбъектаПечати)
НомерСтрокиНачалаОбласти = ТекущаяОбластьПечати.Верх;
НомерСтрокиОкончанияОбласти = ТабличныйДокумент.ВысотаТаблицы;
ТабличныйДокумент.Область(ТекущаяОбластьПечати.Верх, , ТекущаяОбластьПечати.Низ).Имя = "";
ТабличныйДокумент.Область(НомерСтрокиНачалаОбласти, ,
НомерСтрокиОкончанияОбласти).Имя = ОписаниеОбъектаПечати.Представление;
КонецПроцедуры
Функция КоличествоСтрокКВыводуНаПечать(ДанныеОбъекта, ЕстьТЧРаботыУслуги, ЕстьТЧЗапасы)
КоличествоРезультирующихСтрок = 0;
Если ЕстьТЧРаботыУслуги Тогда
КоличествоРезультирующихСтрок = КоличествоРезультирующихСтрок + ДанныеОбъекта.ТаблицаРаботыУслуги.Количество();
КонецЕсли;
Если ЕстьТЧЗапасы Тогда
КоличествоРезультирующихСтрок = КоличествоРезультирующихСтрок + ДанныеОбъекта.ТаблицаЗапасы.Количество();
КонецЕсли;
Возврат КоличествоРезультирующихСтрок;
КонецФункции
#КонецОбласти
Функция ЗапросПоДаннымДокумента(МассивОбъектов, ИспользоватьФаксимиле, Ошибки)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("ИспользоватьФаксимиле", ИспользоватьФаксимиле);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.Ссылка КАК Ссылка,
| ЗаказПокупателя.Дата КАК ДатаДокумента,
| ЗаказПокупателя.Финиш КАК ДатаВыполненияРабот,
| ЗаказПокупателя.ВидЗакрывающегоДокументаВыставлениеСчетов КАК ВидЗакрывающегоДокумента,
| ЗаказПокупателя.НомерЗакрывающегоДокументаВыставлениеСчетов КАК НомерЗакрывающегоДокумента,
| ЗаказПокупателя.ДатаЗакрывающегоДокументаВыставлениеСчетов КАК ДатаЗакрывающегоДокумента,
| ЗаказПокупателя.Номер КАК Номер,
| ""Расходная накладная"" КАК ПредставлениеРегистратора,
| НЕОПРЕДЕЛЕНО КАК ВидОперации,
| ЗаказПокупателя.Организация КАК Организация,
| ЗаказПокупателя.Организация.ЮридическоеФизическоеЛицо КАК ОрганизацияЮридическоеФизическоеЛицо,
| ЗаказПокупателя.Организация.Префикс КАК Префикс,
| ЗаказПокупателя.Организация.ФайлЛоготип КАК ФайлЛоготип,
| ЗаказПокупателя.Организация.ФайлФаксимильнаяПечать КАК ФаксимилеПечати,
| ВЫБОР
| КОГДА &ИспользоватьФаксимиле = ИСТИНА
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ДаНет.Да)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ДаНет.Нет)
| КОНЕЦ КАК ИспользоватьФаксимиле,
| ЗаказПокупателя.ПодписьРуководителя.Должность КАК ДолжностьРуководителя,
| ЗаказПокупателя.ПодписьРуководителя.РасшифровкаПодписи КАК РасшифровкаПодписиРуководителя,
| ЗаказПокупателя.ПодписьРуководителя.РасшифровкаПодписи КАК РасшифровкаПодписиВыполнилРаботыУслуги,
| ЗаказПокупателя.ПодписьРуководителя.Факсимиле КАК ФаксимилеРуководителя,
| ЗаказПокупателя.ПодписьГлавногоБухгалтера.Должность КАК ДолжностьГлавногоБухгалтера,
| ЗаказПокупателя.ПодписьГлавногоБухгалтера.РасшифровкаПодписи КАК РасшифровкаПодписиГлавногоБухгалтера,
| ЗаказПокупателя.ПодписьГлавногоБухгалтера.Факсимиле КАК ФаксимилеГлавногоБухгалтера,
| ЗаказПокупателя.ПодписьКладовщика.Факсимиле КАК ФаксимилеКладовщика,
| ЗаказПокупателя.ПодписьКладовщика.Должность КАК ДолжностьКладовщика,
| ЗаказПокупателя.ПодписьКладовщика.РасшифровкаПодписи КАК РасшифровкаПодписиКладовщика,
| ЗаказПокупателя.БанковскийСчет КАК БанковскийСчет,
| ЗаказПокупателя.СуммаВключаетНДС КАК СуммаВключаетНДС,
| ЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
| ЗаказПокупателя.АдресДоставки КАК АдресДоставки,
| ЗаказПокупателя.КонтактноеЛицоПодписант.Наименование КАК РасшифровкаПодписиКонтрагента,
| ЗаказПокупателя.КонтактноеЛицоПодписант.Наименование КАК РасшифровкаПодписиПринялРаботыУслуги,
| ЗаказПокупателя.Договор КАК Договор,
| ЗаказПокупателя.УсловияСчетаЗаказа КАК ДополнительныеУсловия,
| ЗаказПокупателя.ТекстУсловийСчетаЗаказа КАК ТекстДополнительныхУсловий,
| ЗаказПокупателя.ДокументОснование КАК ДокументОснование,
| ЗаказПокупателя.Ответственный КАК Ответственный,
| ЗаказПокупателя.Ответственный.Физлицо КАК ФизическоеЛицоОтветственного,
| ЗаказПокупателя.Автор КАК Автор,
| ЗаказПокупателя.ДисконтнаяКарта КАК ДисконтнаяКарта,
| ЗаказПокупателя.ПроцентСкидкиПоДисконтнойКарте КАК ПроцентСкидкиПоДисконтнойКарте,
| ЗаказПокупателя.СостояниеЗаказа КАК СостояниеЗаказа,
| ЗаказПокупателя.Комментарий КАК Комментарий,
| ЗаказПокупателя.ОснованиеПечати КАК ОснованиеПечати,
| ЗаказПокупателя.ОснованиеПечатиСсылка КАК ОснованиеПечатиСсылка,
| ЗаказПокупателя.ОжидаетсяВыборВариантаКП КАК ОжидаетсяВыборВариантаКП,
| ЗаказПокупателя.Вес КАК Вес,
| ЗаказПокупателя.Объем КАК Объем,
| ВЫБОР
| КОГДА (ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
| ИЛИ ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаявкаЗаказНаряд))
| ИЛИ ЗаказПокупателя.СпособДоставки В (ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.СпособыДоставки.Самовывоз))
| ТОГДА ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ИНАЧЕ ЗаказПокупателя.НоменклатураДоставки
| КОНЕЦ КАК НоменклатураДоставки,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))) = """"
| ТОГДА ЗаказПокупателя.НоменклатураДоставки.Наименование
| ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.НоменклатураДоставки.НаименованиеПолное КАК СТРОКА(1000))
| КОНЕЦ КАК ПредставлениеНоменклатурыДоставки,
| ЗаказПокупателя.НоменклатураДоставки.Артикул КАК АртикулДоставки,
| ЗаказПокупателя.НоменклатураДоставки.Код КАК КодДоставки,
| ЗаказПокупателя.НоменклатураДоставки.ЕдиницаИзмерения КАК ЕдиницаИзмеренияДоставки,
| ЗаказПокупателя.СтоимостьДоставки КАК СтоимостьДоставки,
| ЗаказПокупателя.СтавкаНДСДоставки КАК СтавкаНДСДоставки,
| ЗаказПокупателя.СуммаНДСДоставки КАК СуммаНДСДоставки,
| ЗаказПокупателя.Запасы.(
| НомерСтроки КАК НомерСтроки,
| Содержание КАК Содержание,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ЗаказПокупателя.Запасы.Номенклатура) = ТИП(СТРОКА)
| ТОГДА ЗаказПокупателя.Запасы.Номенклатура
| КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
| ТОГДА ЗаказПокупателя.Запасы.Номенклатура.Наименование
| ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
| КОНЕЦ КАК ПредставлениеНоменклатуры,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Штрихкод КАК Штрихкод,
| Характеристика КАК Характеристика,
| Партия КАК Партия,
| ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Запасы.Сумма / ЗаказПокупателя.Запасы.Количество КАК Цена,
| Сумма КАК Сумма,
| СтавкаНДС КАК СтавкаНДС,
| СуммаНДС КАК СуммаНДС,
| Всего КАК Всего,
| Вес КАК Вес,
| Количество КАК Количество,
| ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
| ВЫБОР
| КОГДА ЗаказПокупателя.Запасы.ПроцентСкидкиНаценки <> 0
| ИЛИ ЗаказПокупателя.Запасы.СуммаАвтоматическойСкидки <> 0
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК ЕстьСкидка,
| СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| Спецификация КАК Спецификация,
| ЭтоРазделитель КАК ЭтоРазделитель,
| КлючСвязи КАК КлючСвязи,
| НомерВариантаКП КАК НомерВариантаКП,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР
| КОГДА ЗаказПокупателя.Запасы.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ЗаказПокупателя.Запасы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.НаборИКомплектующие)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК НеобходимоВыделитьКакСоставНабора,
| НоменклатураНабора КАК НоменклатураНабора,
| ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Цена * ЗаказПокупателя.Запасы.Количество КАК ЧИСЛО(15, 2)) КАК СуммаБезСкидки
| ) КАК ТаблицаЗапасы,
| ЗаказПокупателя.ДобавленныеНаборы.(
| НоменклатураНабора КАК НоменклатураНабора,
| ХарактеристикаНабора КАК ХарактеристикаНабора,
| НомерВариантаКП КАК НомерВариантаКП,
| Количество КАК Количество,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))) = """"
| ТОГДА ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.Наименование
| ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.ДобавленныеНаборы.НоменклатураНабора.НаименованиеПолное КАК СТРОКА(1000))
| КОНЕЦ КАК ЗапасНабора,
| НоменклатураНабора.ВариантПечатиНабора КАК ВариантПечатиНабора,
| НоменклатураНабора.ТипНоменклатуры КАК ТипНоменклатурыНабора,
| НоменклатураНабора.Артикул КАК АртикулНабора,
| НоменклатураНабора.Код КАК КодНабора,
| НоменклатураНабора.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНабора,
| НоменклатураНабора.ЕдиницаИзмерения.Код КАК КодЕдиницыИзмеренияНабора,
| ИСТИНА КАК ВыводитьИтоги
| ) КАК ТаблицаДобавленныеНаборы,
| ЗаказПокупателя.Работы.(
| НомерСтроки КАК НомерСтроки,
| Содержание КАК Содержание,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
| ТОГДА ЗаказПокупателя.Работы.Номенклатура.Наименование
| ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
| КОНЕЦ КАК ПредставлениеНоменклатуры,
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Штрихкод КАК Штрихкод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Характеристика КАК Характеристика,
| НЕОПРЕДЕЛЕНО КАК Партия,
| Количество КАК Время,
| Кратность КАК Кратность,
| Коэффициент КАК Коэффициент,
| Цена КАК Цена,
| Сумма КАК Сумма,
| СтавкаНДС КАК СтавкаНДС,
| СуммаНДС КАК СуммаНДС,
| Всего КАК Всего,
| ЗаказПокупателя.Работы.Количество * ЗаказПокупателя.Работы.Коэффициент * ЗаказПокупателя.Работы.Кратность КАК Количество,
| ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
| ВЫБОР
| КОГДА ЗаказПокупателя.Работы.ПроцентСкидкиНаценки <> 0
| ИЛИ ЗаказПокупателя.Работы.СуммаАвтоматическойСкидки <> 0
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК ЕстьСкидка,
| СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| ЛОЖЬ КАК ЭтоРазделитель,
| КлючСвязи КАК КлючСвязи,
| 0 КАК НомерВариантаКП,
| ЛОЖЬ КАК ЭтоНабор,
| ВЫБОР
| КОГДА ЗаказПокупателя.Работы.НоменклатураНабора <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| И ЗаказПокупателя.Работы.НоменклатураНабора.ВариантПечатиНабора = ЗНАЧЕНИЕ(Перечисление.ВариантыПечатиНаборов.НаборИКомплектующие)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК НеобходимоВыделитьКакСоставНабора,
| НоменклатураНабора КАК НоменклатураНабора,
| ХарактеристикаНабора КАК ХарактеристикаНабора,
| ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Цена * (ЗаказПокупателя.Работы.Количество * ЗаказПокупателя.Работы.Коэффициент * ЗаказПокупателя.Работы.Кратность) КАК ЧИСЛО(15, 2)) КАК СуммаБезСкидки
| ) КАК ТаблицаРаботыУслуги,
| ЗаказПокупателя.ПлатежныйКалендарь.(
| ДатаОплаты КАК ДатаОплаты,
| Постфикс КАК Постфикс,
| ПроцентОплаты КАК ПроцентОплаты,
| СуммаОплаты КАК СуммаОплаты,
| СуммаНДСОплаты КАК СуммаНДСОплаты
| ) КАК ТаблицаПланаОплат,
| ЗаказПокупателя.СерииНоменклатуры.(
| Серия КАК Серия,
| КлючСвязи КАК КлючСвязи
| ) КАК ТаблицаСерииНоменклатуры
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка В(&МассивОбъектов)
| И (ЗаказПокупателя.ОсновнойВариантКП = 0
| ИЛИ ЗаказПокупателя.Запасы.НомерВариантаКП = ЗаказПокупателя.ОсновнойВариантКП)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| ЗаказПокупателя.Работы.НомерСтроки,
| ЗаказПокупателя.Запасы.НомерСтроки";
ДанныеДокументов = Запрос.Выполнить().Выгрузить();
ДоставкаСервер.ДобавитьСтрокуДоставкиУниверсальныеДанные(ДанныеДокументов);
// Наборы
НаборыСервер.КомпоноватьТабличнуюЧастьПоНаборам(ДанныеДокументов, "ТаблицаЗапасы", Ошибки, Истина);
НаборыСервер.КомпоноватьТабличнуюЧастьПоНаборам(ДанныеДокументов, "ТаблицаРаботыУслуги", Ошибки);
Возврат ДанныеДокументов;
КонецФункции |
|||
|
2
WerLym
16.02.26
✎
14:48
|
Для дополнительного отчета или обработки "Счет на оплату (спец)" требуется использование следующих внешних ресурсов:
Каталоги файловой системы (1): Адрес Чтение данных Запись данных Папка временных файлов Нет Нет это то что пишет 1с фреш внутри уже загруженной и прошедшей аудит обработки |
|||
|
3
WerLym
16.02.26
✎
14:55
|
Может кто-то знает где чаще всего возникает такое разрешение и я сам проверю
|
|||
|
4
ass1c
16.02.26
✎
17:06
|
(0) никогда особо эту тему не разбирал, но попробуй покопать в этом направлении:
ПараметрыРегистрации.Вставить("Разрешения", Новый Массив);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаПрограммы(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |