helpf.pro
Регистрация

v8: Ошибка модуля печатной формы счета

programmist1c82
20.11.2013 02:54Прочитано: 3388
Подскажите, пожалуйста, что не так.
Пишу Функцию в модуле печатной формы
Код 1C v 8.2 УП
 Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт   

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Номер,
| ЗаказКлиента.Дата,
| ЗаказКлиента.ДоговорКонтрагента,
| ЗаказКлиента.Организация,
| ЗаказКлиента.Контрагент КАК Покупатель,
| ЗаказКлиента.Организация КАК Поставщик,
| ЗаказКлиента.СуммаДокумента,
| ЗаказКлиента.ВалютаДокумента,
| ЗаказКлиента.УчитыватьНДС,
| ЗаказКлиента.СуммаВключаетНДС,
|
|ИЗ
| Документ.ЗаказКлиента КАК Заказклиента
|ГДЕ
| ЗаказКлиента.Ссылка = &ТекущийДокумент";

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказКлиента_СчетНаОплату";

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
|ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
|ВложенныйЗапрос.Номенклатура КАК Номенклатура,
|ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
|ВложенныйЗапрос.Количество,
|ВложенныйЗапрос.ЕдиницаИзмерения,
|ВложенныйЗапрос.Цена,
|ВложенныйЗапрос.СтавкаНДС,
|ВложенныйЗапрос.СуммаНДС,
|ВложенныйЗапрос.Сумма
|1 КАК ID
|ИЗ
|(ВЫБРАТЬ
|ЗаказКлиента.Номенклатура КАК Номенклатура,
|ЗаказКлиента.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
|ЗаказКлиента.Цена КАК Цена,
|ЗаказКлиента.СтавкаНДС КАК СтавкаНДС,
|СУММА(ЗаказКлиента.Количество) КАК Количество,
|СУММА(ЗаказКлиента.Сумма) КАК Сумма,
|СУММА(ЗаказКлиента.СуммаНДС) КАК СуммаНДС,
|ЗаказКлиента.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
|МИНИМУМ(ЗаказКлиента.НомерСтроки) КАК НомерСтроки,
|ИЗ
|Документ.ЗаказКлиента.Товары КАК ЗаказКлиента,
|
|ГДЕ
|ЗаказКлиента.Ссылка = &ТекущийДокумент
|
|СГРУППИРОВАТЬ ПО
|ЗаказКлиента.Номенклатура,
|ЗаказКлиента.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
|ЗаказКлиента.Цена) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|ЗкакзКлиента.Количество,
|ЗаказКлиента.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
|ЗаказКлиента.Цена,
|ЗаказКлиента.Сумма,
|ЗаказКлиента.СуммаНДС,
|ЗаказКлиента.НомерСтроки
|2
|ИЗ
|Документ.ЗаказКлиента.Услуги КАК ЗаказКлиента
|
|ГДЕ
|ЗаказКлиента.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
|
|ID
|
|НомерСтроки";

ЗапросТовары = Запрос.Выполнить().Выгрузить();
Макет = ПолучитьМакет("Счет");

// Выводи шапку счета
СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
Если Тип = "Счет" Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ИННПолучателя = СведенияОПолучателе.ИНН;
ОбластьМакета.Параметры.КПППолучателя = СведенияОПолучателе.КПП;
Если ТипЗначения(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
Банк = ?(НЕ ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов), СтруктурнаяЕдиница.Банк, СтруктурнаяЕдиница.БанкДляРасчетов);
БИК = Банк.Код;
КоррСчет = Банк.КоррСчет;
ГородБанка = Банк.Город;
НомерСчета = ВернутьРасчетныйСчет(СтруктурнаяЕдиница);
ОбластьМакета.Параметры.БИКБанкаПолучателя = БИК;
ОбластьМакета.Параметры.БанкПолучателя = Банк;
ОбластьМакета.Параметры.БанкПолучателяПредставление = СокрЛП(Банк) + " " + ГородБанка;
ОбластьМакета.Параметры.СчетБанкаПолучателя = КоррСчет;
ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет;
ОбластьМакета.Параметры.СчетПолучателяПредставление = НомерСчета;
ОбластьМакета.Параметры.СчетПолучателя = НомерСчета;
КонецЕсли;
Если ПустаяСтрока(СтруктурнаяЕдиница.ТекстКорреспондента) Тогда
ТекстКорреспондента = СведенияОПолучателе.НаименованиеДляПечатныхФорм;
Если ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов) Тогда
ТекстКорреспондента = ТекстКорреспондента + " р/с " + СтруктурнаяЕдиница.НомерСчета + " в " + СтруктурнаяЕдиница.Банк + " " + СтруктурнаяЕдиница.Банк.Город;
КонецЕсли;
Иначе
ТекстКорреспондента = СтруктурнаяЕдиница.ТекстКорреспондента;
КонецЕсли;
ОбластьМакета.Параметры.ПредставлениеПолучателя = ТекстКорреспондента;
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
КонецЕсли;

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОБластьМакета.Параметры.ТекстЗаголовка = "Счет на оплату № " + НомерДокумента + " от " + Формат(Шапка.ДатаДокумента , "ДФ=""dd MMMM yyyy""");
ТабличныйДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Заполнить(Шапка);
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ОбластьМакета.Параметры.Заполнить(Шапка);
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата);
ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
ТабДокумент.Вывести(ОбластьМакета);

// Вывести табличную часть (товары и услуги)
ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицыСНДС");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.Номер = Номер;
ОбластьМакета.Параметры.Товар = "Товары (работы, услуги)";
ОбластьМакета.Параметры.Количество = Количество;
ОбластьМакета.Параметры.Цена = Цена;
ОбластьМакета.Параметры.СтавкаНДС = СтавкаНДС;
ОбластьМакета.Параметры.СуммаНДС = СуммаНДС;
ОбластьМакета.Параметры.Сумма = Сумма;
ТабличныйДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицыСНДС");
НомерСтроки = 0;

Для Каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьМакета.Параметры.НомерСтроки = Номер;
ОбластьМакета.Параметры.Товары = СокрЛП(СтрокаТабличнойЧасти.Товар);
ОбластьМакета.Параметры.Количество = СтрокаКоличество;
ОбластьМакета.Параметры.ЕдиницаИзмерения = СтрокаЕдиницаИзмерения;
ОбластьМакета.Параметры.Цена = СтрокаЦена;
ОбластьМакета.Параметры.СтавкаНДС = СтрокаСтавкаНДС;
ОбластьМакета.Параметры.СуммаНДС = СтрокаСуммаНДС;
ОбластьМакета.Параметры.Сумма = СтрокаСумма;
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;

// Вывести екцию с итоговой суммой
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Итого);
ТабличныйДокумент.Вывести(ОбластьМакета);

// Выводим секцию с итоговой суммой с НДС
Если СуммаСНДС <> 0 Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоСНДС");
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
СуммаСНДС = Сумма + СуммаНДС;
ОбластьМакета.Параметры.НДС = ?(Выборка.СуммаВключаетНДС, "Итого с НДС", " Сумма НДС");
ОбластьМакета.Параметры.ВсегоСНДС = ОбщегоНазначения.ФорматСумм(СуммаСНДС);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;

// Выводим сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи) + " руб.";
ОбластьМакета.Параметры.СуммаПрописью = ЧислоПрописью(СуммаКПрописи, "L=ru_RU", "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
ТабличныйДокумент.Вывести(ОбластьМакета);

// Вывести Реквизиты подвала
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
ОбластьМакета.Параметры.ФИОРуководителя = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.Руководитель);
ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.ГлавныйБухгалтер);
ОбластьМакета.Параметры.ФИОменеджера = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.Менеджер);
ТабличныйДокумент.Вывести(ОбластьМакета);


КонецФункции // СформироватьПечатнуюФорму()


Пишет: ВнешняяОбработка.СчетНаОплатуПокупателю.МодульОбъекта(189,2)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
<<?>>КонецЕсли; (Проверка: Сервер)
{ВнешняяОбработка.СчетНаОплатуПокупателю.МодульОбъекта(262,46)}: Обнаружено логическое завершение исходного текста модуля
ТабличныйДокумент.Вывести(ОбластьМакета);<<?>> (Проверка: Сервер)

Что не так? Спасибо
Yandex
Возможно, вас также заинтересует
Реклама на портале
Jonsony
20.11.2013 11:23Ответ № 1
скорее всего где-то пропущена точка с запятой ";"
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.