Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Форум

Развернуть все [1С:Бухгалтерия 8] Внешняя обработка реализация товаров и услуг
chuma
Пост №1
chuma
читатель
офлайн
Дата регистрации: 15.05.2013
Сообщений: 1
Пост №1
 
15.05.2013 15:38

"Помогите разобраться, хочу добавить в печатной форме акта реализации товаров и услуг полные наименования представителей

модуль:
Перем мВалютаРегламентированногоУчета Экспорт;

Перем ТаблицаВзаиморасчетов;

// Функция формирует табличный документ с печатной формой акта об
// обказании услуг
//
// Возвращаемое значение:
// Табличный документ - печатная форма акта
//
Функция ПечатьДокумента()

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

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");

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

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";

Макет = ПолучитьМакет("Накладная");

// Выводим шапку накладной

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

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

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

ЕстьСкидки = Ложь;

ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ВыводитьКоды = Истина;
       Колонка = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
       ВыводитьКоды = Истина;
       Колонка = "Код";
Иначе
       ВыводитьКоды = Ложь;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
       ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
       ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);

ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ВыводитьКоды Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
                                           Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
Если НЕ ЕстьСкидки Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
                                           Макет.Область("СуммаБезСкидки").ШиринаКолонки +
                                           Макет.Область("СуммаСкидки").ШиринаКолонки;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма");

Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;

Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл

       ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
       ТабДокумент.Вывести(ОбластьНомера);
      
       Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
             ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
             ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
       КонецЕсли;

       ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
       ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
       ТабДокумент.Присоединить(ОбластьДанных);

       Скидка = 0;
      
       ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
       ТабДокумент.Присоединить(ОбластьСуммы);
       Сумма       = Сумма       + ВыборкаСтрокТовары.Сумма;
       СуммаНДС       = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
       ВсегоСкидок = ВсегоСкидок + Скидка;
       ВсегоБезСкидок = Сумма       + ВсегоСкидок;

КонецЦикла;

// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
       ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);

// Вывести ИтогоНДС
Если Шапка.УчитыватьНДС Тогда
       ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
       ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
       ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
       ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

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

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

// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ОбластьМакета.Параметры.Заполнить(Шапка);

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

ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;

КонецФункции // ПечатьДокумента()

Функция ПечатьАктаОбОказанииУслуг()

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

Функция Печать() Экспорт
Возврат ПечатьАктаОбОказанииУслуг();
КонецФункции // Печать

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();


Выходит ошибка в бухгалтерии при вызове печати - Не удалось сформировать внешнюю печатную форму!
Невозможно обработать параметр "ВалютаРегламентированногоУчета" для получения значения
Что не так?"

 
chuma
Пост №1
15.05.2013 15:38
 

"Помогите разобраться, хочу добавить в печатной форме акта реализации товаров и услуг полные наименования представителей

модуль:
Перем мВалютаРегламентированногоУчета Экспорт;

Перем ТаблицаВзаиморасчетов;

// Функция формирует табличный документ с печатной формой акта об
// обказании услуг
//
// Возвращаемое значение:
// Табличный документ - печатная форма акта
//
Функция ПечатьДокумента()

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

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");

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

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";

Макет = ПолучитьМакет("Накладная");

// Выводим шапку накладной

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

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

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

ЕстьСкидки = Ложь;

ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ВыводитьКоды = Истина;
       Колонка = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
       ВыводитьКоды = Истина;
       Колонка = "Код";
Иначе
       ВыводитьКоды = Ложь;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
       ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
       ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);

ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ВыводитьКоды Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
                                           Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
Если НЕ ЕстьСкидки Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
                                           Макет.Область("СуммаБезСкидки").ШиринаКолонки +
                                           Макет.Область("СуммаСкидки").ШиринаКолонки;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма");

Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;

Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл

       ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
       ТабДокумент.Вывести(ОбластьНомера);
      
       Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
             ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
             ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
       КонецЕсли;

       ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
       ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
       ТабДокумент.Присоединить(ОбластьДанных);

       Скидка = 0;
      
       ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
       ТабДокумент.Присоединить(ОбластьСуммы);
       Сумма       = Сумма       + ВыборкаСтрокТовары.Сумма;
       СуммаНДС       = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
       ВсегоСкидок = ВсегоСкидок + Скидка;
       ВсегоБезСкидок = Сумма       + ВсегоСкидок;

КонецЦикла;

// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
       ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);

// Вывести ИтогоНДС
Если Шапка.УчитыватьНДС Тогда
       ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
       ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
       ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
       ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

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

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

// Вывести подписи
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ОбластьМакета.Параметры.Заполнить(Шапка);

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

ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;

КонецФункции // ПечатьДокумента()

Функция ПечатьАктаОбОказанииУслуг()

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

Функция Печать() Экспорт
Возврат ПечатьАктаОбОказанииУслуг();
КонецФункции // Печать

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();


Выходит ошибка в бухгалтерии при вызове печати - Не удалось сформировать внешнюю печатную форму!
Невозможно обработать параметр "ВалютаРегламентированногоУчета" для получения значения
Что не так?"

 
ZhAmAn
Пост №2
А зачем весь модуль сюда писать?
15.05.2013 15:39
 
 
Вьюн
Пост №3
Определитесь, как называется реквизит Валюта у объ...
15.05.2013 20:10
 
 
zak555 (398843952)
Пост №4
вложенные запросы -- это лишнее
16.05.2013 09:32
 
 
Денис (САМАРА)
Пост №5
Это скорее в "Пожелания по форуму", сделать возмож...
16.05.2013 10:25
 

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС

1С бесплатно 1С-Отчетность 1С-Такском 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление небольшой фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПАРК-Риски 1СПредприятие 8 2-НДФЛ 3-НДФЛ 4-ФСС 5 минут 6-НДФЛ CRM Агентский договор. Учет административная ответственность адресный классификатор акцизы алкоголь алкогольная продукция амортизационная премия амортизация арбитражная практика аттестация рабочих мест аудит аудиторские организации база 1с база для начисления страховых взносов база по страховым взносам база по налогу на прибыль банк и касса в 1с банкротство безнадежная задолженность безналичные расчеты бланки строгой отчетности больничное пособие больничный листок бухгалтер бухгалтерия автономного учреждения бухгалтерская отчетность бухгалтерские события бухгалтерский баланс бухгалтерский учет бухучет Бытовые услуги. Учет бюджет муниципального образования бюджет поселения бюджетная отчетность бюджетный учет ВАС РФ Вахтовый метод.Оплата ввоз товаров взаимозависимые_лица взноcы в ПФР взносы в ФОМС взносы в ФСС взносы на травматизм видео 1С водный налог возврат переплаты восстановление НДС вывоз товаров выездная налоговая проверка выездная проверка выплата зарплаты выплаты иностранному работнику выплаты работникам выплаты физическим лицам высококвалифицированные специалисты вычет НДС вычеты по НДФЛ ВЭД ГК РФ госпошлина государственная регистрация государственные и муниципальные закупки гражданско-правовой договор графики работы двойное налогообложение дебиторка декларация по алкоголю декларация по ЕНВД декларация по НДС денежные документы День Бухгалтерии детские пособия ДиректБанк договор комиссии договор подряда договор поставки договор транспортной экспедиции договорная политика документальное оформление документооборот долговые обязательства должная осмотрительность доходы организации ЕГАИС ЕГРЮЛ ежемесячная отчетность ЕНВД ЕСН ЕСХН задержка заработной платы задолженность по налогам займы закон о бухгалтерском учете занимательная бухгалтерия заработная плата зарплата зарплатные налоги зарубежная командировка защита персональных данных заявление о постановке на учет земельный налог изменения 2015 изменения в законодательстве изменения в законодательстве 2012 изменения в законодательстве 2013 имущественные вычеты имущественный налоговый вычет индивидуальный предприниматель иностранные компании иностранный работник интернет-компании интернет-магазины ИП ИП на ЕНВД ИС 1С:ИТС исправление бухгалтерских ошибок исправление ошибок ИТС ИФНС кадастровая стоимость кадровое оформление камеральная проверка кассовая дисциплина кассовые операции КБК квоты на иностранных рабочих КИК ККТ КЛАДР ключевая ставка книга на УСН книга покупок книга продаж КоАП РФ коды видов продукции командировка командировочные расходы компенсации работникам компенсационные выплаты компенсация за отпуск консервация основных средств консолидированная группа контролируемые сделки корректировочный счет-фактура коэффициент-дефлятор крупнейшие налогоплательщики курортный сбор курсовые разницы лизинг лизинговое имущество ликвидация организации лицензирование льготы по ндс малый бизнес маркировка изделий маркировка изделий из натурального меха маркировка меховых изделий маркировка товара материальная выгода материальная помощь материнский капитал международные стандарты миниденьги модернизация основных средств МРОТ МСФО наличные расчеты налог на игорный бизнес налог на имущество налог на имущество физических лиц налог на прибыль налоги физических лиц налоговая база по налогу на прибыль налоговая база по ндс налоговая база по НДС налоговая декларация налоговая ответственность налоговая отчетность налоговая политика налоговая проверка налоговое администрирование налоговые каникулы налоговые льготы налоговые проверки налоговый агент налоговый агент НДФЛ налоговый агент по НДС налоговый агент по НДФЛ налоговый агент по ндфл налоговый вычет налоговый контроль налоговый мониторинг налоговый учет налогообложение доходов налогоплательщик начисление пени НДПИ НДС НДС по ставке 10% НДС при ввозе НДС при экспорте НДС-2015 НДФЛ некоммерческие организации учет неотделимые улучшения нерезиденты НИОКР НК РФ НМА новая форма декларации новая форма расчета новости нормы естественной убыли нулевая декларация нулевая ставка обзор обзор бухгалтерских событий обзор новостей обмен документами обновление КЛАДР обособленное подразделение обособленные подразделения обучение 1с оказание услуг ОКВЭД2 ОКПД2 онлайн-касса онлайн-ккт онлайн-ККТ освобождение от налогообложения освобождение от ндс освобождение от НДС основные средства отпускные отходы отчетность в ПФР отчетность в росстат отчетность в Росстат отчетность организации отчетность по страховым взносам отчетность предпринимателя оформление счета-фактуры охрана труда патентная система ПБУ 18 первичные документы перенос убытков персонифицированный учет план счетов плата за негативное воздействие на окружающую среду плата за проезд грузовиков платежи платежное поручение платежные документы 1с платежный агент платежный терминал повышение ставок подакцизные товары подтверждающие документы подтверждение расходов полномочия налоговых органов пониженные тарифы поправки в НК РФ поправки в тк рф поправки в ТК РФ порядок маркировки товаров пособие по беременности и родам пособие по временной нетрудоспособности пособие по нетрудоспособности пособия за счет ФСС посреднические договоры постановка на учет постановка на учет в налоговом органе права налогоплательщика представление сведений приказ Минфина применение ККТ приостановление операций по счету проверка ИНН/КПП проверка контрагентов продажа алкогольной продукции производственный календарь проф. Пятов профессиональные вычеты ПСН псн путевой лист работники-иностранцы раздельный учет расходы на ГСМ расходы на рекламу расходы организации расчет больничного листа расчет заработной платы расчет НДПИ расчет отпускных расчет себестоимости расчет страховых взносов расчетный счет расчеты с работниками регистрация недвижимости регистрация юридических лиц реконструкция основных средств ремонт основных средств реорганизация росалкогольрегулирование РСВ-1 рыночные цены самозанятые граждане свод отчетов сдача имущества в аренду секреты 1С:ЗУП сельскохозяйственный товаропроизводитель система "Платон" служебная командировка снижение ставок совместители совмещение налоговых режимов составление и сдача отчетности составление и сдача отчетности социальное страхование социальные вычеты социальный налоговый вычет спецоценка условий труда средний заработок ставка НДС Ставка НДФЛ ставка рефинансирования ставка УСН стандартные вычеты стандарты бухучета статистика статистическая отчетность статотчетность страхование страховые взносы страховые взносы в пфр страховые взносы в фсс страховые взносы в ФСС страховые взносы для самозанятых страховые взносы на травматизм страховые тарифы судебные издержки суммовые разницы суточные счет-фактура такси таможенные платежи таможенный союз ТК РФ торг-12 торговый сбор транспортный налог трудовая книжка трудовой договор увольнение по инициативе руководителя увольнение по соглашению сторон уголовная ответственность удержание алиментов УКД универсальный корректировочный документ УПД уплата налога уплата налогов упрощенная система налогообложения УСН уставный капитал уточненка утрата права на усн учет аренды учет в АО учет в ООО учет в сельском хозяйстве учет в строительстве учет в туризме учет дивидендов учет доходов при УСН учет доходов при усн учет импорта учет лизинга учет МПЗ учет на производстве учет ОС учет основных средств учет премий учет расходов учет расходов при УСН учет расходов при усн учет реализации учет скидок учет субсидий учет товаров учет ценных бумаг учет экспорта учетная политика учредительные документы факсимиле ФИАС финансовый анализ финансовый результат ФНС РФ форма 6-НДФЛ формы документов ФСС штрафные санкции ЭДО экологические платежи экспорт в страны ЕАЭС экспорт продукции электронная отчетность электронная подпись электронные счета-фактуры электронный документооборот электронный формат энциклопедия проверок

Все теги
X

Яндекс-виджет: Новости
Яндекс-виджет: Полезные материалы
Информеры