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

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Бухгалтерия 8]

Внешняя обработка реализация товаров и услуг

chuma
Пост №1
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
ZhAmAn
читатель
офлайн
Дата регистрации: 23.12.2010
Сообщений: 1333
Пост №2
 
15.05.2013 15:39

А зачем весь модуль сюда писать?

Вьюн
Пост №3
Вьюн
читатель
офлайн
Дата регистрации: 14.01.2007
Сообщений: 655
Пост №3
 
15.05.2013 20:10

Определитесь, как называется реквизит Валюта у объекта, а то у вас 2 варианта встречаются:
СсылкаНаОбъект.мВалютаРегламентированногоУчета
СсылкаНаОбъект.ВалютаРегламентированногоУчета

zak555 (398843952)
Пост №4
zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №4
 
16.05.2013 09:32

вложенные запросы -- это лишнее

Денис (САМАРА)
Пост №5
Денис (САМАРА)
активный пользователь
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8342
Пост №5
 
16.05.2013 10:25

Это скорее в "Пожелания по форуму", сделать возможность писать "Скрытый текст"...

Показывать по 10 20 40 сообщений

Читают тему:

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СПредприятие 8

Все теги
© ООО "1C" 2000-2018 г.