Ошбика Поле объекта не обнаружено (мВалютаРегламентированногоУчета) во внешней печатной форме
20.12.17, 15:39
Общительный
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0
Доброго времени суток.
Нужна помощь. в подключении внешней печатной формы.
При открытии внешней обработки в 1с через Файл-->открыть, и выбрав любой счет, все нормально открывается и отображается.
Но уже подключив внешнюю обработку через "Сервис" "дополнительные отчеты и обработки"
Открыв любой счет и выбрав печать уже через эту обработку выдает ошибку:
Цитата
Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (мВалютаРегламентированногоУчета)
Где у меня может быть ошибка?
В конфигурации ошибки не вылазят.
1с Предприятие 8,3 (8,3,9,2233)
Конфигурация: Бухгалтерия для Украины, редакция 1,2(1,2,42,1)
Форма Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
Запрос.Текст ="
|ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.Дата КАК ДоговорДата,
| ДоговорКонтрагента.Номер КАК ДоговорНомер,
| ДоговорКонтрагента.НаименованиеДляПечати КАК ДоговорНаименованиеДляПечати,
| ДоговорКонтрагента.ВидДоговора КАК ВидДоговораКонтрагента,
| Ответственный.ФизЛицо.Наименование КАК Отпустил,
| Организация,
| Контрагент КАК Покупатель,
| Организация КАК Поставщик,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент" ;
Тип = "Счет" ;
мВалютаРегламентированногоУчета = СсылкаНаОбъект.ВалютаДокумента;
СтруктурнаяЕдиница = СсылкаНаОбъект.СтруктурнаяЕдиница;
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ" ;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя" );
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.СуммаБезСкидки,
| ВложенныйЗапрос.СуммаСкидки,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| 1 КАК ID
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Цена КАК Цена,
| СУММА(ЗаказПокупателя.Количество) КАК Количество,
| СУММА(ЗаказПокупателя.СуммаБезСкидки) КАК СуммаБезСкидки,
| СУММА(ЗаказПокупателя.СуммаСкидки) КАК СуммаСкидки,
| СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
| СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
| МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
|
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.ЕдиницаИзмерения,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.СтавкаНДС) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
| ЗаказПокупателя.Номенклатура.Код КАК Код,
| ЗаказПокупателя.Количество,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.СуммаБезСкидки,
| ЗаказПокупателя.СуммаСкидки,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 2
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки" ;
ЗапросТовары = Запрос.Выполнить().Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Цена КАК Цена,
| СУММА(ЗаказПокупателя.Количество) КАК Количество,
| СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
| МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.СчетНаОплатуПокупателю.ВозвратнаяТара КАК ЗаказПокупателя
|
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки" ;
ЗапросТара = Запрос.Выполнить().Выгрузить();
Макет = ПолучитьМакет("СчетЗаказ" );
КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь" ), "РежимФормированияПечатныхФорм" ));
Макет.КодЯзыкаМакета = КодЯзыкаПечать;
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
Если Тип = "Счет" Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета" );
ОбластьМакета.Параметры.НазваниеОрганизации = СведенияОПоставщике.ПолноеНаименование;
ОбластьМакета.Параметры.ЕДРПОУОрганизации = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОПоставщике);
Если ТипЗнч(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета" ) Тогда
Банк = СтруктурнаяЕдиница.Банк;
МФО = Банк.Код;
НомерСчета = СтруктурнаяЕдиница.НомерСчета;
Иначе
Банк = СведенияОПоставщике.Банк;
МФО = СведенияОПоставщике.МФО;
НомерСчета = СведенияОПоставщике.НомерСчета;
КонецЕсли ;
ОбластьМакета.Параметры.БанкОрганизации = Банк;
ОбластьМакета.Параметры.МФОБанкаОрганизации = МФО;
ОбластьМакета.Параметры.НомерРасчетногоСчетаОрганизации = НомерСчета;
Если НЕ Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером
И НЕ Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли ;
КонецЕсли ;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок" );
Если Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Список товаров на комиссию';uk='Список товарів на комісію'" ,КодЯзыкаПечать),КодЯзыкаПечать);
Иначе
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Счет на оплату';uk='Рахунок на оплату'" ,КодЯзыкаПечать),КодЯзыкаПечать);
КонецЕсли ;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование," ,,КодЯзыкаПечать);
Если Тип = "Счет" Тогда
ОбластьМакета.Параметры.РеквизитыПоставщика = НСтр("ru='Т/с ';uk='П/р '" ,КодЯзыкаПечать) + НомерСчета + НСтр("ru=', Банк ';uk=', Банк '" ,КодЯзыкаПечать) + Банк + НСтр("ru=', МФО ';uk=', МФО '" ,КодЯзыкаПечать) + МФО + Символы.ПС +
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов," ,,КодЯзыкаПечать);
КонецЕсли ;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование," ,,КодЯзыкаПечать);
ОбластьМакета.Параметры.РеквизитыПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"Телефоны," ,,КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати," ;
МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров,КодЯзыкаПечать);
ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация" );
Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла ;
ОбластьИтого = "Итого" ;
ЕстьСкидки = (ЗапросТовары.Итог("СуммаСкидки" ) <> 0 );
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина ;
Колонка = "Артикул" ;
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина ;
Колонка = "Код" ;
Иначе
ВыводитьКоды = Ложь ;
КонецЕсли ;
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные" );
ОбластьСкидка = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
Суффикс = "" ;
Если Шапка.УчитыватьНДС Тогда
Если Шапка.СуммаВключаетНДС Тогда
Суффикс = Суффикс + НСтр("ru=' с ';uk=' з '" ,КодЯзыкаПечать);
Иначе
Суффикс = Суффикс + НСтр("ru=' без ';uk=' без '" ,КодЯзыкаПечать);
КонецЕсли ;
Суффикс = Суффикс + НСтр("ru='НДС';uk='ПДВ'" ,КодЯзыкаПечать);
КонецЕсли ;
ОбластьДанных.Параметры.Цена = НСтр("ru='Цена';uk='Ціна'" ,КодЯзыкаПечать) + Суффикс;
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ТабДокумент.Присоединить(ОбластьСкидка);
КонецЕсли ;
ОбластьСуммы.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'" ,КодЯзыкаПечать)+ Суффикс;
ТабДокумент.Присоединить(ОбластьСуммы);
ОбластьКолонкаТовар = Макет.Область("Товар" );
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("КолонкаКодов" ).ШиринаКолонки;
КонецЕсли ;
Если НЕ ЕстьСкидки Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("СуммаБезСкидки" ).ШиринаКолонки +
Макет.Область("СуммаСкидки" ).ШиринаКолонки;
КонецЕсли ;
СуммаБезСкидки = 0 ;
СуммаСкидки = 0 ;
Сумма = 0 ;
СуммаНДС = 0 ;
ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные" );
ОбластьСкидки = Макет.ПолучитьОбласть("Строка|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма" );
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'" ), СтатусСообщения.Важное);
Продолжить;
КонецЕсли ;
ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1 ;
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ОбластьСкидки.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСкидки);
КонецЕсли ;
ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
СуммаБезСкидки = СуммаБезСкидки + ВыборкаСтрокТовары.СуммаБезСкидки;
СуммаСкидки = СуммаСкидки + ВыборкаСтрокТовары.СуммаСкидки;
Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
КонецЦикла ;
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные" );
ОбластьСкидки = Макет.ПолучитьОбласть("Итого|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ОбластьСкидки.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);
ОбластьСкидки.Параметры.ВсегоСуммаСкидки = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
ТабДокумент.Присоединить(ОбластьСкидки);
КонецЕсли ;
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС" );
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС,,""" " );
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'" ,КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'" ,КодЯзыкаПечать));
ТабДокумент.Вывести(ОбластьМакета);
Если НЕ Шапка.СуммаВключаетНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС" );
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(Сумма + СуммаНДС);
ОбластьМакета.Параметры.НДС = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'" ,КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли ;
КонецЕсли ;
Если ЗапросТара.Количество() > 0 Тогда
ОбластьПробел = Макет.ПолучитьОбласть("Пробел" );
ТабДокумент.Вывести(ОбластьПробел);
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыТара|НомерСтрокиТара" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицыТара|КолонкаКодовТара" );
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицыТара|ДанныеТара" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьКолонкаТара = Макет.Область("Тара" );
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТара.ШиринаКолонки = ОбластьКолонкаТара.ШиринаКолонки +
Макет.Область("КолонкаКодовТара" ).ШиринаКолонки;
КонецЕсли ;
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТара|НомерСтрокиТара" );
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТара|КолонкаКодовТара" );
ОбластьДанных = Макет.ПолучитьОбласть("СтрокаТара|ДанныеТара" );
СуммаТара = 0 ;
Для каждого ВыборкаСтрокТара Из ЗапросТара Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение тары - строка при печати пропущена.';uk='В одному з рядків не заповнене значення тари - рядок під час друку буде пропущений.'" ), СтатусСообщения.Важное);
Продолжить;
КонецЕсли ;
ОбластьНомера.Параметры.НомерСтроки = ЗапросТара.Индекс(ВыборкаСтрокТара) + 1 ;
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Код;
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТара);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТара.Товар);
ТабДокумент.Присоединить(ОбластьДанных);
СуммаТара = СуммаТара + ВыборкаСтрокТара.Сумма;
КонецЦикла ;
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоТара" );
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаТара);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.Вывести(ОбластьПробел);
КонецЕсли ;
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью" );
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0 , СуммаНДС);
ОбластьМакета.Параметры.ИтоговаяСтрока = НСтр("ru='Всего наименований ';uk='Всього найменувань '" ,КодЯзыкаПечать) + ЗапросТовары.Количество() + "," +
НСтр("ru=' на сумму ';uk=' на суму '" ,КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)
+ ?(ЗапросТара.Количество() = 0 , "" , НСтр("ru='; возвратная тара ';uk='; зворотна тара '" ,КодЯзыкаПечать) + ЗапросТара.Количество() + НСтр("ru=', на сумму ';uk=', на суму '" ,КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаТара, Шапка.ВалютаДокумента)) + "." ;
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента,КодЯзыкаПечать)
+ ?(НЕ Шапка.УчитыватьНДС, "" , Символы.ПС + НСтр("ru='В т.ч. НДС: ';uk='У т.ч. ПДВ: '" ,КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаНДС, Шапка.ВалютаДокумента, КодЯзыкаПечать));
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.Показать();
КонецПроцедуры
Сообщение отредактировал Vofka - 21.12.17, 11:50
20.12.17, 15:47
Общительный
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0
Модуль объекта
Функция Печать(Тип = "Счет" ) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
Запрос.Текст ="
|ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.Дата КАК ДоговорДата,
| ДоговорКонтрагента.Номер КАК ДоговорНомер,
| ДоговорКонтрагента.НаименованиеДляПечати КАК ДоговорНаименованиеДляПечати,
| ДоговорКонтрагента.ВидДоговора КАК ВидДоговораКонтрагента,
| Ответственный.ФизЛицо.Наименование КАК Отпустил,
| Организация,
| Контрагент КАК Покупатель,
| Организация КАК Поставщик,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент" ;
СтруктурнаяЕдиница = СсылкаНаОбъект.СтруктурнаяЕдиница;
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ" ;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя" );
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.СуммаБезСкидки,
| ВложенныйЗапрос.СуммаСкидки,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| 1 КАК ID
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Цена КАК Цена,
| СУММА(ЗаказПокупателя.Количество) КАК Количество,
| СУММА(ЗаказПокупателя.СуммаБезСкидки) КАК СуммаБезСкидки,
| СУММА(ЗаказПокупателя.СуммаСкидки) КАК СуммаСкидки,
| СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
| СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
| МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
|
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.ЕдиницаИзмерения,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.СтавкаНДС) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
| ЗаказПокупателя.Номенклатура.Код КАК Код,
| ЗаказПокупателя.Количество,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.СуммаБезСкидки,
| ЗаказПокупателя.СуммаСкидки,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 2
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки" ;
ЗапросТовары = Запрос.Выполнить().Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент" , СсылкаНаОбъект);
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Цена КАК Цена,
| СУММА(ЗаказПокупателя.Количество) КАК Количество,
| СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
| МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.СчетНаОплатуПокупателю.ВозвратнаяТара КАК ЗаказПокупателя
|
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки" ;
ЗапросТара = Запрос.Выполнить().Выгрузить();
Макет = ПолучитьМакет("СчетЗаказ" );
КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь" ), "РежимФормированияПечатныхФорм" ));
Макет.КодЯзыкаМакета = КодЯзыкаПечать;
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
Если Тип = "Счет" Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета" );
ОбластьМакета.Параметры.НазваниеОрганизации = СведенияОПоставщике.ПолноеНаименование;
ОбластьМакета.Параметры.ЕДРПОУОрганизации = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОПоставщике);
Если ТипЗнч(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета" ) Тогда
Банк = СтруктурнаяЕдиница.Банк;
МФО = Банк.Код;
НомерСчета = СтруктурнаяЕдиница.НомерСчета;
Иначе
Банк = СведенияОПоставщике.Банк;
МФО = СведенияОПоставщике.МФО;
НомерСчета = СведенияОПоставщике.НомерСчета;
КонецЕсли ;
ОбластьМакета.Параметры.БанкОрганизации = Банк;
ОбластьМакета.Параметры.МФОБанкаОрганизации = МФО;
ОбластьМакета.Параметры.НомерРасчетногоСчетаОрганизации = НомерСчета;
Если НЕ Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером
И НЕ Шапка.ВалютаДокумента <> СсылкаНаОбъект.мВалютаРегламентированногоУчета Тогда
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли ;
КонецЕсли ;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок" );
Если Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Список товаров на комиссию';uk='Список товарів на комісію'" ,КодЯзыкаПечать),КодЯзыкаПечать);
Иначе
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Счет на оплату';uk='Рахунок на оплату'" ,КодЯзыкаПечать),КодЯзыкаПечать);
КонецЕсли ;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование," ,,КодЯзыкаПечать);
Если Тип = "Счет" Тогда
ОбластьМакета.Параметры.РеквизитыПоставщика = НСтр("ru='Т/с ';uk='П/р '" ,КодЯзыкаПечать) + НомерСчета + НСтр("ru=', Банк ';uk=', Банк '" ,КодЯзыкаПечать) + Банк + НСтр("ru=', МФО ';uk=', МФО '" ,КодЯзыкаПечать) + МФО + Символы.ПС +
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов," ,,КодЯзыкаПечать);
КонецЕсли ;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование," ,,КодЯзыкаПечать);
ОбластьМакета.Параметры.РеквизитыПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"Телефоны," ,,КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати," ;
МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров,КодЯзыкаПечать);
ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация" );
Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла ;
ОбластьИтого = "Итого" ;
ЕстьСкидки = (ЗапросТовары.Итог("СуммаСкидки" ) <> 0 );
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина ;
Колонка = "Артикул" ;
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина ;
Колонка = "Код" ;
Иначе
ВыводитьКоды = Ложь ;
КонецЕсли ;
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные" );
ОбластьСкидка = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
Суффикс = "" ;
Если Шапка.УчитыватьНДС Тогда
Если Шапка.СуммаВключаетНДС Тогда
Суффикс = Суффикс + НСтр("ru=' с ';uk=' з '" ,КодЯзыкаПечать);
Иначе
Суффикс = Суффикс + НСтр("ru=' без ';uk=' без '" ,КодЯзыкаПечать);
КонецЕсли ;
Суффикс = Суффикс + НСтр("ru='НДС';uk='ПДВ'" ,КодЯзыкаПечать);
КонецЕсли ;
ОбластьДанных.Параметры.Цена = НСтр("ru='Цена';uk='Ціна'" ,КодЯзыкаПечать) + Суффикс;
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ТабДокумент.Присоединить(ОбластьСкидка);
КонецЕсли ;
ОбластьСуммы.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'" ,КодЯзыкаПечать)+ Суффикс;
ТабДокумент.Присоединить(ОбластьСуммы);
ОбластьКолонкаТовар = Макет.Область("Товар" );
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("КолонкаКодов" ).ШиринаКолонки;
КонецЕсли ;
Если НЕ ЕстьСкидки Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("СуммаБезСкидки" ).ШиринаКолонки +
Макет.Область("СуммаСкидки" ).ШиринаКолонки;
КонецЕсли ;
СуммаБезСкидки = 0 ;
СуммаСкидки = 0 ;
Сумма = 0 ;
СуммаНДС = 0 ;
ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные" );
ОбластьСкидки = Макет.ПолучитьОбласть("Строка|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма" );
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'" ), СтатусСообщения.Важное);
Продолжить;
КонецЕсли ;
ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1 ;
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ОбластьСкидки.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСкидки);
КонецЕсли ;
ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
СуммаБезСкидки = СуммаБезСкидки + ВыборкаСтрокТовары.СуммаБезСкидки;
СуммаСкидки = СуммаСкидки + ВыборкаСтрокТовары.СуммаСкидки;
Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
КонецЦикла ;
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки" );
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов" );
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные" );
ОбластьСкидки = Макет.ПолучитьОбласть("Итого|Скидка" );
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидки Тогда
ОбластьСкидки.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);
ОбластьСкидки.Параметры.ВсегоСуммаСкидки = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
ТабДокумент.Присоединить(ОбластьСкидки);
КонецЕсли ;
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС" );
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС,,""" " );
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'" ,КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'" ,КодЯзыкаПечать));
ТабДокумент.Вывести(ОбластьМакета);
Если НЕ Шапка.СуммаВключаетНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС" );
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(Сумма + СуммаНДС);
ОбластьМакета.Параметры.НДС = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'" ,КодЯзыкаПечать);
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли ;
КонецЕсли ;
Если ЗапросТара.Количество() > 0 Тогда
ОбластьПробел = Макет.ПолучитьОбласть("Пробел" );
ТабДокумент.Вывести(ОбластьПробел);
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицыТара|НомерСтрокиТара" );
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицыТара|КолонкаКодовТара" );
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицыТара|ДанныеТара" );
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьКолонкаТара = Макет.Область("Тара" );
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТара.ШиринаКолонки = ОбластьКолонкаТара.ШиринаКолонки +
Макет.Область("КолонкаКодовТара" ).ШиринаКолонки;
КонецЕсли ;
ОбластьНомера = Макет.ПолучитьОбласть("СтрокаТара|НомерСтрокиТара" );
ОбластьКодов = Макет.ПолучитьОбласть("СтрокаТара|КолонкаКодовТара" );
ОбластьДанных = Макет.ПолучитьОбласть("СтрокаТара|ДанныеТара" );
СуммаТара = 0 ;
Для каждого ВыборкаСтрокТара Из ЗапросТара Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда
Сообщить(НСтр("ru='В одной из строк не заполнено значение тары - строка при печати пропущена.';uk='В одному з рядків не заповнене значення тари - рядок під час друку буде пропущений.'" ), СтатусСообщения.Важное);
Продолжить;
КонецЕсли ;
ОбластьНомера.Параметры.НомерСтроки = ЗапросТара.Индекс(ВыборкаСтрокТара) + 1 ;
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТара.Код;
КонецЕсли ;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли ;
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТара);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТара.Товар);
ТабДокумент.Присоединить(ОбластьДанных);
СуммаТара = СуммаТара + ВыборкаСтрокТара.Сумма;
КонецЦикла ;
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоТара" );
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаТара);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.Вывести(ОбластьПробел);
КонецЕсли ;
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью" );
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0 , СуммаНДС);
ОбластьМакета.Параметры.ИтоговаяСтрока = НСтр("ru='Всего наименований ';uk='Всього найменувань '" ,КодЯзыкаПечать) + ЗапросТовары.Количество() + "," +
НСтр("ru=' на сумму ';uk=' на суму '" ,КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)
+ ?(ЗапросТара.Количество() = 0 , "" , НСтр("ru='; возвратная тара ';uk='; зворотна тара '" ,КодЯзыкаПечать) + ЗапросТара.Количество() + НСтр("ru=', на сумму ';uk=', на суму '" ,КодЯзыкаПечать) + ОбщегоНазначения.ФорматСумм(СуммаТара, Шапка.ВалютаДокумента)) + "." ;
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента,КодЯзыкаПечать)
+ ?(НЕ Шапка.УчитыватьНДС, "" , Символы.ПС + НСтр("ru='В т.ч. НДС: ';uk='У т.ч. ПДВ: '" ,КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаНДС, Шапка.ВалютаДокумента, КодЯзыкаПечать));
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи" );
ОбластьМакета.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции
Если можно тыкните что и где,
только начал с этим всем разбираться.
20.12.17, 15:52
Живет на форуме
Группа: Местный
Сообщений: 2752
Из: Проскуров
Спасибо сказали: 709 раз
Рейтинг: 688.5
Цитата(Prime7367 @ 20.12.17, 15:47)
Если НЕ Шапка.ВидДоговораКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером И НЕ Шапка.ВалютаДокумента <> СсылкаНаОбъект.мВалютаРегламентированногоУчета Тогда ТабДокумент.Вывести(ОбластьМакета); КонецЕсли;
в модуле документа есть такое ?
вооще, если надо - лучше ее объявить/получить у себя
20.12.17, 15:54
Живет на форуме
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1239 раз
Рейтинг: 1345.6
Prime7367 @ Сегодня, 15:39
,
Ошибка на какой контекст указывает?
Теперь вижу, что модуль объекта. Добавьте как и в форме:
мВалютаРегламентированногоУчета = СсылкаНаОбъект.ВалютаДокумента;
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
21.12.17, 8:53
Говорящий
Группа: Пользователи
Сообщений: 69
Из: Харьков
Спасибо сказали: 20 раз
Рейтинг: 0
Vofka @ Вчера, 16:58
,
Вангую. ВПФ прикрепили не к тому объекту. ФПФ из другой конфигурации.
ПС. Открыть форму через Файл.Открыть.
21.12.17, 9:12
Живет на форуме
Группа: Местный
Сообщений: 2920
Из: Київ, Україна
Спасибо сказали: 1239 раз
Рейтинг: 1345.6
gorak @ Сегодня, 8:53
,
Зачем придумывать что-то еще, если уже очевидно: не объявлена переменная.
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
21.12.17, 12:16
Общительный
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Petre @ 20.12.17, 15:54)
мВалютаРегламентированногоУчета = СсылкаНаОбъект.ВалютаДокумента;
отредактировал и модуль и форму, почему то все равно выбивает туже самую ошибку.
Также пробовал вариант
Цитата(Vofka @ 20.12.17, 16:58)
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
21.12.17, 13:54
Общительный
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0
Всем спасибо, нашел свою ошибку. Добавил строку
Цитата(Petre @ 20.12.17, 15:54)
мВалютаРегламентированногоУчета = СсылкаНаОбъект.ВалютаДокумента;
Там где пропустил.
И в самом коде перед
мВалютаРегламентированногоУчета
добавил СсылкаНаДокумент.
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!