об оказании услуг для документа корректировка реализации
04.12.2012
10:13
#1
"Добрый день помогите найти ошибку во внешней печатной форме. Подключаю пишет ошибку: {ВнешняяОбработка.Услуги.МодульОбъекта(7)}: Поле объекта не обнаружено (ДополнительнаяКолонкаПечатныхФормДокументов)
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Вот КОД ФОРМЫ:
Функция Печать() Экспорт
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); - пишет ошибка тут!
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = """";
ТекстКодАртикул = "Код";
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
КонецЕсли;
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка.ИсправляемыйДокументРеализации);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
ЗапросУслуги = Новый Запрос;
ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
ЗапросУслуги.УстановитьПараметр("Курс", ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЗапросУслуги.УстановитьПараметр("Кратность", ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");
ЗапросУслуги.Текст =
"ВЫБРАТЬ
| Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Товары КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
| И
| РеализацияТоваровУслуг.Номенклатура.Услуга = Истина
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.АгентскиеУслуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И СсылкаНаОбъект.Дата >= '20090101000000')) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
Запрос.УстановитьПараметр("СчетУчетаРасчетовСКонтрагентом", СсылкаНаОбъект.СчетУчетаРасчетовСКонтрагентом);
Текст =
"ВЫБРАТЬ
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка
| И Хозрасчетный.СчетДт = &СчетУчетаРасчетовСКонтрагентом
| И Хозрасчетный.СчетКт В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.СчетДоходов
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ГДЕ
| РеализацияТоваровУслугТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугУслуги.СчетДоходов
| ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслугУслуги
| ГДЕ
| РеализацияТоваровУслугУслуги.Ссылка = &Ссылка)
|";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.Дата);
Если НЕ СуммаВзаиморасчетов = NULL Тогда
ТаблицаУслуги.Колонки.Добавить("СуммаБезНДС");
МассивРаспределения = Новый Массив;
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;
КонецЦикла;
ТаблицаУслуги.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ТаблицаУслуги, "СуммаРублевая");
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);
СтрокаТовар.СуммаНДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТовар.СуммаРублевая * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
СтрокаТовар.Сумма = СтрокаТовар.СуммаРублевая - СтрокаТовар.СуммаНДС;
Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Сумма = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;
Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Сумма = СтрокаТовар.Сумма+СтрокаТовар.СуммаНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
Макет = ПолучитьМакет("Акт");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
ТабДокумент.Вывести(ОбластьМакета);
ЕстьСкидки = Ложь;
// Вывести табличную часть
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.ИмяКодАртикул = ТекстКодАртикул;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
НомерСтроки = 0;
Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьМакета.Параметры.Заполнить(СтрокаТабличнойЧасти);
ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
ОбластьМакета.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
Если Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
ОбластьМакета.Параметры.Цена = СтрокаТабличнойЧасти.Сумма / ?(СтрокаТабличнойЧасти.Количество = 0, 1, СтрокаТабличнойЧасти.Количество);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ТаблицаУслуги <> Неопределено Тогда
Сумма = ТаблицаУслуги.Итог("Сумма");
СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");
Иначе
Сумма = 0;
СуммаНДС = 0;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
Если СуммаНДС <> 0 Тогда
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
Иначе
ОбластьМакета.Параметры.ВсегоНДС = "-";
ОбластьМакета.Параметры.НДС = "Без налога (НДС)";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции"
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Вот КОД ФОРМЫ:
Функция Печать() Экспорт
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); - пишет ошибка тут!
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = """";
ТекстКодАртикул = "Код";
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
КонецЕсли;
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка.ИсправляемыйДокументРеализации);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
ЗапросУслуги = Новый Запрос;
ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
ЗапросУслуги.УстановитьПараметр("Курс", ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЗапросУслуги.УстановитьПараметр("Кратность", ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");
ЗапросУслуги.Текст =
"ВЫБРАТЬ
| Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Товары КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
| И
| РеализацияТоваровУслуг.Номенклатура.Услуга = Истина
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.АгентскиеУслуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И СсылкаНаОбъект.Дата >= '20090101000000')) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
Запрос.УстановитьПараметр("СчетУчетаРасчетовСКонтрагентом", СсылкаНаОбъект.СчетУчетаРасчетовСКонтрагентом);
Текст =
"ВЫБРАТЬ
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка
| И Хозрасчетный.СчетДт = &СчетУчетаРасчетовСКонтрагентом
| И Хозрасчетный.СчетКт В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.СчетДоходов
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ГДЕ
| РеализацияТоваровУслугТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугУслуги.СчетДоходов
| ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслугУслуги
| ГДЕ
| РеализацияТоваровУслугУслуги.Ссылка = &Ссылка)
|";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.Дата);
Если НЕ СуммаВзаиморасчетов = NULL Тогда
ТаблицаУслуги.Колонки.Добавить("СуммаБезНДС");
МассивРаспределения = Новый Массив;
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;
КонецЦикла;
ТаблицаУслуги.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ТаблицаУслуги, "СуммаРублевая");
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);
СтрокаТовар.СуммаНДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТовар.СуммаРублевая * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
СтрокаТовар.Сумма = СтрокаТовар.СуммаРублевая - СтрокаТовар.СуммаНДС;
Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Сумма = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;
Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Сумма = СтрокаТовар.Сумма+СтрокаТовар.СуммаНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
Макет = ПолучитьМакет("Акт");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
ТабДокумент.Вывести(ОбластьМакета);
ЕстьСкидки = Ложь;
// Вывести табличную часть
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.ИмяКодАртикул = ТекстКодАртикул;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
НомерСтроки = 0;
Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьМакета.Параметры.Заполнить(СтрокаТабличнойЧасти);
ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
ОбластьМакета.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
Если Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
ОбластьМакета.Параметры.Цена = СтрокаТабличнойЧасти.Сумма / ?(СтрокаТабличнойЧасти.Количество = 0, 1, СтрокаТабличнойЧасти.Количество);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ТаблицаУслуги <> Неопределено Тогда
Сумма = ТаблицаУслуги.Итог("Сумма");
СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");
Иначе
Сумма = 0;
СуммаНДС = 0;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
Если СуммаНДС <> 0 Тогда
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
Иначе
ОбластьМакета.Параметры.ВсегоНДС = "-";
ОбластьМакета.Параметры.НДС = "Без налога (НДС)";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции"
04.12.2012
10:13
#2
"Добрый день помогите найти ошибку во внешней печатной форме. Подключаю пишет ошибку: {ВнешняяОбработка.Услуги.МодульОбъекта(7)}: Поле объекта не обнаружено (ДополнительнаяКолонкаПечатныхФормДокументов)
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Вот КОД ФОРМЫ:
Функция Печать() Экспорт
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); - пишет ошибка тут!
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = """";
ТекстКодАртикул = "Код";
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
КонецЕсли;
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка.ИсправляемыйДокументРеализации);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
ЗапросУслуги = Новый Запрос;
ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
ЗапросУслуги.УстановитьПараметр("Курс", ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЗапросУслуги.УстановитьПараметр("Кратность", ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");
ЗапросУслуги.Текст =
"ВЫБРАТЬ
| Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Товары КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
| И
| РеализацияТоваровУслуг.Номенклатура.Услуга = Истина
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.АгентскиеУслуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И СсылкаНаОбъект.Дата >= '20090101000000')) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
Запрос.УстановитьПараметр("СчетУчетаРасчетовСКонтрагентом", СсылкаНаОбъект.СчетУчетаРасчетовСКонтрагентом);
Текст =
"ВЫБРАТЬ
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка
| И Хозрасчетный.СчетДт = &СчетУчетаРасчетовСКонтрагентом
| И Хозрасчетный.СчетКт В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.СчетДоходов
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ГДЕ
| РеализацияТоваровУслугТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугУслуги.СчетДоходов
| ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслугУслуги
| ГДЕ
| РеализацияТоваровУслугУслуги.Ссылка = &Ссылка)
|";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.Дата);
Если НЕ СуммаВзаиморасчетов = NULL Тогда
ТаблицаУслуги.Колонки.Добавить("СуммаБезНДС");
МассивРаспределения = Новый Массив;
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;
КонецЦикла;
ТаблицаУслуги.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ТаблицаУслуги, "СуммаРублевая");
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);
СтрокаТовар.СуммаНДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТовар.СуммаРублевая * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
СтрокаТовар.Сумма = СтрокаТовар.СуммаРублевая - СтрокаТовар.СуммаНДС;
Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Сумма = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;
Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Сумма = СтрокаТовар.Сумма+СтрокаТовар.СуммаНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
Макет = ПолучитьМакет("Акт");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
ТабДокумент.Вывести(ОбластьМакета);
ЕстьСкидки = Ложь;
// Вывести табличную часть
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.ИмяКодАртикул = ТекстКодАртикул;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
НомерСтроки = 0;
Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьМакета.Параметры.Заполнить(СтрокаТабличнойЧасти);
ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
ОбластьМакета.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
Если Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
ОбластьМакета.Параметры.Цена = СтрокаТабличнойЧасти.Сумма / ?(СтрокаТабличнойЧасти.Количество = 0, 1, СтрокаТабличнойЧасти.Количество);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ТаблицаУслуги <> Неопределено Тогда
Сумма = ТаблицаУслуги.Итог("Сумма");
СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");
Иначе
Сумма = 0;
СуммаНДС = 0;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
Если СуммаНДС <> 0 Тогда
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
Иначе
ОбластьМакета.Параметры.ВсегоНДС = "-";
ОбластьМакета.Параметры.НДС = "Без налога (НДС)";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции"
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Вот КОД ФОРМЫ:
Функция Печать() Экспорт
мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); - пишет ошибка тут!
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ТекстКодАртикул = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
ТекстКодАртикул = "Код";
Иначе
ВыводитьКоды = Ложь;
Колонка = """";
ТекстКодАртикул = "Код";
КонецЕсли;
Если ВыводитьКоды Тогда
ОбластьШапки = "ШапкаСКодом";
ОбластьСтроки = "СтрокаСКодом";
Иначе
ОбластьШапки = "ШапкаТаблицы";
ОбластьСтроки = "Строка";
КонецЕсли;
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка.ИсправляемыйДокументРеализации);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
ЗапросУслуги = Новый Запрос;
ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
ЗапросУслуги.УстановитьПараметр("Курс", ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЗапросУслуги.УстановитьПараметр("Кратность", ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");
ЗапросУслуги.Текст =
"ВЫБРАТЬ
| Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Товары КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
| И
| РеализацияТоваровУслуг.Номенклатура.Услуга = Истина
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| Номенклатура." + ТекстКодАртикул + " КАК КодАртикул,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.КорректировкаРеализации.АгентскиеУслуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И СсылкаНаОбъект.Дата >= '20090101000000')) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
Запрос.УстановитьПараметр("СчетУчетаРасчетовСКонтрагентом", СсылкаНаОбъект.СчетУчетаРасчетовСКонтрагентом);
Текст =
"ВЫБРАТЬ
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка
| И Хозрасчетный.СчетДт = &СчетУчетаРасчетовСКонтрагентом
| И Хозрасчетный.СчетКт В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.СчетДоходов
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ГДЕ
| РеализацияТоваровУслугТовары.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугУслуги.СчетДоходов
| ИЗ
| Документ.КорректировкаРеализации.Услуги КАК РеализацияТоваровУслугУслуги
| ГДЕ
| РеализацияТоваровУслугУслуги.Ссылка = &Ссылка)
|";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.Дата);
Если НЕ СуммаВзаиморасчетов = NULL Тогда
ТаблицаУслуги.Колонки.Добавить("СуммаБезНДС");
МассивРаспределения = Новый Массив;
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;
КонецЦикла;
ТаблицаУслуги.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ТаблицаУслуги, "СуммаРублевая");
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);
СтрокаТовар.СуммаНДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТовар.СуммаРублевая * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
СтрокаТовар.Сумма = СтрокаТовар.СуммаРублевая - СтрокаТовар.СуммаНДС;
Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Сумма = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;
Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Сумма = СтрокаТовар.Сумма+СтрокаТовар.СуммаНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
Макет = ПолучитьМакет("Акт");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
СведенияОКонтрагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтрагенте, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
ТабДокумент.Вывести(ОбластьМакета);
ЕстьСкидки = Ложь;
// Вывести табличную часть
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
Если ВыводитьКоды Тогда
ОбластьМакета.Параметры.ИмяКодАртикул = ТекстКодАртикул;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки);
НомерСтроки = 0;
Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьМакета.Параметры.Заполнить(СтрокаТабличнойЧасти);
ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
ОбластьМакета.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
Если Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета Тогда
ОбластьМакета.Параметры.Цена = СтрокаТабличнойЧасти.Сумма / ?(СтрокаТабличнойЧасти.Количество = 0, 1, СтрокаТабличнойЧасти.Количество);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Если ТаблицаУслуги <> Неопределено Тогда
Сумма = ТаблицаУслуги.Итог("Сумма");
СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");
Иначе
Сумма = 0;
СуммаНДС = 0;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
Если СуммаНДС <> 0 Тогда
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
Иначе
ОбластьМакета.Параметры.ВсегоНДС = "-";
ОбластьМакета.Параметры.НДС = "Без налога (НДС)";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции"
04.12.2012
11:32
#3
"> {ВнешняяОбработка.Услуги.МодульОбъекта(7)}: Поле объекта не обнаружено (ДополнительнаяКолонкаПечатныхФормДокументов)
> ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
А какое именно слово непонятно?"
> ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
А какое именно слово непонятно?"
04.12.2012
11:46
#4
Не понятно то что не хватает 1с для работы этой формы. Что за поле объекта не обнаружено, где взять это поле (ДополнительнаяКолонкаПечатныхФормДокументов) и что надо написать чтоб заработала форма?
Читают тему
(гостей: 1)