Не смог добавить вознаграждение в эту тему(http://forum.infostart.ru/forum29/topic65512/) , поэтому создаю новую.
Добрый день!
При попытке сформировать счет-фактуру на аванс, появляется ошибка.
{Документ.СчетФактураВыданный.МодульОбъекта(2562)}: Преобразование значения к типу Булево не может быть выполнено
Если ЕстьТовары Тогда
На реализацию сф выставляется нормально. Сам не программист, не знаю откуда подойти. Заранее благодарен за помощь.
Добрый день!
При попытке сформировать счет-фактуру на аванс, появляется ошибка.
{Документ.СчетФактураВыданный.МодульОбъекта(2562)}: Преобразование значения к типу Булево не может быть выполнено
Если ЕстьТовары Тогда
На реализацию сф выставляется нормально. Сам не программист, не знаю откуда подойти. Заранее благодарен за помощь.
Прикрепленные файлы:
СчетФактура.txt
По теме из базы знаний
- Счет-фактура на аванс. Внешняя печатная форма
- Групповая печать Счет-Фактур на аванс в условиях кризиса
- УПД, счет-фактура выданный, счет-фактура на аванс для Комплексной автоматизации 2.4, 2.2, 2.0 (с 01.10.2017)
- Счет-фактура на аванс для УТ 11
- Формирование счет-фактуры на аванс в конфигурациях 1С:ERP и 1С:КА
Найденные решения
как то так
// Функция собирает данные по текущему документу в случае, если это СФ на аванс
//
Функция СобратьДанныеСФнаАвансИСуммовуюРазницу(ТекущееОснование)
Если Не (ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу)
Тогда
Возврат Неопределено;
КонецЕсли;
мНадписьПредоплата = ?(Дата >= '20060101', "Предварительная оплата", "Авансовый платеж");
НадписьНаименование = ?(ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс, мНадписьПредоплата, "Суммы, связанные с расчетами по оплате (ст. 162 НК РФ)");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить());
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураВыданный.Организация,
| СчетФактураВыданный.Номер,
| СчетФактураВыданный.Дата,
| СчетФактураВыданный.Организация КАК Поставщик,
| СчетФактураВыданный.Контрагент КАК Покупатель,
| &ВалютаРегламентированногоУчета КАК Валюта,
| СчетФактураВыданный.Сумма КАК Сумма,
| СчетФактураВыданный.СуммаНДС КАК СуммаНДС,
| СчетФактураВыданный.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка = &Ссылка";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("Организация", Шапка.Организация);
ДанныеДляПечати.Вставить("Номер", Шапка.Номер);
ДанныеДляПечати.Вставить("Дата", Шапка.Дата);
ДанныеДляПечати.Вставить("Поставщик", Шапка.Поставщик);
ДанныеДляПечати.Вставить("Грузоотправитель", );
ДанныеДляПечати.Вставить("Покупатель", Шапка.Покупатель);
ДанныеДляПечати.Вставить("Грузополучатель", );
ДанныеДляПечати.Вставить("Сумма", Шапка.Сумма);
ДанныеДляПечати.Вставить("Валюта", Шапка.Валюта);
ДанныеДляПечати.Вставить("УчитыватьНДС", Истина);
ДанныеДляПечати.Вставить("СуммаВключаетНДС", Истина);
Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Дата);
ДанныеДляПечати.Вставить(?(РегламентированнаяОтчетность.ЭтоПБОЮЛ(Шапка.Поставщик), "ФИОПБОЮЛ", "ФИОРуководителя"), Руководители.РуководительПредставление);
ДанныеДляПечати.Вставить("ФИОГлавногоБухгалтера", Руководители.ГлавныйБухгалтерПредставление);
Товары = ИнициализацияТаблицыСтрок();
ЕстьТовары = Ложь;
Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс Тогда
Запрос.Текст = "ВЫБРАТЬ
| СчетФактураВыданныйАвансы.Номенклатура КАК Товар,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000)) КАК Содержание,
| СУММА(СчетФактураВыданныйАвансы.Сумма) КАК Сумма,
| СУММА(СчетФактураВыданныйАвансы.СуммаНДС) КАК СуммаНДС,
| СчетФактураВыданныйАвансы.СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
|ГДЕ
| СчетФактураВыданныйАвансы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйАвансы.СтавкаНДС,
| СчетФактураВыданныйАвансы.Номенклатура,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000))";
ТаблицаПоАвансам = Запрос.Выполнить().Выгрузить();
СоответствиеСтавок = Новый Соответствие();
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС10_110);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18, Перечисления.СтавкиНДС.НДС18_118);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС20_120);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.БезНДС, Перечисления.СтавкиНДС.БезНДС);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.ПустаяСсылка(), Перечисления.СтавкиНДС.БезНДС);
Для Каждого СтрокаТаблицы Из ТаблицаПоАвансам Цикл
ЕстьТовары = Истина;
Строчка = Товары.Добавить();
Строчка.Товар = ?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СтрокаТаблицы.Товар, НадписьНаименование);
Строчка.ТоварНаименование = ?(ЗначениеЗаполнено(СокрЛП(СтрокаТаблицы.Содержание)), СокрЛП(СтрокаТаблицы.Содержание),
?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СокрЛП(СтрокаТаблицы.ТоварНаименование), НадписьНаименование));
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = СтрокаТаблицы.СтавкаНДС;
Строчка.СуммаНДС = СтрокаТаблицы.СуммаНДС;
Строчка.Сумма = СтрокаТаблицы.Сумма;
КонецЦикла;
Иначе
Строчка = Товары.Добавить();
Строчка.Товар = НадписьНаименование;
Строчка.ТоварНаименование = НадписьНаименование;
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = Шапка.СтавкаНДС;
Строчка.СуммаНДС = Шапка.СуммаНДС;
Строчка.Сумма = Шапка.Сумма;
КонецЕсли;
ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары);
ДанныеДляПечати.Вставить("ТолькоУслуги", Истина);
Возврат ДанныеДляПечати;
КонецФункции // СобратьДанныеПоСВП()
// Функция собирает данные по текущему документу в случае, если это СФ на аванс
//
Функция СобратьДанныеСФнаАвансИСуммовуюРазницу(ТекущееОснование)
Если Не (ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу)
Тогда
Возврат Неопределено;
КонецЕсли;
мНадписьПредоплата = ?(Дата >= '20060101', "Предварительная оплата", "Авансовый платеж");
НадписьНаименование = ?(ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс, мНадписьПредоплата, "Суммы, связанные с расчетами по оплате (ст. 162 НК РФ)");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить());
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураВыданный.Организация,
| СчетФактураВыданный.Номер,
| СчетФактураВыданный.Дата,
| СчетФактураВыданный.Организация КАК Поставщик,
| СчетФактураВыданный.Контрагент КАК Покупатель,
| &ВалютаРегламентированногоУчета КАК Валюта,
| СчетФактураВыданный.Сумма КАК Сумма,
| СчетФактураВыданный.СуммаНДС КАК СуммаНДС,
| СчетФактураВыданный.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка = &Ссылка";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("Организация", Шапка.Организация);
ДанныеДляПечати.Вставить("Номер", Шапка.Номер);
ДанныеДляПечати.Вставить("Дата", Шапка.Дата);
ДанныеДляПечати.Вставить("Поставщик", Шапка.Поставщик);
ДанныеДляПечати.Вставить("Грузоотправитель", );
ДанныеДляПечати.Вставить("Покупатель", Шапка.Покупатель);
ДанныеДляПечати.Вставить("Грузополучатель", );
ДанныеДляПечати.Вставить("Сумма", Шапка.Сумма);
ДанныеДляПечати.Вставить("Валюта", Шапка.Валюта);
ДанныеДляПечати.Вставить("УчитыватьНДС", Истина);
ДанныеДляПечати.Вставить("СуммаВключаетНДС", Истина);
Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Дата);
ДанныеДляПечати.Вставить(?(РегламентированнаяОтчетность.ЭтоПБОЮЛ(Шапка.Поставщик), "ФИОПБОЮЛ", "ФИОРуководителя"), Руководители.РуководительПредставление);
ДанныеДляПечати.Вставить("ФИОГлавногоБухгалтера", Руководители.ГлавныйБухгалтерПредставление);
Товары = ИнициализацияТаблицыСтрок();
ЕстьТовары = Ложь;
Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс Тогда
Запрос.Текст = "ВЫБРАТЬ
| СчетФактураВыданныйАвансы.Номенклатура КАК Товар,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000)) КАК Содержание,
| СУММА(СчетФактураВыданныйАвансы.Сумма) КАК Сумма,
| СУММА(СчетФактураВыданныйАвансы.СуммаНДС) КАК СуммаНДС,
| СчетФактураВыданныйАвансы.СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
|ГДЕ
| СчетФактураВыданныйАвансы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйАвансы.СтавкаНДС,
| СчетФактураВыданныйАвансы.Номенклатура,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000))";
ТаблицаПоАвансам = Запрос.Выполнить().Выгрузить();
СоответствиеСтавок = Новый Соответствие();
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС10_110);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18, Перечисления.СтавкиНДС.НДС18_118);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС20_120);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.БезНДС, Перечисления.СтавкиНДС.БезНДС);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.ПустаяСсылка(), Перечисления.СтавкиНДС.БезНДС);
Для Каждого СтрокаТаблицы Из ТаблицаПоАвансам Цикл
ЕстьТовары = Истина;
Строчка = Товары.Добавить();
Строчка.Товар = ?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СтрокаТаблицы.Товар, НадписьНаименование);
Строчка.ТоварНаименование = ?(ЗначениеЗаполнено(СокрЛП(СтрокаТаблицы.Содержание)), СокрЛП(СтрокаТаблицы.Содержание),
?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СокрЛП(СтрокаТаблицы.ТоварНаименование), НадписьНаименование));
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = СтрокаТаблицы.СтавкаНДС;
Строчка.СуммаНДС = СтрокаТаблицы.СуммаНДС;
Строчка.Сумма = СтрокаТаблицы.Сумма;
КонецЦикла;
Иначе
Строчка = Товары.Добавить();
Строчка.Товар = НадписьНаименование;
Строчка.ТоварНаименование = НадписьНаименование;
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = Шапка.СтавкаНДС;
Строчка.СуммаНДС = Шапка.СуммаНДС;
Строчка.Сумма = Шапка.Сумма;
КонецЕсли;
ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары);
ДанныеДляПечати.Вставить("ТолькоУслуги", Истина);
Возврат ДанныеДляПечати;
КонецФункции // СобратьДанныеПоСВП()
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
//Если ЕстьТовары Тогда
Если ДанныеДляПечати.Свойство("АдресДоставки")
И Не ПустаяСтрока(ДанныеДляПечати.АдресДоставки) Тогда
ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
ДанныеДляПечати.АдресДоставки,
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование") + ", " + ДанныеДляПечати.АдресДоставки);
Иначе
ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
"",
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование, ФактическийАдрес,"));
КонецЕсли;
//Иначе
// ПредставлениеГрузополучателя = "Грузополучатель и его адрес:";
//КонецЕсли;
Вот так заработает.
Если ДанныеДляПечати.Свойство("АдресДоставки")
И Не ПустаяСтрока(ДанныеДляПечати.АдресДоставки) Тогда
ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
ДанныеДляПечати.АдресДоставки,
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование") + ", " + ДанныеДляПечати.АдресДоставки);
Иначе
ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
"",
ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование, ФактическийАдрес,"));
КонецЕсли;
//Иначе
// ПредставлениеГрузополучателя = "Грузополучатель и его адрес:";
//КонецЕсли;
Вот так заработает.
как то так
// Функция собирает данные по текущему документу в случае, если это СФ на аванс
//
Функция СобратьДанныеСФнаАвансИСуммовуюРазницу(ТекущееОснование)
Если Не (ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу)
Тогда
Возврат Неопределено;
КонецЕсли;
мНадписьПредоплата = ?(Дата >= '20060101', "Предварительная оплата", "Авансовый платеж");
НадписьНаименование = ?(ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс, мНадписьПредоплата, "Суммы, связанные с расчетами по оплате (ст. 162 НК РФ)");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить());
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураВыданный.Организация,
| СчетФактураВыданный.Номер,
| СчетФактураВыданный.Дата,
| СчетФактураВыданный.Организация КАК Поставщик,
| СчетФактураВыданный.Контрагент КАК Покупатель,
| &ВалютаРегламентированногоУчета КАК Валюта,
| СчетФактураВыданный.Сумма КАК Сумма,
| СчетФактураВыданный.СуммаНДС КАК СуммаНДС,
| СчетФактураВыданный.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка = &Ссылка";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("Организация", Шапка.Организация);
ДанныеДляПечати.Вставить("Номер", Шапка.Номер);
ДанныеДляПечати.Вставить("Дата", Шапка.Дата);
ДанныеДляПечати.Вставить("Поставщик", Шапка.Поставщик);
ДанныеДляПечати.Вставить("Грузоотправитель", );
ДанныеДляПечати.Вставить("Покупатель", Шапка.Покупатель);
ДанныеДляПечати.Вставить("Грузополучатель", );
ДанныеДляПечати.Вставить("Сумма", Шапка.Сумма);
ДанныеДляПечати.Вставить("Валюта", Шапка.Валюта);
ДанныеДляПечати.Вставить("УчитыватьНДС", Истина);
ДанныеДляПечати.Вставить("СуммаВключаетНДС", Истина);
Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Дата);
ДанныеДляПечати.Вставить(?(РегламентированнаяОтчетность.ЭтоПБОЮЛ(Шапка.Поставщик), "ФИОПБОЮЛ", "ФИОРуководителя"), Руководители.РуководительПредставление);
ДанныеДляПечати.Вставить("ФИОГлавногоБухгалтера", Руководители.ГлавныйБухгалтерПредставление);
Товары = ИнициализацияТаблицыСтрок();
ЕстьТовары = Ложь;
Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс Тогда
Запрос.Текст = "ВЫБРАТЬ
| СчетФактураВыданныйАвансы.Номенклатура КАК Товар,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000)) КАК Содержание,
| СУММА(СчетФактураВыданныйАвансы.Сумма) КАК Сумма,
| СУММА(СчетФактураВыданныйАвансы.СуммаНДС) КАК СуммаНДС,
| СчетФактураВыданныйАвансы.СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
|ГДЕ
| СчетФактураВыданныйАвансы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйАвансы.СтавкаНДС,
| СчетФактураВыданныйАвансы.Номенклатура,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000))";
ТаблицаПоАвансам = Запрос.Выполнить().Выгрузить();
СоответствиеСтавок = Новый Соответствие();
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС10_110);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18, Перечисления.СтавкиНДС.НДС18_118);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС20_120);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.БезНДС, Перечисления.СтавкиНДС.БезНДС);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.ПустаяСсылка(), Перечисления.СтавкиНДС.БезНДС);
Для Каждого СтрокаТаблицы Из ТаблицаПоАвансам Цикл
ЕстьТовары = Истина;
Строчка = Товары.Добавить();
Строчка.Товар = ?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СтрокаТаблицы.Товар, НадписьНаименование);
Строчка.ТоварНаименование = ?(ЗначениеЗаполнено(СокрЛП(СтрокаТаблицы.Содержание)), СокрЛП(СтрокаТаблицы.Содержание),
?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СокрЛП(СтрокаТаблицы.ТоварНаименование), НадписьНаименование));
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = СтрокаТаблицы.СтавкаНДС;
Строчка.СуммаНДС = СтрокаТаблицы.СуммаНДС;
Строчка.Сумма = СтрокаТаблицы.Сумма;
КонецЦикла;
Иначе
Строчка = Товары.Добавить();
Строчка.Товар = НадписьНаименование;
Строчка.ТоварНаименование = НадписьНаименование;
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = Шапка.СтавкаНДС;
Строчка.СуммаНДС = Шапка.СуммаНДС;
Строчка.Сумма = Шапка.Сумма;
КонецЕсли;
ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары);
ДанныеДляПечати.Вставить("ТолькоУслуги", Истина);
Возврат ДанныеДляПечати;
КонецФункции // СобратьДанныеПоСВП()
// Функция собирает данные по текущему документу в случае, если это СФ на аванс
//
Функция СобратьДанныеСФнаАвансИСуммовуюРазницу(ТекущееОснование)
Если Не (ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
или ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу)
Тогда
Возврат Неопределено;
КонецЕсли;
мНадписьПредоплата = ?(Дата >= '20060101', "Предварительная оплата", "Авансовый платеж");
НадписьНаименование = ?(ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс, мНадписьПредоплата, "Суммы, связанные с расчетами по оплате (ст. 162 НК РФ)");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить());
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураВыданный.Организация,
| СчетФактураВыданный.Номер,
| СчетФактураВыданный.Дата,
| СчетФактураВыданный.Организация КАК Поставщик,
| СчетФактураВыданный.Контрагент КАК Покупатель,
| &ВалютаРегламентированногоУчета КАК Валюта,
| СчетФактураВыданный.Сумма КАК Сумма,
| СчетФактураВыданный.СуммаНДС КАК СуммаНДС,
| СчетФактураВыданный.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка = &Ссылка";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ДанныеДляПечати = Новый Структура();
ДанныеДляПечати.Вставить("Организация", Шапка.Организация);
ДанныеДляПечати.Вставить("Номер", Шапка.Номер);
ДанныеДляПечати.Вставить("Дата", Шапка.Дата);
ДанныеДляПечати.Вставить("Поставщик", Шапка.Поставщик);
ДанныеДляПечати.Вставить("Грузоотправитель", );
ДанныеДляПечати.Вставить("Покупатель", Шапка.Покупатель);
ДанныеДляПечати.Вставить("Грузополучатель", );
ДанныеДляПечати.Вставить("Сумма", Шапка.Сумма);
ДанныеДляПечати.Вставить("Валюта", Шапка.Валюта);
ДанныеДляПечати.Вставить("УчитыватьНДС", Истина);
ДанныеДляПечати.Вставить("СуммаВключаетНДС", Истина);
Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Дата);
ДанныеДляПечати.Вставить(?(РегламентированнаяОтчетность.ЭтоПБОЮЛ(Шапка.Поставщик), "ФИОПБОЮЛ", "ФИОРуководителя"), Руководители.РуководительПредставление);
ДанныеДляПечати.Вставить("ФИОГлавногоБухгалтера", Руководители.ГлавныйБухгалтерПредставление);
Товары = ИнициализацияТаблицыСтрок();
ЕстьТовары = Ложь;
Если ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс Тогда
Запрос.Текст = "ВЫБРАТЬ
| СчетФактураВыданныйАвансы.Номенклатура КАК Товар,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000)) КАК Содержание,
| СУММА(СчетФактураВыданныйАвансы.Сумма) КАК Сумма,
| СУММА(СчетФактураВыданныйАвансы.СуммаНДС) КАК СуммаНДС,
| СчетФактураВыданныйАвансы.СтавкаНДС
|ИЗ
| Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
|ГДЕ
| СчетФактураВыданныйАвансы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СчетФактураВыданныйАвансы.СтавкаНДС,
| СчетФактураВыданныйАвансы.Номенклатура,
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
| ВЫРАЗИТЬ(СчетФактураВыданныйАвансы.Содержание КАК СТРОКА(1000))";
ТаблицаПоАвансам = Запрос.Выполнить().Выгрузить();
СоответствиеСтавок = Новый Соответствие();
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС10, Перечисления.СтавкиНДС.НДС10_110);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС18, Перечисления.СтавкиНДС.НДС18_118);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.НДС20, Перечисления.СтавкиНДС.НДС20_120);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.БезНДС, Перечисления.СтавкиНДС.БезНДС);
СоответствиеСтавок.Вставить(Перечисления.СтавкиНДС.ПустаяСсылка(), Перечисления.СтавкиНДС.БезНДС);
Для Каждого СтрокаТаблицы Из ТаблицаПоАвансам Цикл
ЕстьТовары = Истина;
Строчка = Товары.Добавить();
Строчка.Товар = ?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СтрокаТаблицы.Товар, НадписьНаименование);
Строчка.ТоварНаименование = ?(ЗначениеЗаполнено(СокрЛП(СтрокаТаблицы.Содержание)), СокрЛП(СтрокаТаблицы.Содержание),
?(ЗначениеЗаполнено(СтрокаТаблицы.Товар), СокрЛП(СтрокаТаблицы.ТоварНаименование), НадписьНаименование));
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = СтрокаТаблицы.СтавкаНДС;
Строчка.СуммаНДС = СтрокаТаблицы.СуммаНДС;
Строчка.Сумма = СтрокаТаблицы.Сумма;
КонецЦикла;
Иначе
Строчка = Товары.Добавить();
Строчка.Товар = НадписьНаименование;
Строчка.ТоварНаименование = НадписьНаименование;
Строчка.СтранаПроисхождения = "";
Строчка.ПредставлениеСтраны = "";
Строчка.НомерГТД = "";
Строчка.ПредставлениеГТД = "";
Строчка.Количество = 0;
Строчка.ЕдиницаИзмерения = "";
Строчка.СтавкаНДС = Шапка.СтавкаНДС;
Строчка.СуммаНДС = Шапка.СуммаНДС;
Строчка.Сумма = Шапка.Сумма;
КонецЕсли;
ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары);
ДанныеДляПечати.Вставить("ТолькоУслуги", Истина);
Возврат ДанныеДляПечати;
КонецФункции // СобратьДанныеПоСВП()
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот