Сообщение на форуме
10 января 2017 в 19:40:20
Народ подскажите как быть не могу понять в чем проблема (((( как внешнюю открываешь все работает а когда добавляешь в дополнительные печатные формы тогда выскакивает ошибка((
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = "";
ТекстКодАртикул = "Код";
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаТаблицыСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТабДокумент",ЭтотОбъект.СсылкаНаОбъект);
Запрос.Текст ="ВЫБРАТЬ
| номер,
| Дата,
| ДоговорКонтрагента,
| Организация,
| СтруктурноеПодразделение,
| Контрагент КАК Получатель,
| Организация КАК Руководители,
| Организация КАК Поставщик,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС,
| КодНазначенияПлатежа
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТабДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "СчетЗаказ";
//"ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект);
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура."+ ТекстКодАртикул + " КАК КодАртикул,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| 1 КАК ID
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ЗаказПокупателя.Цена КАК Цена,
| СУММА(ЗаказПокупателя.Количество) КАК Количество,
| СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
| СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
| МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗаказПокупателя.Содержание,
| ЗаказПокупателя.Содержание,
| NULL,
| ЗаказПокупателя.Количество,
| ЕСТЬNULL(ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, ""--""),
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 2
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗаказПокупателя.ОсновноеСредство,
| ВЫРАЗИТЬ(ЗаказПокупателя.ОсновноеСредство.НаименованиеПолное КАК СТРОКА(1000)),
| NULL,
| 1,
| ""шт"",
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 3
|ИЗ
| Документ.СчетНаОплатуПокупателю.ОС КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки";
СтруктурнаяЕдиница=СсылкаНаОбъект.СтруктурнаяЕдиница;
//Дата=СсылкаНаОбъект.Дата;
Организация=СсылкаНаОбъект.Организация;
//Ответственный=СсылкаНаОбъект.Ответственный;
тип="счет";
ЗапросТовары = Запрос.Выполнить().Выгрузить();
Макет = ЭтотОбъект.ПолучитьМакет("СчетЗаказ");
// Выводим шапку накладной
СтруктурнаяЕдиницаОрганизация = ОбщегоНазначения.ПолучитьСтруктурнуюЕдиницу(Шапка.Поставщик, Шапка.СтруктурноеПодразделение);
СведенияОПоставщике = ОбщегоНазначения.СведенияОЮрФизЛице(СтруктурнаяЕдиницаОрганизация, Шапка.Дата);
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПоставщикРНН_БИН = ОбщегоНазначения.ПолучитьРегистрационныйНомерОрганизацииКонтрагентаВПечатнуюФорму(СведенияОПоставщике, Шапка.Дата);
ОбластьМакета.Параметры.ПоставщикКБЕ = СведенияОПоставщике.КБЕ;
Если ТипЗнч(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
Банк = СтруктурнаяЕдиница.Банк;
БИК = УправлениеДенежнымиСредствами.ПолучитьБИКБанка(СсылкаНаОбъект.Дата, Банк);
ГородБанка = Банк.Город;
СтрокаГородБанка = ?(ПустаяСтрока(ГородБанка), "", " г." + " " + ГородБанка);
НомерСчета = СтруктурнаяЕдиница.НомерСчета;
ОбластьМакета.Параметры.БИКБанкаПолучателя = БИК;
ОбластьМакета.Параметры.БанкПолучателя = СокрЛП(Банк) + СтрокаГородБанка;
ОбластьМакета.Параметры.НомерСчетаПолучателя = НомерСчета;
КонецЕсли;
ОбластьМакета.Параметры.ПредставлениеПоставщика = ОбщегоНазначения.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,Шапка.Дата);
ТабДокумент.Вывести(ОбластьМакета);
Если ЗначениеЗаполнено(Организация.Логотип.Хранилище.Получить()) Тогда
ТабДокумент.Область("Логотип").Картинка = Организация.Логотип.Хранилище.Получить();
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
////ОбластьМакета.Параметры.ТекстЗаголовка = РаботаСДиалогами.СформироватьЗаголовокДокумента(ЭтотОбъект.СсылкаНаОбъект, "Счет на оплату", );//глСписокПрефиксовУзлов);
ОбластьМакета.Параметры.номер= ЭтотОбъект.СсылкаНаОбъект.Номер;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ОбщегоНазначения.ОписаниеОрганизации(СведенияОПоставщике, "ИдентификационныйНомер,ПолноеНаименование,ЮридическийАдрес,Телефоны,",,Шапка.Дата);
ТабДокумент.Вывести(ОбластьМакета);
СведенияОПолучателе = ОбщегоНазначения.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеПолучателя = ОбщегоНазначения.ОписаниеОрганизации(ОбщегоНазначения.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ИдентификационныйНомер,ПолноеНаименование,ЮридическийАдрес,Телефоны,",,Шапка.Дата);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Договор");
ОбластьМакета.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьНомера = Макет.ПолучитьОбласть(ОбластьШапки + "|НомерСтроки");
ОбластьДанных = Макет.ПолучитьОбласть(ОбластьШапки + "|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть(ОбластьШапки + "|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьДанных.Параметры.Колонка = Колонка;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);
ОбластьКолонкаТовар = Макет.Область("Товар");
ОбластьНомера = Макет.ПолучитьОбласть(ОбластьСтроки + "|НомерСтроки");
ОбластьДанных = Макет.ПолучитьОбласть(ОбластьСтроки + "|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть(ОбластьСтроки + "|Сумма");
Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
ТабДокумент.Вывести(ОбластьНомера);
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
ОбластьДанных.Параметры.Количество = Формат(ВыборкаСтрокТовары.Количество, "ЧДЦ=3");
Если ВыводитьКоды Тогда
ОбластьДанных.Параметры.КодАртикул = ?(ВыборкаСтрокТовары.ID = 3, ВыборкаСтрокТовары.Номенклатура.Код, ВыборкаСтрокТовары.КодАртикул);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
КонецЦикла;
// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);
//ТабДокумент.получить();
// Вывести ИтогоНДС
ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
Если Шапка.УчитыватьНДС Тогда
ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);
// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
ОбластьМакета.Параметры.СуммаПрописью = "Всего к оплате: " + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
ТабДокумент.Вывести(ОбластьМакета);
// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
ОбластьМакета.Параметры.ФИОИсполнителя = "/" + СсылкаНаОбъект.Ответственный.Наименование + "/";
ОбластьМакета.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.Показать();