1С:Предприятие 8.3 (8.3.9.2309)
Бухгалтерия для Украины, редакция 2.0. (2.0.9.2)
Добрый день, скажи те мне не понимающему делаю ТТН для бухгалтерии Ошибка у меня в том что функция печати код:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
ТабДокумент = ПечатьТТН(ПараметрыПечати);
КонецЕсли;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТТН", НСтр("ru='Товарно-транспортная накладная (1-ТН)';uk='Товарно-транспортна накладна (1-ТН)'"),
ТабДокумент,,"Обработка.ПечатьТТН.ПФ_MXL_ТТН");
КонецПроцедуры
Выдает ошибку {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(233)}: В обработчике печати не был сформирован табличный документ для: ТТН2018
ВызватьИсключение(ТекстСообщенияОбОшибке);
Вот весь код:
Функция СведенияОВнешнейОбработке()Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "ТТН2018"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Это 2018 ТТН ");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "ТТН 2018", "ТТН2018", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции // СведенияОВнешнейОбработке()
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
ТабДокумент = ПечатьТТН(ПараметрыПечати);
КонецЕсли;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТТН", НСтр("ru='Товарно-транспортная накладная (1-ТН)';uk='Товарно-транспортна накладна (1-ТН)'"),
ТабДокумент,,"Обработка.ПечатьТТН.ПФ_MXL_ТТН");
КонецПроцедуры
Функция ПечатьТТН(ПараметрыПечати) Экспорт
УстановитьПривилегированныйРежим(Истина);
мВалютаРегламентированногоУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
Документ = ПараметрыПечати.Документ;
МаркаИГосНомерАвтомобиля = ПараметрыПечати.МаркаИГосНомерАвтомобиля;
ГосНомерПрицепа = ПараметрыПечати.ГосНомерПрицепа;
ПунктПогрузки = ПараметрыПечати.ПунктПогрузки;
ПунктРазгрузки = ПараметрыПечати.ПунктРазгрузки;
Водитель = ПараметрыПечати.Водитель;
Перевозчик = ПараметрыПечати.Перевозчик;
ВидПеревозки = ПараметрыПечати.ВидПеревозки;
НомерТТН = ПараметрыПечати.НомерТТН;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаСреза", Документ.Дата);
Запрос.УстановитьПараметр("СтруктурнаяЕдиница", Документ.Склад);
Запрос.УстановитьПараметр("ТекущийДокумент", Документ);
Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка КАК Документ,
| Номер,
| Дата КАК ДатаДокумента,
| Организация,
| Организация КАК ЮрФизЛицо,
| Организация КАК Поставщик,
| Организация КАК Контрагент,
| Организация КАК Руководители,
| ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент
| ТОГДА Контрагент
| ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель,
| Организация КАК Грузоотправитель,
| БанковскийСчетОрганизации КАК БанковскийСчет,
| Контрагент КАК Покупатель,
| Контрагент КАК Плательщик,
| ОтветственныеЛица.ФизическоеЛицо КАК ОтветственноеЛицо,
| ВалютаДокумента,
| КурсВзаиморасчетов КАК Курс,
| КратностьВзаиморасчетов КАК Кратность,
| СуммаВключаетНДС,
| Получил,
| ДоверенностьСерия,
| ДоверенностьНомер,
| ДоверенностьДата
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ОтветственныеЛица.СрезПоследних(&ДатаСреза, СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК ОтветственныеЛица
|ПО
| ОтветственныеЛица.СтруктурнаяЕдиница = РеализацияТоваровУслуг.Склад
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", Документ);
Если Документ.ВалютаДокумента = Документ.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
// Документ оформлен в валюте взаиморасчетов
Запрос.УстановитьПараметр("Курс", Документ.КурсВзаиморасчетов);
Запрос.УстановитьПараметр("Кратность", Документ.КратностьВзаиморасчетов);
Иначе
// Документ оформлен в валюте регламентированного учета
Запрос.УстановитьПараметр("Курс", 1);
Запрос.УстановитьПараметр("Кратность", 1);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
| ВложенныйЗапрос.Номенклатура.Код КАК Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК БазоваяЕдиницаНаименование,
| ВложенныйЗапрос.ЕдиницаИзмерения.Код КАК БазоваяЕдиницаКодПоОКЕИ,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ВидУпаковки,
| ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС,
| ВложенныйЗапрос.Цена КАК Цена,
| ВложенныйЗапрос.Количество КАК Количество,
| ВложенныйЗапрос.Сумма КАК Сумма,
| ВложенныйЗапрос.СуммаНДС КАК СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| ВложенныйЗапрос.Метка КАК Метка
|ИЗ
|
| (
| ВЫБРАТЬ
| РеализацияТоваровУслуг.Номенклатура,
| РеализацияТоваровУслуг.Коэффициент,
| РеализацияТоваровУслуг.ЕдиницаИзмерения,
| РеализацияТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмеренияМест,
| РеализацияТоваровУслуг.СтавкаНДС,
| РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена,
| СУММА(РеализацияТоваровУслуг.Количество) КАК Количество,
| СУММА(РеализацияТоваровУслуг.Сумма * &Курс / &Кратность) КАК Сумма,
| СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС,
| МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки,
| 0 КАК Метка
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Номенклатура,
| РеализацияТоваровУслуг.Коэффициент,
| РеализацияТоваровУслуг.ЕдиницаИзмерения,
| РеализацияТоваровУслуг.СтавкаНДС,
| РеализацияТоваровУслуг.Цена
|
| ) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
| РеализацияТоваровУслуг.Номенклатура.Код КАК Артикул,
| РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Представление КАК БазоваяЕдиницаНаименование,
| РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК БазоваяЕдиницаКодПоОКЕИ,
| РеализацияТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| NULL КАК ВидУпаковки,
| ""Без НДС"" КАК СтавкаНДС,
| РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена,
| РеализацияТоваровУслуг.Количество КАК Количество,
| РеализацияТоваровУслуг.Сумма * &Курс / &Кратность КАК Сумма,
| 0 КАК СуммаНДС,
| РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки,
| 2 КАК Метка
|ИЗ
| Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО Метка ВОЗР, НомерСтроки ВОЗР
|
|";
ЗапросТовары = Запрос.Выполнить().Выгрузить();
ТабДокумент = Новый ТабличныйДокумент;
Если Шапка.ДатаДокумента < Дата("20140114") Тогда
ЗаполнитьТТН (Шапка, ЗапросТовары, ТабДокумент,ПараметрыПечати)
Иначе
ЗаполнитьТТН2014 (Шапка, ЗапросТовары, ТабДокумент,ПараметрыПечати)
КонецЕсли;
Возврат ТабДокумент;
КонецФункции // ПечатьТТН()
Процедура ЗаполнитьТТН (Шапка, ЗапросТовары, ТабДокумент, ПараметрыПечати)
Документ = ПараметрыПечати.Документ;
МаркаИГосНомерАвтомобиля = ПараметрыПечати.МаркаИГосНомерАвтомобиля;
ГосНомерПрицепа = ПараметрыПечати.ГосНомерПрицепа;
ПунктПогрузки = ПараметрыПечати.ПунктПогрузки;
ПунктРазгрузки = ПараметрыПечати.ПунктРазгрузки;
Водитель = ПараметрыПечати.Водитель;
Перевозчик = ПараметрыПечати.Перевозчик;
ВидПеревозки = ПараметрыПечати.ВидПеревозки;
НомерТТН = ПараметрыПечати.НомерТТН;
// Зададим параметры макета
ТабДокумент.ПолеСверху = 0;
ТабДокумент.ПолеСлева = 5;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 5;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ПечатьТТН.ПФ_MXL_ТТН");
КодЯзыкаПечать = "uk";
// Выводим общие реквизиты шапки
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента);
СведенияОГрузополучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.ДатаДокумента);
СведенияОГрузоотправитель = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);
Если ЗначениеЗаполнено(Документ.БанковскийСчетОрганизации) Тогда
НомерСчета = Документ.БанковскийСчетОрганизации.НомерСчета;
Банк = Документ.БанковскийСчетОрганизации.Банк;
МФО = Документ.БанковскийСчетОрганизации.Банк.Код;
СведенияОГрузоотправитель.Вставить("НомерСчета", НомерСчета);
СведенияОГрузоотправитель.Вставить("Банк", Банк);
СведенияОГрузоотправитель.Вставить("МФО", МФО);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НомерДокумента = НомерТТН;
ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента;
ОбластьМакета.Параметры.Грузоотправитель = Шапка.Грузоотправитель;
ОбластьМакета.Параметры.Грузополучатель = Шапка.Грузополучатель;
ОбластьМакета.Параметры.Плательщик = Шапка.Покупатель;
ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ",, КодЯзыкаПечать);
ОбластьМакета.Параметры.ГрузополучательПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ",, КодЯзыкаПечать);
ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ",, КодЯзыкаПечать);
ОбластьМакета.Параметры.ГрузоотправительЕДРПОУ = СведенияОГрузоотправитель.КодПоЕДРПОУ;
ОбластьМакета.Параметры.ГрузополучательЕДРПОУ = СведенияОГрузополучателе.КодПоЕДРПОУ;
ОбластьМакета.Параметры.ПлательщикЕДРПОУ = СведенияОПокупателе.КодПоЕДРПОУ;
ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = МаркаИГосНомерАвтомобиля;
ОбластьМакета.Параметры.ФИОВодителя = Водитель;
ОбластьМакета.Параметры.ВидПеревозки = ВидПеревозки;
ОбластьМакета.Параметры.ГосНомерПрицепа = ГосНомерПрицепа;
ОбластьМакета.Параметры.ПунктПогрузки = ПунктПогрузки;
ОбластьМакета.Параметры.ПунктРазгрузки = ПунктРазгрузки;
ОбластьМакета.Параметры.ОрганизацияПеревозчик = Перевозчик;
ТабДокумент.Вывести(ОбластьМакета);
СтрокНаСтранице = 23;
СтрокШапки = 10;
СтрокПодвала = 9;
НомерСтраницы = 1;
// Выводим заголовок таблицы
ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
ТабДокумент.Вывести(ЗаголовокТаблицы);
КоличествоСтрок = ЗапросТовары.Количество();
Если КоличествоСтрок = 1 Тогда
ПереноситьПоследнююСтроку = 0;
Иначе
ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
КонецЕсли;
// инициализация итогов по странице
ИтогоКоличествоНаСтранице = 0;
ИтогоСуммаСНДСНаСтранице = 0;
// инициализация итогов по документу
ИтогоМест = 0;
ИтогоКоличество = 0;
ИтогоСуммаСНДС = 0;
Ном = 0;
// Выводим многострочную часть докмента
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование;
// Мест = ВыборкаСтрок.КоличествоМест;
Количество = ВыборкаСтрок.Количество;
СуммаСНДС = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
ОбластьМакета.Параметры.Сумма = СуммаСНДС;
ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаСНДС / Количество);
ТабДокумент.Вывести(ОбластьМакета);
// увеличим итоги по дукументу
ИтогоКоличество = ИтогоКоличество + Количество;
ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНДС;
КонецЦикла;
// Выводим итоги по документу в целом
ОбластьМакета = Макет.ПолучитьОбласть("Всего");
ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
ОбластьМакета.Параметры.ИтогоСуммаСНДС = ИтогоСуммаСНДС;
ТабДокумент.Вывести(ОбластьМакета);
// Выводим подвал документа
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента);
// Отпуск товара разрешил
ФИООтпускРазрешил = Руководители.РуководительПредставление;
ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ДолжностьОтпускРазрешил;
ОбластьМакета.Параметры.ДоверенностьЧерезКого = Шапка.Получил;
ОбластьМакета.Параметры.СерияДоверенности = Шапка.ДоверенностьСерия;
ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
ОбластьМакета.Параметры.ДатаДоверенности = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(ИтогоСуммаСНДС, Константы.ВалютаРегламентированногоУчета.Получить(), КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("ПрочиеСведения");
ТабДокумент.Вывести(ОбластьМакета);
КонецПроцедуры // ЗаполнитьТТН()
Процедура ЗаполнитьТТН2014 (Шапка, ЗапросТовары, ТабДокумент, ПараметрыПечати)
Документ = ПараметрыПечати.Документ;
МаркаИГосНомерАвтомобиля = ПараметрыПечати.МаркаИГосНомерАвтомобиля;
ГосНомерПрицепа = ПараметрыПечати.ГосНомерПрицепа;
ПунктПогрузки = ПараметрыПечати.ПунктПогрузки;
ПунктРазгрузки = ПараметрыПечати.ПунктРазгрузки;
Водитель = ПараметрыПечати.Водитель;
Перевозчик = ПараметрыПечати.Перевозчик;
ВидПеревозки = ПараметрыПечати.ВидПеревозки;
НомерТТН = ПараметрыПечати.НомерТТН;
// Зададим параметры макета
ТабДокумент.ПолеСверху = 0;
ТабДокумент.ПолеСлева = 5;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 5;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Макет = УправлениеПечатью.ПолучитьМакет("Обработка.ПечатьТТН.ПФ_MXL_ТТН2014");
КодЯзыкаПечать = "uk";
// Выводим общие реквизиты шапки
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента);
СведенияОГрузополучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.ДатаДокумента);
СведенияОГрузоотправитель = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);
Если ЗначениеЗаполнено(Документ.БанковскийСчетОрганизации) Тогда
НомерСчета = Документ.БанковскийСчетОрганизации.НомерСчета;
Банк = Документ.БанковскийСчетОрганизации.Банк;
МФО = Документ.БанковскийСчетОрганизации.Банк.Код;
СведенияОГрузоотправитель.Вставить("НомерСчета", НомерСчета);
СведенияОГрузоотправитель.Вставить("Банк", Банк);
СведенияОГрузоотправитель.Вставить("МФО", МФО);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НомерДокумента = НомерТТН;
ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента;
ОбластьМакета.Параметры.Грузоотправитель = Шапка.Грузоотправитель;
ОбластьМакета.Параметры.Грузополучатель = Шапка.Грузополучатель;
ОбластьМакета.Параметры.Плательщик = Шапка.Покупатель;
ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
ОбластьМакета.Параметры.ГрузополучательПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
ОбластьМакета.Параметры.ГрузоотправительПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,МФО,КодПоЕДРПОУ,",, КодЯзыкаПечать);
ОбластьМакета.Параметры.МаркаИГосНомерАвтомобиля = МаркаИГосНомерАвтомобиля;
ОбластьМакета.Параметры.ФИОВодителя = Водитель;
ОбластьМакета.Параметры.ВидПеревозки = ВидПеревозки;
ОбластьМакета.Параметры.ГосНомерПрицепа = ГосНомерПрицепа;
ОбластьМакета.Параметры.ПунктПогрузки = ПунктПогрузки;
ОбластьМакета.Параметры.ПунктРазгрузки = ПунктРазгрузки;
ОбластьМакета.Параметры.ОрганизацияПеревозчик = Перевозчик;
Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента);
// Отпуск товара разрешил
ФИООтпускРазрешил = Руководители.РуководительПредставление;
ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
ОбластьМакета.Параметры.ОтпускРазрешилДолжность = ?(ЗначениеЗаполнено(ФИООтпускРазрешил), ФИООтпускРазрешил + ", " + ДолжностьОтпускРазрешил, "");
ОбластьМакета.Параметры.СерияДоверенности = Шапка.ДоверенностьСерия;
ОбластьМакета.Параметры.НомерДоверенности = Шапка.ДоверенностьНомер;
ОбластьМакета.Параметры.ДатаДоверенности = Формат(Шапка.ДоверенностьДата, "ДФ = ""дд.ММ.гггг""");
СуммаСНДС = Окр((ЗапросТовары.Итог("Сумма") + ?(Шапка.СуммаВключаетНДС, 0, ЗапросТовары.Итог("СуммаНДС"))), 2);
ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаСНДС, Константы.ВалютаРегламентированногоУчета.Получить(), КодЯзыкаПечать);
ОбластьМакета.Параметры.СуммаНДС = ОбщегоНазначенияБПВызовСервера.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"), Константы.ВалютаРегламентированногоУчета.Получить());
Количество = ЗапросТовары.Итог("Количество");
КоличествоМест = ?(Цел(Количество) = Количество, Количество, Цел(Количество) + 1);
КоличествоМестПрописью = НРег(ЧислоПрописью(КоличествоМест,"Л=uk_UK"));
ОбластьМакета.Параметры.КоличествоМестПрописью = Лев(КоличествоМестПрописью,СтрДлина(КоличествоМестПрописью)-3);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
// Выводим заголовок таблицы
ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
ТабДокумент.Вывести(ЗаголовокТаблицы);
КоличествоСтрок = ЗапросТовары.Количество();
// инициализация итогов по странице
ИтогоКоличествоНаСтранице = 0;
ИтогоСуммаСНДСНаСтранице = 0;
// инициализация итогов по документу
ИтогоМест = 0;
ИтогоКоличество = 0;
ИтогоСуммаСНДС = 0;
Ном = 1;
// Выводим многострочную часть докмента
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
ОбластьМакета.Параметры.НомерСтроки = Ном;
ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрок.ТоварНаименование;
// Мест = ВыборкаСтрок.КоличествоМест;
Количество = ВыборкаСтрок.Количество;
СуммаСНДС = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
СуммаБезНДС = СуммаСНДС - ВыборкаСтрок.СуммаНДС;
ОбластьМакета.Параметры.Сумма = СуммаСНДС;
ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
ТабДокумент.Вывести(ОбластьМакета);
// увеличим итоги по дукументу
ИтогоКоличество = ИтогоКоличество + Количество;
ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНДС;
Ном = Ном + 1;
КонецЦикла;
// Выводим итоги по документу в целом
ОбластьМакета = Макет.ПолучитьОбласть("Всего");
ОбластьМакета.Параметры.ИтогоКоличество = ИтогоКоличество;
ОбластьМакета.Параметры.ИтогоСуммаСНДС = ИтогоСуммаСНДС;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("ПогрузочныеОперации");
ТабДокумент.Вывести(ОбластьМакета);
КонецПроцедуры //ЗаполнитьТТН2014