Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Функция СведенияОВнешнейОбработке() Экспорт
- ПараметрыРегистрации = Новый Структура;
- Массив = Новый Массив;
- Массив.Добавить("Документы.РеализацияТоваровУслуг");
- ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); // Или отчет, обработка,
- ПараметрыРегистрации.Вставить("Назначение", Массив);
- ПараметрыРегистрации.Вставить("Наименование", "Универс.передаточный док-т");
- ПараметрыРегистрации.Вставить("Версия", "1.0");
- ПараметрыРегистрации.Вставить("Информация", "УПД(внешняя печатная форма)");
- ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
- Команды = ПолучитьТаблицуКоманд();
- ДобавитьКоманду(Команды, "УПД(внешняя печатная форма)",
- "Универс.передаточный док-т",
- "ВызовСерверногоМетода",
- Ложь,
- "ПечатьXML");
- ПараметрыРегистрации.Вставить("Команды", Команды);
- Возврат ПараметрыРегистрации;
- КонецФункции
- Функция ПолучитьТаблицуКоманд()
- Команды = Новый ТаблицаЗначений;
- Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
- Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
- Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
- Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
- Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
- Возврат Команды
- КонецФункции
- Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
- НоваяКоманда = ТаблицаКоманд.Добавить();
- НоваяКоманда.Представление = Представление;
- НоваяКоманда.Идентификатор = Идентификатор;
- НоваяКоманда.Использование = Использование;
- НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
- НоваяКоманда.Модификатор = Модификатор;
- КонецПроцедуры
- Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
- УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "УПДСтатус1", "УПД (статус 1)",
- ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати,
- Документы.СчетФактураВыданный.ТекстЗапросаПечатьСчетовФактур(Истина, Истина)),,
- "Обработка.ПечатьУПД.ПФ_MXL_УниверсальныйПередаточныйДокумент");
- ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
- КонецПроцедуры
- &НаСервере
- Функция ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати, ТекстЗапросаДокументам, ТолькоПередаточныйДокумент = Ложь) Экспорт
- УстановитьПривилегированныйРежим(Истина);
- ТабДокумент = Новый ТабличныйДокумент;
- ТабДокумент.АвтоМасштаб = Истина;
- ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
- ТабДокумент.ЭкземпляровНаСтранице = 1;
- ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
- УстановкаМинимальныхПолейДляПечати(ТабДокумент);
- Макет = ПолучитьМакет("ПФ_MXL_УниверсальныйПередаточныйДокумент");
- Если ТолькоПередаточныйДокумент Тогда
- ДанныеУниверсальныхПередаточныхДокументов = ПолучитьДанныеДляПечатиУниверсальногоПередаточногоДокумента(
- МассивОбъектов, ТекстЗапросаДокументам);
- Иначе
- ДанныеУниверсальныхПередаточныхДокументов = ПолучитьДанныеДляПечатиСчетаФактуры1137(
- МассивОбъектов, ТекстЗапросаДокументам, Истина);
- КонецЕсли;
- ПервыйДокумент = Истина;
- Для Каждого ВыборкаУПД ИЗ ДанныеУниверсальныхПередаточныхДокументов Цикл
- Если ВыборкаУПД.Дата < '20130101' Тогда
- Продолжить;
- КонецЕсли;
- ТаблицаДокумента = ВыборкаУПД.ТаблицаДокумента;
- Если ТаблицаДокумента = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ПервыйДокумент Тогда
- ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
- КонецЕсли;
- ПервыйДокумент = Ложь;
- // Запомним номер строки, с которой начали выводить текущий документ.
- НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
- ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаУПД, Истина);
- // Вывод подвала накладной
- ОбластьМакета = Макет.ПолучитьОбласть("ПодвалНакладной");
- ОбластьМакета.Параметры.Заполнить(ВыборкаУПД.ДанныеШапки);
- ТабДокумент.Вывести(ОбластьМакета);
- // В табличном документе зададим имя области, в которую был выведен объект.
- // Нужно для возможности печати покомплектно.
- УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
- НомерСтрокиНачало, ОбъектыПечати, ВыборкаУПД.Ссылка);
- КонецЦикла;
- Если МассивОбъектов.Количество() = 1 И ПервыйДокумент Тогда
- СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru='Для %1 универсальный передаточный документ не применяется'"), Строка(МассивОбъектов[0]));
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СообщениеОбОшибке);
- КонецЕсли;
- Возврат ТабДокумент;
- КонецФункции
- Функция ПолучитьДанныеДляПечатиСчетаФактуры1137(МассивОбъектов, ТекстЗапросаПоСчетамФактурам, ДополнитьДаннымиУПД = Ложь) Экспорт
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
- Запрос.УстановитьПараметр("НачалоПримененияПостановления1137", УчетНДСБП.ПолучитьДатуНачалаДействияПостановления1137());
- Запрос.Текст = ТекстЗапросаПоСчетамФактурам;
- Результаты = Запрос.ВыполнитьПакет();
- ВыборкаСФ = Результаты[0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СчетФактура");
- ПлатежноРасчетныеДокументы = Неопределено;
- Если Результаты.Количество() > 1 И НЕ Результаты[1].Пустой() Тогда
- ПлатежноРасчетныеДокументы = Результаты[1].Выгрузить();
- ПлатежноРасчетныеДокументы.Индексы.Добавить("СчетФактура");
- КонецЕсли;
- ТаблицаСчетовФактур = Новый ТаблицаЗначений();
- ТаблицаСчетовФактур.Колонки.Добавить("ДанныеШапки");
- ТаблицаСчетовФактур.Колонки.Добавить("ТаблицаДокумента");
- ТаблицаСчетовФактур.Колонки.Добавить("ДокументыОснования");
- ТаблицаСчетовФактур.Колонки.Добавить("ВидСчетаФактуры");
- ТаблицаСчетовФактур.Колонки.Добавить("СчетФактура");
- ТаблицаСчетовФактур.Колонки.Добавить("СчетФактураБезНДС");
- ТаблицаСчетовФактур.Колонки.Добавить("Дата");
- ТаблицаСчетовФактур.Колонки.Добавить("Ссылка");
- ДанныеСчетаФактуры = Новый Структура(
- "СчетФактура,ВидСчетаФактуры,Контрагент,ДоговорКонтрагента,ИспользуетсяПостановлениеНДС1137,НеподтверждениеНулевойСтавки,СводныйКомиссионный");
- ДанныеСчетаФактуры.ИспользуетсяПостановлениеНДС1137 = Истина;
- ДанныеСчетаФактуры.НеподтверждениеНулевойСтавки = Ложь;
- Пока ВыборкаСФ.Следующий() Цикл
- ТаблицаДокумента = Неопределено;
- ДокументыОснования = Новый Массив;
- ВыборкаПоОснованиям = ВыборкаСФ.Выбрать();
- Пока ВыборкаПоОснованиям.Следующий() Цикл
- Если НЕ ЗначениеЗаполнено(ВыборкаПоОснованиям.ДокументОснование) Тогда
- Продолжить;
- КонецЕсли;
- ДокументыОснования.Добавить(ВыборкаПоОснованиям.ДокументОснование);
- ЗаполнитьЗначенияСвойств(ДанныеСчетаФактуры, ВыборкаСФ);
- ПараметрыОснования = ПодготовитьДанныеДляПечатиСчетовФактур(ВыборкаПоОснованиям.ДокументОснование, ДанныеСчетаФактуры);
- Если ПараметрыОснования.Реквизиты = Неопределено ИЛИ ПараметрыОснования.ТаблицаДокумента = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- Реквизиты = ПараметрыОснования.Реквизиты[0];
- Если ТаблицаДокумента = Неопределено Тогда
- ТаблицаДокумента = ПараметрыОснования.ТаблицаДокумента;
- Иначе
- ОбщегоНазначенияБПВызовСервера.ЗагрузитьВТаблицуЗначений(ПараметрыОснования.ТаблицаДокумента, ТаблицаДокумента);
- КонецЕсли;
- КонецЦикла;
- Если ТаблицаДокумента = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- ТаблицаДокумента.Колонки.СуммаБезНДС.Имя = "Стоимость";
- КолонкиГруппировок = ""
- +"Товар,"
- +"ТоварКод,"
- +"ТоварНаименование,"
- +"СтранаПроисхождения,"
- +"ПредставлениеСтраны,"
- +"СтранаПроисхожденияКод,"
- +"НомерГТД,"
- +"ПредставлениеГТД,"
- +"ЕдиницаИзмерения,"
- +"ЕдиницаИзмеренияКод,"
- +"ЕдиницаИзмеренияНаименование,"
- +"Цена,"
- +"СтавкаНДС,"
- +"КонтрагентСводныйСФ,"
- +"Акциз";
- КолонкиСуммирования = ""
- +"Количество,"
- +"Всего,"
- +"Стоимость,"
- +"СуммаНДС,"
- +"ВсегоРуб,"
- +"НДСРуб,"
- +"СуммаБезНДСРуб";
- ТаблицаДокумента.Свернуть(КолонкиГруппировок, КолонкиСуммирования);
- ТаблицаДокумента.Колонки.Добавить("НомерСтроки");
- ДанныеШапки = ПодготовитьДанныеШапкиСчетаФактуры1137(ВыборкаСФ, Реквизиты, ПлатежноРасчетныеДокументы, ДополнитьДаннымиУПД);
- СчетФактура = ТаблицаСчетовФактур.Добавить();
- СчетФактура.Дата = ВыборкаСФ.Дата;
- СчетФактура.СчетФактура = ВыборкаСФ.СчетФактура;
- СчетФактура.ВидСчетаФактуры = ВыборкаСФ.ВидСчетаФактуры;
- СчетФактура.СчетФактураБезНДС = ВыборкаСФ.СчетФактураБезНДС;
- СчетФактура.ДанныеШапки = ДанныеШапки;
- СчетФактура.ТаблицаДокумента = ТаблицаДокумента;
- СчетФактура.ДокументыОснования = ДокументыОснования;
- СчетФактура.Ссылка = ВыборкаСФ.СчетФактура;
- КонецЦикла;
- Возврат ТаблицаСчетовФактур;
- КонецФункции
- Функция ПодготовитьДанныеШапкиСчетаФактуры1137(ВыборкаСФ, Реквизиты, ПлатежноРасчетныеДокументы, ДополнитьДаннымиУПД)
- ДанныеШапки = Новый Структура;
- // Номер и дата
- Если ВыборкаСФ.УдалитьПрефиксыИзНомера Тогда
- Номер = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ВыборкаСФ.Номер, Истина, Ложь);
- Иначе
- Номер = ВыборкаСФ.Номер;
- КонецЕсли;
- // Дополняем номер индексом обособленного подразделения (при необходимости)
- Если ЗначениеЗаполнено(Реквизиты.ЦифровойИндексОбособленногоПодразделения)
- И ВыборкаСФ.ЭтоСчетФактураВыданный
- И ЗначениеЗаполнено(ВыборкаСФ.ВидСчетаФактуры) Тогда
- Номер = Номер + "/" + Реквизиты.ЦифровойИндексОбособленногоПодразделения;
- КонецЕсли;
- ДанныеШапки.Вставить("Номер", СокрЛП(Номер));
- ДанныеШапки.Вставить("Дата", ВыборкаСФ.Дата);
- // Номер и дата исправления
- ДанныеШапки.Вставить("Исправление", ВыборкаСФ.Исправление);
- Если ВыборкаСФ.Исправление Тогда
- ДанныеШапки.Вставить("НомерИсправления", ВыборкаСФ.НомерИсправления);
- ДанныеШапки.Вставить("ДатаИсправления", ВыборкаСФ.ДатаИсправления);
- Иначе
- ДанныеШапки.Вставить("НомерИсправления", "--");
- ДанныеШапки.Вставить("ДатаИсправления", "--");
- КонецЕсли;
- ДанныеШапки.Вставить("Поставщик", Реквизиты.Поставщик);
- Если Реквизиты.СводныйСФКомиссияПоЗакупке Тогда
- СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Реквизиты.Организация, ВыборкаСФ.Дата);
- ДанныеШапки.Вставить("ПредставлениеПоставщика", Реквизиты.Поставщик);
- ДанныеШапки.Вставить("АдресПоставщика", Реквизиты.АдресПоставщика);
- ДанныеШапки.Вставить("ИННКППпоставщика", Реквизиты.ИННКППпоставщика);
- Иначе
- СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Реквизиты.Поставщик, ВыборкаСФ.Дата);
- ДанныеШапки.Вставить("ПредставлениеПоставщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеДляПечатныхФорм,"));
- // Адрес продавца
- ДанныеШапки.Вставить("АдресПоставщика", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,"));
- КонецЕсли;
- КППпоставщика = ?(НЕ ВыборкаСФ.ЭтоСчетФактураВыданный И ЗначениеЗаполнено(ВыборкаСФ.КППСчетаФактуры), ВыборкаСФ.КППСчетаФактуры, Реквизиты.КППпоставщика);
- ДанныеШапки.Вставить("ИННпоставщика", Реквизиты.ИННпоставщика);
- ДанныеШапки.Вставить("КППпоставщика", КППпоставщика);
- // Наименование покупателя
- ДанныеШапки.Вставить("Покупатель", Реквизиты.Покупатель);
- Если Реквизиты.СводныйСФКомиссияПоПродаже Тогда
- ДанныеШапки.Вставить("ПредставлениеПокупателя", Реквизиты.Покупатель);
- ДанныеШапки.Вставить("АдресПокупателя", Реквизиты.АдресПокупателя);
- ДанныеШапки.Вставить("ИННКПППокупателя", Реквизиты.ИННКППпокупателя);
- Иначе
- СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Реквизиты.Покупатель, ВыборкаСФ.Дата);
- ДанныеШапки.Вставить("ПредставлениеПокупателя", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "НаименованиеДляПечатныхФорм,"));
- // Адрес покупателя
- ДанныеШапки.Вставить("АдресПокупателя", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес,"));
- КонецЕсли;
- КППпокупателя = ?(ВыборкаСФ.ЭтоСчетФактураВыданный И ЗначениеЗаполнено(ВыборкаСФ.КППСчетаФактуры), ВыборкаСФ.КППСчетаФактуры, Реквизиты.КППпокупателя);
- ДанныеШапки.Вставить("ИННпокупателя", Реквизиты.ИННпокупателя);
- ДанныеШапки.Вставить("КППпокупателя", КППпокупателя);
- // Грузоотправитель
- Если ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
- ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента
- ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
- Грузоотправитель = Неопределено;
- ПредставлениеГрузоотправителя = "--";
- ИначеЕсли Реквизиты.ЕстьТовары
- И ЗначениеЗаполнено(Реквизиты.Грузоотправитель) Тогда
- Если ТипЗнч(Реквизиты.Грузоотправитель) = Тип("Строка") Тогда
- ПредставлениеГрузоотправителя = Реквизиты.Грузоотправитель;
- Иначе
- СведенияОГрузоотправителе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Реквизиты.Грузоотправитель, ВыборкаСФ.Дата);
- ПредставлениеГрузоотправителя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
- СведенияОГрузоотправителе, "НаименованиеДляПечатныхФорм,ФактическийАдрес,");
- КонецЕсли;
- Грузоотправитель = Реквизиты.Грузоотправитель;
- Иначе
- Грузоотправитель = Неопределено;
- ПредставлениеГрузоотправителя = "--";
- КонецЕсли;
- ДанныеШапки.Вставить("Грузоотправитель", Грузоотправитель);
- ДанныеШапки.Вставить("ПредставлениеГрузоотправителя", ПредставлениеГрузоотправителя);
- // Грузополучатель
- Если ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
- ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
- Грузополучатель = Неопределено;
- ПредставлениеГрузополучателя = "--";
- ИначеЕсли Реквизиты.ЕстьТовары
- И ЗначениеЗаполнено(Реквизиты.Грузополучатель) Тогда
- Если ТипЗнч(Реквизиты.Грузополучатель) = Тип("Строка") Тогда
- ПредставлениеГрузополучателя = Реквизиты.Грузополучатель;
- Иначе
- СведенияОГрузополучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Реквизиты.Грузополучатель, ВыборкаСФ.Дата);
- Если Реквизиты.АдресДоставки <> "" Тогда
- СведенияОГрузополучателе.ФактическийАдрес = Реквизиты.АдресДоставки;
- КонецЕсли;
- ПредставлениеГрузополучателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
- СведенияОГрузополучателе, "НаименованиеДляПечатныхФорм,ФактическийАдрес,");
- КонецЕсли;
- Грузополучатель = Реквизиты.Грузополучатель;
- Иначе
- Грузополучатель = Неопределено;
- ПредставлениеГрузополучателя = "--";
- КонецЕсли;
- ДанныеШапки.Вставить("Грузополучатель", Грузополучатель);
- ДанныеШапки.Вставить("ПредставлениеГрузополучателя", ПредставлениеГрузополучателя);
- // Платежно-расчетный документ
- ПоДокументу = "";
- Если ПлатежноРасчетныеДокументы <> Неопределено Тогда
- ТаблицаПлатежныхДокументов = ПлатежноРасчетныеДокументы.СкопироватьКолонки();
- Если ТипЗнч(ПлатежноРасчетныеДокументы) = Тип("ТаблицаЗначений") Тогда
- Отбор = Новый Структура("СчетФактура", ВыборкаСФ.СчетФактура);
- НайденныеСтроки = ПлатежноРасчетныеДокументы.НайтиСтроки(Отбор);
- РазделятьПоКонтрагентам = ТаблицаПлатежныхДокументов.Колонки.Найти("Контрагент") <> Неопределено;
- ПредыдущийКонтрагент = Справочники.Контрагенты.ПустаяСсылка();
- Для каждого ДокументОплаты Из НайденныеСтроки Цикл
- Контрагент = ?(РазделятьПоКонтрагентам, ДокументОплаты.Контрагент, Справочники.Контрагенты.ПустаяСсылка());
- Если ЗначениеЗаполнено(ДокументОплаты.НомерДокумента)
- И ЗначениеЗаполнено(ДокументОплаты.ДатаДокумента) Тогда
- ЗаполнитьЗначенияСвойств(ТаблицаПлатежныхДокументов.Добавить(), ДокументОплаты);
- ПоДокументу = ПоДокументу + ?(Не ДокументОплаты.НомерСтроки = 1 И Контрагент <> ПредыдущийКонтрагент, ";", ?(ПустаяСтрока(ПоДокументу), "",", ")) +
- ДокументОплаты.НомерДокумента + " от " + Формат(ДокументОплаты.ДатаДокумента, "ДЛФ='Д'") + " г.";
- КонецЕсли;
- ПредыдущийКонтрагент = Контрагент;
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
- Если ПустаяСтрока(ПоДокументу) Тогда
- Если ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
- ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
- ПоДокументу = "-- от --";
- Иначе
- ПоДокументу = " от ";
- КонецЕсли;
- КонецЕсли;
- ДанныеШапки.Вставить("ТаблицаПлатежныхДокументов", ТаблицаПлатежныхДокументов);
- ДанныеШапки.Вставить("ПоДокументу", ПоДокументу);
- // Валюта
- Если ЗначениеЗаполнено(Реквизиты.Валюта) Тогда
- Валюта = Реквизиты.Валюта.НаименованиеПолное + ", " + Реквизиты.Валюта.Код;
- Иначе
- Валюта = "";
- КонецЕсли;
- ДанныеШапки.Вставить("Валюта", Реквизиты.Валюта);
- ДанныеШапки.Вставить("ВалютаНаименование", Валюта);
- // Сведения о комиссионере
- Если ВыборкаСФ.ЭтоСчетФактураВыданный
- И (ТипЗнч(Реквизиты.Поставщик) = Тип("СправочникСсылка.Контрагенты")
- ИЛИ ТипЗнч(Реквизиты.Поставщик) = Тип("Строка"))
- И ТипЗнч(Реквизиты.Покупатель) = Тип("СправочникСсылка.Контрагенты") Тогда
- Комиссионер = Реквизиты.Организация;
- ИначеЕсли НЕ ВыборкаСФ.ЭтоСчетФактураВыданный
- И ВыборкаСФ.Контрагент <> Реквизиты.Поставщик
- И ВыборкаСФ.ДоговорКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионеромНаЗакупку Тогда
- Комиссионер = ВыборкаСФ.Контрагент;
- Иначе
- Комиссионер = Неопределено;
- КонецЕсли;
- СведенияОКомиссионере = Неопределено;
- Если ЗначениеЗаполнено(Комиссионер) Тогда
- СведенияОКомиссионере = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Комиссионер, ВыборкаСФ.Дата);
- КППКомиссионера = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "КПП,", Ложь);
- ДанныеШапки.Вставить("ПредставлениеКомиссионера", "Составлен комиссионером (агентом): "
- + ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "НаименованиеДляПечатныхФорм,")
- + ", " + ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "ЮридическийАдрес,")
- + ", ИНН/КПП: " + ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "ИНН,", Ложь)
- + ?(ЗначениеЗаполнено(КППКомиссионера), "/" + КППКомиссионера, ""));
- Иначе
- ДанныеШапки.Вставить("ПредставлениеКомиссионера", "");
- КонецЕсли;
- // Данные для подвала
- Если ВыборкаСФ.ЭтоСчетФактураВыданный Тогда
- Если ТипЗнч(Реквизиты.Поставщик) = Тип("Строка") Тогда
- ОрганизацияДляРеквизитовПодвала = Реквизиты.Организация;
- Иначе
- ОрганизацияДляРеквизитовПодвала = Реквизиты.Поставщик;
- КонецЕсли;
- Если ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(ОрганизацияДляРеквизитовПодвала)Тогда
- Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(ОрганизацияДляРеквизитовПодвала, ВыборкаСФ.Дата, Реквизиты.Подразделение);
- Если ЗначениеЗаполнено(ВыборкаСФ.Руководитель) Тогда
- ДанныеФизЛица = УчетЗарплаты.ДанныеФизическихЛиц(Реквизиты.Организация, ВыборкаСФ.Руководитель, ВыборкаСФ.Дата, Истина);
- ДанныеШапки.Вставить("ДолжностьРуководителя", Руководители.РуководительДолжностьПредставление);
- ДанныеШапки.Вставить("ФИОРуководителя", ДанныеФизЛица.Представление);
- ДанныеШапки.Вставить("Руководитель", ДанныеФизЛица.Представление);
- Иначе
- ДанныеШапки.Вставить("ДолжностьРуководителя", Руководители.РуководительДолжностьПредставление);
- ДанныеШапки.Вставить("ФИОРуководителя", Руководители.РуководительПредставление);
- ДанныеШапки.Вставить("Руководитель", Руководители.Руководитель);
- КонецЕсли;
- Если ЗначениеЗаполнено(ВыборкаСФ.ГлавныйБухгалтер) Тогда
- ДанныеФизЛица = УчетЗарплаты.ДанныеФизическихЛиц(Реквизиты.Организация, ВыборкаСФ.ГлавныйБухгалтер, ВыборкаСФ.Дата, Истина);
- ДанныеШапки.Вставить("ФИОГлавногоБухгалтера", ДанныеФизЛица.Представление);
- ДанныеШапки.Вставить("ГлавныйБухгалтер", ДанныеФизЛица.Представление);
- Иначе
- ДанныеШапки.Вставить("ФИОГлавногоБухгалтера", Руководители.ГлавныйБухгалтерПредставление);
- ДанныеШапки.Вставить("ГлавныйБухгалтер", Руководители.ГлавныйБухгалтер);
- КонецЕсли;
- Иначе
- ДанныеШапки.Вставить("ДолжностьРуководителя", НСтр("ru = 'Индивидуальный предприниматель'"));
- ДанныеШапки.Вставить("Свидетельство", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "Свидетельство,"));
- Если ВедетсяУчетНДСПоФЗ81(ВыборкаСФ.Дата)
- И ЗначениеЗаполнено(ВыборкаСФ.Руководитель) Тогда
- ДанныеФизЛица = УчетЗарплаты.ДанныеФизическихЛиц(Реквизиты.Организация, ВыборкаСФ.Руководитель, ВыборкаСФ.Дата, Истина);
- ДанныеШапки.Вставить("ФИОПБОЮЛ", ДанныеФизЛица.Представление);
- Иначе
- ДанныеШапки.Вставить("ФИОПБОЮЛ", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "ФамилияИнициалыФизлица,"));
- КонецЕсли;
- КонецЕсли;
- Иначе
- Если НЕ ТипЗнч(Реквизиты.Поставщик) = Тип("Строка")
- И НЕ ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(Реквизиты.Поставщик) Тогда
- ДанныеШапки.Вставить("Свидетельство", ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "Свидетельство,"));
- КонецЕсли;
- КонецЕсли;
- // Данные для универсального передаточного документа
- Если ДополнитьДаннымиУПД Тогда
- // Наименование экономического субъекта - составителя документа
- Если ЗначениеЗаполнено(Комиссионер) И СведенияОКомиссионере <> Неопределено Тогда
- ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "НаименованиеДляПечатныхФорм,");
- ИННПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "ИНН,", Ложь);
- КПППоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОКомиссионере, "КПП,", Ложь);
- Иначе
- ПредставлениеПоставщика = ДанныеШапки.ПредставлениеПоставщика;
- ИННПоставщика = ДанныеШапки.ИННПоставщика;
- КПППоставщика = ДанныеШапки.КПППоставщика;
- КонецЕсли;
- Если ЗначениеЗаполнено(КПППоставщика) Тогда
- ПредставлениеОрганизации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1, ИНН/КПП %2/%3'"),
- ПредставлениеПоставщика, ИННПоставщика, КПППоставщика);
- ИначеЕсли ЗначениеЗаполнено(ИННПоставщика) Тогда
- ПредставлениеОрганизации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1, ИНН %2'"),
- ПредставлениеПоставщика, ИННПоставщика);
- Иначе
- ПредставлениеОрганизации = ПредставлениеПоставщика;
- КонецЕсли;
- ДанныеШапки.Вставить("ПредставлениеОрганизации", ПредставлениеОрганизации);
- Если ЗначениеЗаполнено(ДанныеШапки.КППпокупателя) Тогда
- ПредставлениеКонтрагента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1, ИНН/КПП %2/%3'"),
- ДанныеШапки.ПредставлениеПокупателя, ДанныеШапки.ИННпокупателя, ДанныеШапки.КППпокупателя);
- ИначеЕсли ЗначениеЗаполнено(ДанныеШапки.ИННпокупателя) Тогда
- ПредставлениеКонтрагента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1, ИНН %2'"),
- ДанныеШапки.ПредставлениеПокупателя, ДанныеШапки.ИННпокупателя);
- Иначе
- ПредставлениеКонтрагента = ДанныеШапки.ПредставлениеПокупателя;
- КонецЕсли;
- ДанныеШапки.Вставить("ПредставлениеКонтрагента", ПредставлениеКонтрагента);
- // Статус
- Если НЕ ЗначениеЗаполнено(ВыборкаСФ.ВидСчетаФактуры) Тогда
- СтатусУПД = 2;
- ДанныеШапки.Вставить("ПоДокументу", "-- от --");
- Иначе
- СтатусУПД = 1;
- КонецЕсли;
- ДанныеШапки.Вставить("СтатусУПД", СтатусУПД);
- // Номер
- Если СтатусУПД = 2 Тогда
- Если ТипЗнч(ВыборкаСФ.ДокументОснование) = Тип("ДокументСсылка.ОказаниеУслуг") Тогда
- ДанныеШапки.Номер = ДанныеШапки.Номер + "/" + ВыборкаСФ.НомерСтроки;
- КонецЕсли;
- КонецЕсли;
- БезПереходаПраваСобственности = (Реквизиты.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером)
- ИЛИ ТипЗнч(Реквизиты.ДокументОснование) = Тип("ДокументСсылка.ПередачаТоваров");
- // Поставщик и Грузоотправитель
- Если БезПереходаПраваСобственности И СтатусУПД = 2 Тогда
- ДанныеШапки.Грузоотправитель = ДанныеШапки.Поставщик;
- ДанныеШапки.ПредставлениеГрузоотправителя = ДанныеШапки.ПредставлениеПоставщика
- + ?(ПустаяСтрока(ДанныеШапки.АдресПоставщика), "", ", ") + ДанныеШапки.АдресПоставщика;
- ДанныеШапки.Поставщик = Неопределено;
- ДанныеШапки.ПредставлениеПоставщика = "--";
- ДанныеШапки.АдресПоставщика = "--";
- ДанныеШапки.ИННПоставщика = "--";
- ДанныеШапки.КПППоставщика = "";
- КонецЕсли;
- // Покупатель и Грузополучатель
- Если БезПереходаПраваСобственности И СтатусУПД = 2 Тогда
- ДанныеШапки.Грузополучатель = ДанныеШапки.Покупатель;
- ДанныеШапки.ПредставлениеГрузополучателя = ДанныеШапки.ПредставлениеПокупателя
- + ?(ПустаяСтрока(ДанныеШапки.АдресПокупателя), "", ", ") + ДанныеШапки.АдресПокупателя;
- ДанныеШапки.Покупатель = Неопределено;
- ДанныеШапки.ПредставлениеПокупателя = "--";
- ДанныеШапки.АдресПокупателя = "--";
- ДанныеШапки.ИННПокупателя = "--";
- ДанныеШапки.КПППокупателя = "";
- КонецЕсли;
- // Основание передачи (сдачи)
- Основание = СокрП(Реквизиты.Основание);
- ФИОТоварПолучил = "";
- Если ЗначениеЗаполнено(Реквизиты.ДоверенностьНомер)
- ИЛИ ЗначениеЗаполнено(Реквизиты.ДоверенностьДата)
- ИЛИ ЗначениеЗаполнено(Реквизиты.ДоверенностьВыдана)
- Тогда
- Доверенность = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'по доверенности №%1 от %2 выданной %3'"),
- Реквизиты.ДоверенностьНомер, Формат(Реквизиты.ДоверенностьДата, "ДЛФ=ДД"),
- Реквизиты.ДоверенностьВыдана);
- Основание = Основание + ?(ПустаяСтрока(Основание), "", "; ") + Доверенность;
- ФИОТоварПолучил = Реквизиты.ДоверенностьЧерезКого;
- ИначеЕсли ЗначениеЗаполнено(Реквизиты.ДоверенностьЧерезКого) Тогда
- ФИОТоварПолучил = Реквизиты.ДоверенностьЧерезКого+?(ЗначениеЗаполнено(Реквизиты.ЗаЗаказчикаНаОсновании),", "+Реквизиты.ЗаЗаказчикаНаОсновании,"");
- КонецЕсли;
- ДанныеШапки.Вставить ("Основание", Основание);
- ДанныеШапки.Вставить ("ФИОТоварПолучил", ФИОТоварПолучил);
- Если ВыборкаСФ.ЭтоСчетФактураВыданный Тогда
- // Товар (груз) передал / услуги, результаты работ, права сдал
- Если Реквизиты.ЕстьТовары Тогда
- Кладовщик = ?(ЗначениеЗаполнено(Реквизиты.ОтпускПроизвел), Реквизиты.ОтпускПроизвел,
- ОтветственныеЛицаБП.ОтветственноеЛицоНаСкладе(Реквизиты.Склад, Реквизиты.ДатаОснования));
- ДанныеКладовщика = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(
- Реквизиты.Организация, Кладовщик, Реквизиты.ДатаОснования);
- ДанныеШапки.Вставить ("ДолжностьКладовщика", ДанныеКладовщика.Должность);
- ДанныеШапки.Вставить ("ФИОКладовщика", ДанныеКладовщика.Представление);
- Иначе
- Если ЗначениеЗаполнено(Реквизиты.Исполнитель) Тогда
- ДанныеИсполнителя = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(
- Реквизиты.Организация, Реквизиты.Исполнитель, Реквизиты.ДатаОснования);
- ДанныеШапки.Вставить ("ДолжностьКладовщика", ДанныеИсполнителя.Должность);
- ДанныеШапки.Вставить ("ФИОКладовщика", ?(ЗначениеЗаполнено(ДанныеИсполнителя.Представление), ДанныеИсполнителя.Представление, "")
- + ?(ЗначениеЗаполнено(Реквизиты.ИсполнительПоПриказу), " ", "") + Реквизиты.ИсполнительПоПриказу);
- ИначеЕсли ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(Реквизиты.Поставщик) Тогда
- ДанныеШапки.Вставить ("ДолжностьКладовщика", ДанныеШапки.ДолжностьРуководителя);
- ДанныеШапки.Вставить ("ФИОКладовщика", ДанныеШапки.ФИОРуководителя);
- Иначе
- ДанныеШапки.Вставить ("ДолжностьКладовщика", ДанныеШапки.ДолжностьРуководителя);
- ДанныеШапки.Вставить ("ФИОКладовщика", ДанныеШапки.ФИОПБОЮЛ);
- КонецЕсли;
- КонецЕсли;
- // Дата отгрузки, передачи (сдачи)
- ШаблонДатыОтгрузкиПередачи = Формат(ВыборкаСФ.Дата, "ДФ='« дд » %1 ММММ %2 гггг %3'");
- ДлинаДаты = 30;
- ДобавитьСимволовСлева = Окр((ДлинаДаты - СтрДлина(ШаблонДатыОтгрузкиПередачи))/2, 0);
- ДобавитьСимволовСправа = ДлинаДаты - СтрДлина(ШаблонДатыОтгрузкиПередачи) - ДобавитьСимволовСлева;
- ДатаОтгрузкиПередачи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДатыОтгрузкиПередачи,
- СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", ДобавитьСимволовСлева),
- СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", ДобавитьСимволовСправа),
- НСтр("ru = 'года'"));
- ДанныеШапки.Вставить ("ДатаОтгрузкиПередачи", ДатаОтгрузкиПередачи);
- КонецЕсли;
- КонецЕсли;
- Возврат ДанныеШапки;
- КонецФункции
- Функция ВедетсяУчетНДСПоФЗ81(Дата) Экспорт
- НачалоПримененияФЗ81 = '20140701';
- Если Дата < НачалоПримененияФЗ81 Тогда
- Возврат Ложь;
- Иначе
- Возврат Истина;
- КонецЕсли;
- КонецФункции // ВедетсяУчетНДСПоФЗ81()
- Функция ПодготовитьДанныеДляПечатиСчетовФактур(ДокументОснование, ДанныеСчетаФактуры) Экспорт
- ДанныеДляПечати = Новый Структура;
- СчетФактураПолученныйИзСтранТаможенногоСоюза =
- УчетНДС.КонтрагентРезидентТаможенногоСоюза(ДанныеСчетаФактуры.Контрагент)
- И ТипЗнч(ДанныеСчетаФактуры.СчетФактура) = Тип("ДокументСсылка.СчетФактураПолученный");
- Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ПринятиеКУчетуОС")
- ИЛИ СчетФактураПолученныйИзСтранТаможенногоСоюза Тогда
- ДанныеДляПечати.Вставить("Реквизиты", Неопределено);
- ДанныеДляПечати.Вставить("ТаблицаДокумента", Неопределено);
- Возврат ДанныеДляПечати;
- КонецЕсли;
- ВалютаРеглУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
- ДополнительнаяКолонкаПечатныхФормДокументов = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
- Если НЕ ЗначениеЗаполнено(ДополнительнаяКолонкаПечатныхФормДокументов) Тогда
- ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
- КонецЕсли;
- Если НЕ ДанныеСчетаФактуры.Свойство("НеподтверждениеНулевойСтавки") Тогда
- ДанныеСчетаФактуры.Вставить("НеподтверждениеНулевойСтавки", Ложь);
- КонецЕсли;
- Если НЕ ДанныеСчетаФактуры.Свойство("СводныйКомиссионный") Тогда
- ДанныеСчетаФактуры.Вставить("СводныйКомиссионный", Ложь);
- КонецЕсли;
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("ВалютаРеглУчета", ВалютаРеглУчета);
- Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
- СводныйСФКомиссияПоЗакупке = Ложь;
- СводныйСФКомиссияПоПродаже = Ложь;
- ПредставлениеПоставщика = "";
- АдресПоставщика = "";
- Грузоотправитель = "";
- ИННКПППоставщика = "";
- ПредставлениеПокупателя = "";
- АдресПокупателя = "";
- Грузополучатель = "";
- ИННКПППокупателя = "";
- Если ДанныеСчетаФактуры.СводныйКомиссионный Тогда
- Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.СчетФактураВыданный") Тогда
- //значит авансовый, нужно определить по закупке или по продаже
- Если ДанныеСчетаФактуры.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
- //Значит авансовый выданный комиссионером (комиссия по закупке)
- СводныйСФКомиссияПоЗакупке = Истина;
- ПараметрыСводногоСФПоКомиссии = ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоЗакупке(ДанныеСчетаФактуры.СчетФактура, ДанныеСчетаФактуры.ВидСчетаФактуры);
- ПредставлениеПоставщика = ПараметрыСводногоСФПоКомиссии.ПредставлениеПоставщика;
- АдресПоставщика = ПараметрыСводногоСФПоКомиссии.АдресПоставщика;
- Грузоотправитель = ПараметрыСводногоСФПоКомиссии.Грузоотправитель;
- ИННКПППоставщика = ПараметрыСводногоСФПоКомиссии.ИННКПППоставщика;
- Иначе
- //Значит авансовый выданный комитентом (комиссия по продаже)
- СводныйСФКомиссияПоПродаже = Истина;
- ПараметрыСводногоСФПоКомиссии = ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоПродаже(ДанныеСчетаФактуры.СчетФактура, ДанныеСчетаФактуры.ВидСчетаФактуры);
- ПредставлениеПокупателя = ПараметрыСводногоСФПоКомиссии.ПредставлениеПокупателя;
- АдресПокупателя = ПараметрыСводногоСФПоКомиссии.АдресПокупателя;
- Грузополучатель = ПараметрыСводногоСФПоКомиссии.Грузополучатель;
- ИННКПППокупателя = ПараметрыСводногоСФПоКомиссии.ИННКПППокупателя;
- КонецЕсли;
- ИначеЕсли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ОтчетКомитентуОПродажах")
- И ЗначениеЗаполнено(ДанныеСчетаФактуры.СчетФактура.Продавец) Тогда
- //Значит комиссия по закупке СФ выданный комиссионером
- СводныйСФКомиссияПоЗакупке = Истина;
- ПараметрыСводногоСФПоКомиссии = ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоЗакупке(ДанныеСчетаФактуры.СчетФактура, ДанныеСчетаФактуры.ВидСчетаФактуры);
- ПредставлениеПоставщика = ПараметрыСводногоСФПоКомиссии.ПредставлениеПоставщика;
- АдресПоставщика = ПараметрыСводногоСФПоКомиссии.АдресПоставщика;
- Грузоотправитель = ПараметрыСводногоСФПоКомиссии.Грузоотправитель;
- ИННКПППоставщика = ПараметрыСводногоСФПоКомиссии.ИННКПППоставщика;
- ИначеЕсли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ОтчетКомиссионераОПродажах") Тогда
- //Значит комиссия по продаже СФ выданный комитентом
- СводныйСФКомиссияПоПродаже = Истина;
- ПараметрыСводногоСФПоКомиссии = ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоПродаже(ДанныеСчетаФактуры.СчетФактура, ДанныеСчетаФактуры.ВидСчетаФактуры);
- ПредставлениеПокупателя = ПараметрыСводногоСФПоКомиссии.ПредставлениеПокупателя;
- АдресПокупателя = ПараметрыСводногоСФПоКомиссии.АдресПокупателя;
- Грузополучатель = ПараметрыСводногоСФПоКомиссии.Грузополучатель;
- ИННКПППокупателя = ПараметрыСводногоСФПоКомиссии.ИННКПППокупателя;
- ИначеЕсли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
- //Значит комиссия по закупке СФ полученный от комиссионера
- СводныйСФКомиссияПоЗакупке = Истина;
- ПараметрыСводногоСФПоКомиссии = ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоЗакупке(ДанныеСчетаФактуры.СчетФактура, ДанныеСчетаФактуры.ВидСчетаФактуры);
- ПредставлениеПоставщика = ПараметрыСводногоСФПоКомиссии.ПредставлениеПоставщика;
- АдресПоставщика = ПараметрыСводногоСФПоКомиссии.АдресПоставщика;
- Грузоотправитель = ПараметрыСводногоСФПоКомиссии.Грузоотправитель;
- ИННКПППоставщика = ПараметрыСводногоСФПоКомиссии.ИННКПППоставщика;
- КонецЕсли;
- КонецЕсли;
- Запрос.УстановитьПараметр("СводныйСФКомиссияПоЗакупке", СводныйСФКомиссияПоЗакупке);
- Запрос.УстановитьПараметр("СводныйСФКомиссияПоПродаже", СводныйСФКомиссияПоПродаже);
- Запрос.УстановитьПараметр("ПредставлениеПоставщика", ПредставлениеПоставщика);
- Запрос.УстановитьПараметр("АдресПоставщика", АдресПоставщика);
- Запрос.УстановитьПараметр("Грузоотправитель", Грузоотправитель);
- Запрос.УстановитьПараметр("ИННКПППоставщика", ИННКПППоставщика);
- Запрос.УстановитьПараметр("ПредставлениеПокупателя", ПредставлениеПокупателя);
- Запрос.УстановитьПараметр("АдресПокупателя", АдресПокупателя);
- Запрос.УстановитьПараметр("Грузополучатель", Грузополучатель);
- Запрос.УстановитьПараметр("ИННКПППокупателя", ИННКПППокупателя);
- Запрос.УстановитьПараметр("СчетФактура", ДанныеСчетаФактуры.СчетФактура);
- Запрос.УстановитьПараметр("ВидСчетаФактуры", ДанныеСчетаФактуры.ВидСчетаФактуры);
- Запрос.УстановитьПараметр("Контрагент", ДанныеСчетаФактуры.Контрагент);
- Запрос.УстановитьПараметр("ДоговорКонтрагента", ДанныеСчетаФактуры.ДоговорКонтрагента);
- Запрос.УстановитьПараметр("ИспользуетсяПостановлениеНДС1137", ДанныеСчетаФактуры.ИспользуетсяПостановлениеНДС1137);
- Запрос.УстановитьПараметр("НеподтверждениеНулевойСтавки", ДанныеСчетаФактуры.НеподтверждениеНулевойСтавки);
- Запрос.УстановитьПараметр("ПустоеПодразделение", БухгалтерскийУчетПереопределяемый.ПустоеПодразделение());
- Запрос.УстановитьПараметр("ТекстБезАкциза", ?(ДанныеСчетаФактуры.ИспользуетсяПостановлениеНДС1137, НСтр("ru = 'без акциза'"), ""));
- Запрос.УстановитьПараметр("ТекстКомиссионноеВознаграждение", НСтр("ru = 'Комиссионное вознаграждение'"));
- Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов",
- ДополнительнаяКолонкаПечатныхФормДокументов);
- НомераТаблиц = Новый Структура;
- Запрос.Текст = Документы[ДокументОснование.Метаданные().Имя].ТекстЗапросаДанныеДляПечатиСчетовФактур(НомераТаблиц)
- + ТекстЗапросаДанныеДляПечатиСчетовФактур(НомераТаблиц);
- Результат = Запрос.ВыполнитьПакет();
- Если Результат[НомераТаблиц.Реквизиты].Пустой()
- ИЛИ Результат[НомераТаблиц.ТаблицаДокумента].Пустой() Тогда
- ДанныеДляПечати.Вставить("Реквизиты", Неопределено);
- ДанныеДляПечати.Вставить("ТаблицаДокумента", Неопределено);
- Возврат ДанныеДляПечати;
- КонецЕсли;
- ТаблицаРеквизиты = Результат[НомераТаблиц.Реквизиты].Выгрузить();
- ТаблицаДокумента = Результат[НомераТаблиц.ТаблицаДокумента].Выгрузить();
- Реквизиты = ТаблицаРеквизиты[0];
- РасчетыВУсловныхЕдиницах = ?(ТипЗнч(Реквизиты.РасчетыВУсловныхЕдиницах) = Тип("Булево"), Реквизиты.РасчетыВУсловныхЕдиницах, Ложь);
- НуженПересчетВРубли = (РасчетыВУсловныхЕдиницах ИЛИ ДанныеСчетаФактуры.НеподтверждениеНулевойСтавки)
- И Реквизиты.Валюта <> ВалютаРеглУчета
- И (ДанныеСчетаФактуры.ИспользуетсяПостановлениеНДС1137
- ИЛИ УчетнаяПолитика.ФормироватьСчетФактуруПоУЕвРублях(Реквизиты.Организация, Реквизиты.ДатаОснования));
- Если НуженПересчетВРубли Тогда
- ТаблицаРеквизиты.ЗаполнитьЗначения(ВалютаРеглУчета, "Валюта");
- КонецЕсли;
- СчетФактураНаРеализацию = ДанныеСчетаФактуры.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
- Для каждого СтрокаДокумента Из ТаблицаДокумента Цикл
- Если НуженПересчетВРубли Тогда
- СтрокаДокумента.Всего = СтрокаДокумента.ВсегоРуб;
- СтрокаДокумента.СуммаНДС = СтрокаДокумента.НДСРуб;
- СтрокаДокумента.Цена = 0;
- КонецЕсли;
- // Определяем окончательную сумму без НДС с учетом всех корректировок и цену
- СтрокаДокумента.СуммаБезНДС = СтрокаДокумента.Всего - СтрокаДокумента.СуммаНДС;
- Если СчетФактураНаРеализацию
- И (СтрокаДокумента.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120
- ИЛИ СтрокаДокумента.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118
- ИЛИ СтрокаДокумента.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110) Тогда
- // В счетах-фактурах, составляемых по товарам (работам, услугам),
- // реализуемым по государственным регулируемым ценам,
- // в графе 7 следует указывать ставку налога в размере 18 (10) процентов,
- // а в графе 5 – стоимость поставляемых по счету-фактуре товаров
- // (выполненных работ, оказанных услуг) без налога на добавленную стоимость
- Если СтрокаДокумента.Количество <> 0 Тогда
- СтрокаДокумента.Цена = Окр(СтрокаДокумента.Всего / СтрокаДокумента.Количество, 2);
- КонецЕсли;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(СтрокаДокумента.ЕдиницаИзмерения) Тогда
- СтрокаДокумента.Количество = 0;
- СтрокаДокумента.Цена = 0;
- ИначеЕсли СтрокаДокумента.Количество = 0 Тогда
- СтрокаДокумента.ЕдиницаИзмерения = "";
- СтрокаДокумента.Цена = 0;
- ИначеЕсли СтрокаДокумента.Цена = 0 Тогда
- СтрокаДокумента.Цена = Окр(СтрокаДокумента.СуммаБезНДС / СтрокаДокумента.Количество, 2);
- КонецЕсли;
- КонецЦикла;
- ТаблицаРеквизиты.Колонки.Добавить("ДокументОснование", Документы.ТипВсеСсылки());
- ТаблицаРеквизиты.ЗаполнитьЗначения(ДокументОснование, "ДокументОснование");
- Если ТаблицаРеквизиты.Колонки.Найти("СводныйСФКомиссияПоЗакупке") = Неопределено Тогда
- ТаблицаРеквизиты.Колонки.Добавить("СводныйСФКомиссияПоЗакупке", Новый ОписаниеТипов("Булево"));
- ТаблицаРеквизиты.ЗаполнитьЗначения(Ложь, "СводныйСФКомиссияПоЗакупке");
- КонецЕсли;
- Если ТаблицаРеквизиты.Колонки.Найти("СводныйСФКомиссияПоПродаже") = Неопределено Тогда
- ТаблицаРеквизиты.Колонки.Добавить("СводныйСФКомиссияПоПродаже", Новый ОписаниеТипов("Булево"));
- ТаблицаРеквизиты.ЗаполнитьЗначения(Ложь, "СводныйСФКомиссияПоПродаже");
- КонецЕсли;
- ДанныеДляПечати.Вставить("Реквизиты", ТаблицаРеквизиты);
- ДанныеДляПечати.Вставить("ТаблицаДокумента", ТаблицаДокумента);
- Возврат ДанныеДляПечати;
- КонецФункции
- Функция ТекстЗапросаДанныеДляПечатиСчетовФактур(НомераТаблиц)
- НомераТаблиц.Вставить("ТаблицаДокумента", НомераТаблиц.Количество());
- ТекстЗапроса =
- "ВЫБРАТЬ
- | ТаблицаДокумента.НомерТабЧасти КАК НомерТабЧасти,
- | ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.Товар = ""СуммоваяРазница""
- | ТОГДА НЕОПРЕДЕЛЕНО
- | ИНАЧЕ ТаблицаДокумента.Товар
- | КОНЕЦ КАК Товар,
- | ВЫБОР
- | КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код)
- | ТОГДА ТаблицаДокумента.ТоварКод
- | КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
- | ТОГДА ТаблицаДокумента.ТоварАртикул
- | ИНАЧЕ """"
- | КОНЕЦ КАК ТоварКод,
- | ТаблицаДокумента.ТоварНаименование КАК ТоварНаименование,
- | ТаблицаДокумента.СтранаПроисхождения КАК СтранаПроисхождения,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
- | ТОГДА """"
- | ИНАЧЕ ЕСТЬNULL(СтраныМира.Наименование, """")
- | КОНЕЦ КАК ПредставлениеСтраны,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
- | ТОГДА """"
- | ИНАЧЕ ЕСТЬNULL(СтраныМира.Код, """")
- | КОНЕЦ КАК СтранаПроисхожденияКод,
- | ТаблицаДокумента.НомерГТД КАК НомерГТД,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.СтранаПроисхождения = ЗНАЧЕНИЕ(Справочник.СтраныМира.РОССИЯ)
- | ТОГДА """"
- | ИНАЧЕ ТаблицаДокумента.ПредставлениеГТД
- | КОНЕЦ КАК ПредставлениеГТД,
- | ТаблицаДокумента.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
- | ЕСТЬNULL(КлассификаторЕдиницИзмерения.Код, """") КАК ЕдиницаИзмеренияКод,
- | ЕСТЬNULL(КлассификаторЕдиницИзмерения.Наименование, """") КАК ЕдиницаИзмеренияНаименование,
- | ТаблицаДокумента.Количество КАК Количество,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.СуммаВключаетНДС
- | И НЕ &НеподтверждениеНулевойСтавки
- | ТОГДА ВЫБОР
- | КОГДА ТаблицаДокумента.Количество = 0
- | ТОГДА 0
- | КОГДА ТаблицаДокумента.СуммаНДС = 0
- | ТОГДА ТаблицаДокумента.Цена
- | ИНАЧЕ ВЫРАЗИТЬ((ТаблицаДокумента.Сумма - ТаблицаДокумента.СуммаНДС) / ТаблицаДокумента.Количество КАК ЧИСЛО(15, 2))
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.Цена
- | КОНЕЦ КАК Цена,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.СуммаВключаетНДС
- | И НЕ &НеподтверждениеНулевойСтавки
- | ТОГДА ТаблицаДокумента.Сумма
- | ИНАЧЕ ТаблицаДокумента.Сумма + ВЫБОР
- | КОГДА &НеподтверждениеНулевойСтавки
- | ТОГДА ТаблицаДокумента.Сумма * ВЫБОР
- | КОГДА СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИЛИ СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
- | ТОГДА 0.1
- | ИНАЧЕ 0.18
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.СуммаНДС
- | КОНЕЦ
- | КОНЕЦ КАК Всего,
- | ВЫБОР
- | КОГДА ТаблицаДокумента.Товар = ""СуммоваяРазница""
- | ТОГДА 0
- | ИНАЧЕ ВЫБОР
- | КОГДА ТаблицаДокумента.СуммаВключаетНДС
- | ТОГДА ТаблицаДокумента.Сумма - ТаблицаДокумента.СуммаНДС
- | ИНАЧЕ ТаблицаДокумента.Сумма
- | КОНЕЦ
- | КОНЕЦ КАК СуммаБезНДС,
- | ВЫБОР
- | КОГДА &НеподтверждениеНулевойСтавки
- | ТОГДА ТаблицаДокумента.Сумма * ВЫБОР
- | КОГДА СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИЛИ СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
- | ТОГДА 0.1
- | ИНАЧЕ 0.18
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.СуммаНДС
- | КОНЕЦ КАК СуммаНДС,
- | ВЫБОР
- | КОГДА &НеподтверждениеНулевойСтавки
- | ТОГДА ВЫБОР
- | КОГДА СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИЛИ СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
- | ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.СтавкаНДС
- | КОНЕЦ КАК СтавкаНДС,
- | &ТекстБезАкциза КАК Акциз,
- | ТаблицаДокумента.Ссылка КАК Ссылка,
- | ТаблицаДокумента.ЭтоКомиссия,
- | ВЫБОР
- | КОГДА &НеподтверждениеНулевойСтавки
- | ТОГДА ТаблицаДокумента.СуммаБезНДСРуб + ТаблицаДокумента.СуммаБезНДСРуб * ВЫБОР
- | КОГДА СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИЛИ СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
- | ТОГДА 0.1
- | ИНАЧЕ 0.18
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.ВсегоРуб
- | КОНЕЦ КАК ВсегоРуб,
- | ВЫБОР
- | КОГДА &НеподтверждениеНулевойСтавки
- | ТОГДА ТаблицаДокумента.СуммаБезНДСРуб * ВЫБОР
- | КОГДА СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
- | ИЛИ СтавкиНДСНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
- | ТОГДА 0.1
- | ИНАЧЕ 0.18
- | КОНЕЦ
- | ИНАЧЕ ТаблицаДокумента.НДСРуб
- | КОНЕЦ КАК НДСРуб,
- | ТаблицаДокумента.СуммаБезНДСРуб,
- | ТаблицаДокумента.КонтрагентСводныйСФ
- |ИЗ
- | ТаблицаДокумента КАК ТаблицаДокумента
- | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтраныМира КАК СтраныМира
- | ПО (СтраныМира.Ссылка = ТаблицаДокумента.СтранаПроисхождения)
- | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторЕдиницИзмерения КАК КлассификаторЕдиницИзмерения
- | ПО (КлассификаторЕдиницИзмерения.Ссылка = ТаблицаДокумента.ЕдиницаИзмерения)
- | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СтавкиНДСНоменклатура
- | ПО (СтавкиНДСНоменклатура.Ссылка = ТаблицаДокумента.Товар)
- |
- |УПОРЯДОЧИТЬ ПО
- | НомерТабЧасти,
- | НомерСтроки";
- Возврат ТекстЗапроса + ОбщегоНазначенияБПВызовСервера.ТекстРазделителяЗапросовПакета();
- КонецФункции
- Функция ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоЗакупке(СчетФактура, ВидСчетаФактуры)
- ПараметрыДляСводногоСФПоКомиссии = Новый Структура;
- ПредставлениеПоставщика = "";
- АдресПоставщика = "";
- Грузоотправитель = "";
- ИННКПППоставщика = "";
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("СчетФактура", СчетФактура);
- Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию Тогда
- ТекстЗапроса =
- "ВЫБРАТЬ
- | ОтчетКомитентуОПродажахПоставщики.Поставщик КАК Поставщик,
- | ВЫБОР
- | КОГДА ЕСТЬNULL(ОтчетКомитентуОПродажахПоставщики.Партия.Грузоотправитель, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
- | ИЛИ ЕСТЬNULL(ОтчетКомитентуОПродажахПоставщики.Партия.Грузоотправитель, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) = ОтчетКомитентуОПродажахПоставщики.Поставщик
- | ТОГДА ""он же""
- | ИНАЧЕ ОтчетКомитентуОПродажахПоставщики.Партия.Грузоотправитель
- | КОНЕЦ КАК Грузоотправитель,
- | ОтчетКомитентуОПродажахПоставщики.Поставщик.ИНН КАК ИННПоставщика,
- | ОтчетКомитентуОПродажахПоставщики.Поставщик.КПП КАК КПППоставщика,
- | ОтчетКомитентуОПродажахПоставщики.Ссылка.Дата
- |ИЗ
- | Документ.ОтчетКомитентуОПродажах.Поставщики КАК ОтчетКомитентуОПродажахПоставщики
- |ГДЕ
- | ОтчетКомитентуОПродажахПоставщики.Ссылка.ПометкаУдаления = ЛОЖЬ
- | И ОтчетКомитентуОПродажахПоставщики.СчетФактура = &СчетФактура
- | И ОтчетКомитентуОПродажахПоставщики.Ссылка.ВыписыватьСчетаФактурыСводно";
- ИначеЕсли ВидСчетаФактуры = Перечисления.ВидСчетаФактурыПолученного.НаПоступление Тогда
- ТекстЗапроса =
- "ВЫБРАТЬ
- | СчетФактураПолученныйПродавцы.Продавец КАК Поставщик,
- | СчетФактураПолученныйПродавцы.Продавец.ИНН КАК ИННПоставщика,
- | СчетФактураПолученныйПродавцы.Продавец.КПП КАК КПППоставщика,
- | ""он же"" КАК Грузоотправитель,
- | СчетФактураПолученныйПродавцы.Ссылка.Дата
- |ИЗ
- | Документ.СчетФактураПолученный.Продавцы КАК СчетФактураПолученныйПродавцы
- |ГДЕ
- | СчетФактураПолученныйПродавцы.Ссылка = &СчетФактура";
- ИначеЕсли ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
- ТекстЗапроса =
- "ВЫБРАТЬ
- | СчетФактураВыданныйАвансы.Контрагент КАК Поставщик,
- | СчетФактураВыданныйАвансы.Контрагент.ИНН КАК ИННПоставщика,
- | СчетФактураВыданныйАвансы.Контрагент.КПП КАК КПППоставщика,
- | СчетФактураВыданныйАвансы.Ссылка.Дата
- |ИЗ
- | Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
- |ГДЕ
- | СчетФактураВыданныйАвансы.Ссылка = &СчетФактура";
- Иначе
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("АдресПоставщика", АдресПоставщика);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("Грузоотправитель", Грузоотправитель);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ИННКПППоставщика", ИННКПППоставщика);
- Возврат ПараметрыДляСводногоСФПоКомиссии;
- КонецЕсли;
- Запрос.Текст = ТекстЗапроса;
- Выборка = Запрос.Выполнить().Выбрать();
- Пока Выборка.Следующий() Цикл
- СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Выборка.Поставщик, Выборка.Дата);
- ПредставлениеПоставщика = ?(ПустаяСтрока(ПредставлениеПоставщика), "", ПредставлениеПоставщика + ";") +
- ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеДляПечатныхФорм,");
- АдресПоставщика = ?(ПустаяСтрока(АдресПоставщика), "", АдресПоставщика + ";") +
- ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,");
- Если ВидСчетаФактуры <> Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
- Если ТипЗнч(Выборка.Грузоотправитель) = Тип("Строка") Тогда
- ПредставлениеГрузоотправителя = Выборка.Грузоотправитель;
- Иначе
- СведенияОГрузоотправителе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Выборка.Грузоотправитель, Выборка.Дата);
- ПредставлениеГрузоотправителя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
- СведенияОГрузоотправителе, "НаименованиеДляПечатныхФорм,ФактическийАдрес,");
- КонецЕсли;
- Грузоотправитель = ?(ПустаяСтрока(Грузоотправитель), "", Грузоотправитель + ";") + ПредставлениеГрузоотправителя;
- КонецЕсли;
- ИННКПППоставщика = ?(ПустаяСтрока(ИННКПППоставщика), "", ИННКПППоставщика + ";") +
- Выборка.ИННПоставщика + ?(ПустаяСтрока(Выборка.КПППоставщика), "", "/" + Выборка.КПППоставщика);
- КонецЦикла;
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("АдресПоставщика", АдресПоставщика);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("Грузоотправитель", Грузоотправитель);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ИННКПППоставщика", ИННКПППоставщика);
- Возврат ПараметрыДляСводногоСФПоКомиссии;
- КонецФункции
- Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаСФ, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
- ТаблицаДокумента = ВыборкаСФ.ТаблицаДокумента;
- // Вывод шапки
- ДанныеШапки = ВыборкаСФ.ДанныеШапки;
- ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
- ОбластьМакета.Параметры.Заполнить(ДанныеШапки);
- Если ЭтоУниверсальныйПередаточныйДокумент Тогда
- НомерСчетаФактуры = "Универсальный передаточный документ № " + ДанныеШапки.Номер + " от " + Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
- ОбластьМакета.Параметры.Номер = ДанныеШапки.Номер;
- ОбластьМакета.Параметры.Дата = Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
- ОбластьМакета.Параметры.НомерИсправления = ДанныеШапки.НомерИсправления;
- ОбластьМакета.Параметры.ДатаИсправления = Формат(ДанныеШапки.ДатаИсправления, "ДЛФ='ДД'");
- ОбластьМакета.Параметры.ПоДокументу = ДанныеШапки.ПоДокументу;
- ОбластьМакета.Параметры.Валюта = ДанныеШапки.ВалютаНаименование;
- ОбластьМакета.Параметры.ПредставлениеПоставщика = ДанныеШапки.ПредставлениеПоставщика;
- ОбластьМакета.Параметры.ИННПоставщика = ?(ДанныеШапки.Свойство("ИННКПППоставщика"),
- ДанныеШапки.ИННКПППоставщика,
- "" + ДанныеШапки.ИННПоставщика + ?(ЗначениеЗаполнено(ДанныеШапки.КПППоставщика), "/" + ДанныеШапки.КПППоставщика, ""));
- ОбластьМакета.Параметры.АдресПоставщика = ДанныеШапки.АдресПоставщика;
- ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = ДанныеШапки.ПредставлениеГрузоотправителя;
- ОбластьМакета.Параметры.ПредставлениеПокупателя = ДанныеШапки.ПредставлениеПокупателя;
- ОбластьМакета.Параметры.ИННПокупателя = ?(ДанныеШапки.Свойство("ИННКПППокупателя"),
- ДанныеШапки.ИННКПППокупателя,
- "" + ДанныеШапки.ИННПокупателя + ?(ЗначениеЗаполнено(ДанныеШапки.КПППокупателя), "/" + ДанныеШапки.КПППокупателя, ""));
- ОбластьМакета.Параметры.АдресПокупателя = ДанныеШапки.АдресПокупателя;
- ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ДанныеШапки.ПредставлениеГрузополучателя;
- Иначе
- НомерСчетаФактуры = "Счет-фактура № " + ДанныеШапки.Номер + " от " + Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
- ОбластьМакета.Параметры.Номер = НомерСчетаФактуры;
- ОбластьМакета.Параметры.НомерИсправления = "Исправление № " + ДанныеШапки.НомерИсправления + " от " + Формат(ДанныеШапки.ДатаИсправления, "ДЛФ='ДД'");
- ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ДанныеШапки.ПредставлениеПоставщика;
- ОбластьМакета.Параметры.АдресПоставщика = "Адрес: " + ДанныеШапки.АдресПоставщика;
- ОбластьМакета.Параметры.ИННПоставщика = "ИНН/КПП продавца: " + ?(ДанныеШапки.Свойство("ИННКПППоставщика"),
- ДанныеШапки.ИННКПППоставщика,
- "" + ДанныеШапки.ИННПоставщика + ?(ЗначениеЗаполнено(ДанныеШапки.КПППоставщика), "/" + ДанныеШапки.КПППоставщика, ""));
- ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: " + ДанныеШапки.ПредставлениеГрузоотправителя;
- ОбластьМакета.Параметры.ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ДанныеШапки.ПредставлениеГрузополучателя;
- ОбластьМакета.Параметры.ПоДокументу = "К платежно-расчетному документу № " + ДанныеШапки.ПоДокументу;
- ОбластьМакета.Параметры.ПредставлениеПокупателя = "Покупатель: " + ДанныеШапки.ПредставлениеПокупателя;
- ОбластьМакета.Параметры.АдресПокупателя = "Адрес: " + ДанныеШапки.АдресПокупателя;
- ОбластьМакета.Параметры.ИННПокупателя = "ИНН/КПП покупателя: " + ?(ДанныеШапки.Свойство("ИННКПППокупателя"),
- ДанныеШапки.ИННКПППокупателя,
- "" + ДанныеШапки.ИННПокупателя + ?(ЗначениеЗаполнено(ДанныеШапки.КПППокупателя), "/" + ДанныеШапки.КПППокупателя, ""));
- ОбластьМакета.Параметры.Валюта = "Валюта: наименование, код " + ДанныеШапки.ВалютаНаименование;
- КонецЕсли;
- ТабДокумент.Вывести(ОбластьМакета);
- // Вывод информации о комиссионере по договорам комиссии на закупку
- Если НЕ ЭтоУниверсальныйПередаточныйДокумент И ЗначениеЗаполнено(ДанныеШапки.ПредставлениеКомиссионера) Тогда
- ОбластьМакета = Макет.ПолучитьОбласть("РеквизитыКомиссионера");
- ОбластьМакета.Параметры.ПредставлениеКомиссионера = ДанныеШапки.ПредставлениеКомиссионера;
- ТабДокумент.Вывести(ОбластьМакета);
- КонецЕсли;
- // Вывод заголовка таблицы
- ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
- ТабДокумент.Вывести(ОбластьМакета);
- // Вывод табличной части
- ОбластьМакета = Макет.ПолучитьОбласть("Строка");
- КоличествоСтраниц = 1;
- СчетФактураБезНДС = Истина;
- НДСНеВыставляетя = Истина;
- НомерСтроки = 0;
- НомерЛиста = 1;
- КоличествоСтрок = ТаблицаДокумента.Количество();
- Для каждого СтрокаДокумента Из ТаблицаДокумента Цикл
- НомерСтроки = НомерСтроки + 1;
- СтрокаДокумента.НомерСтроки = НомерСтроки;
- ОбластьМакета.Параметры.Заполнить(СтрокаДокумента);
- Если НЕ ЗначениеЗаполнено(СтрокаДокумента.СтавкаНДС) Тогда
- ОбластьМакета.Параметры.СтавкаНДС = "--";
- Если СтрокаДокумента.СуммаНДС = 0 Тогда
- ОбластьМакета.Параметры.СуммаНДС = "--";
- КонецЕсли;
- КонецЕсли;
- ДозаполнитьСтрокуСчетаФактуры1137(ОбластьМакета, ВыборкаСФ.ВидСчетаФактуры);
- Если НЕ ПроверитьВыводСчетаФактурыНаСтраницу(ТабДокумент, ОбластьМакета, (НомерСтроки = КоличествоСтрок), Макет, НомерЛиста, НомерСчетаФактуры, ЭтоУниверсальныйПередаточныйДокумент) Тогда
- КоличествоСтраниц = КоличествоСтраниц + 1;
- КонецЕсли;
- ТабДокумент.Вывести(ОбластьМакета);
- СчетФактураБезНДС = СчетФактураБезНДС И СтрокаДокумента.СуммаНДС = 0
- И СтрокаДокумента.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
- НДСНеВыставляетя = НДСНеВыставляетя И СтрокаДокумента.СуммаНДС = 0
- И НЕ ЗначениеЗаполнено(СтрокаДокумента.СтавкаНДС);
- КонецЦикла;
- ТабДокумент.Область(ТабДокумент.ВысотаТаблицы,,ТабДокумент.ВысотаТаблицы,).ВместеСоСледующим = Истина;
- // Вывод итоговых сумм
- ОбластьМакета = Макет.ПолучитьОбласть("Итого");
- Если ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
- ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
- ОбластьМакета.Параметры.ИтогоСтоимость = "--";
- Иначе
- ОбластьМакета.Параметры.ИтогоСтоимость = ТаблицаДокумента.Итог("Стоимость");
- КонецЕсли;
- Если НДСНеВыставляетя Тогда
- ОбластьМакета.Параметры.ИтогоСуммаНДС = "--";
- ИначеЕсли СчетФактураБезНДС Тогда
- ОбластьМакета.Параметры.ИтогоСуммаНДС = "без НДС";
- Иначе
- ОбластьМакета.Параметры.ИтогоСуммаНДС = ТаблицаДокумента.Итог("СуммаНДС");
- КонецЕсли;
- ОбластьМакета.Параметры.ИтогоВсего = ТаблицаДокумента.Итог("Всего");
- ТабДокумент.Вывести(ОбластьМакета);
- // Вывод подвала
- КоличествоЛистов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Документ составлен на%1%2 %3'"), Символы.ПС, КоличествоСтраниц,
- ОбщегоНазначенияБПКлиентСервер.ФормаМножественногоЧисла(
- НСтр("ru = 'листе'"), НСтр("ru = 'листах'"), НСтр("ru = 'листах'"), КоличествоСтраниц));
- ДанныеШапки.Вставить("КоличествоЛистов", КоличествоЛистов);
- ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
- ОбластьМакета.Параметры.Заполнить(ДанныеШапки);
- ТабДокумент.Вывести(ОбластьМакета);
- КонецПроцедуры
- Функция ПроверитьВыводСчетаФактурыНаСтраницу(ТабДокумент, ОбластьТекСтроки, ЭтоПоследняяСтрока, Макет, НомерЛиста, НомерСчетаФактуры, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
- // Проверим возможность вывода табличного документа
- СтрокаСПодвалом = Новый Массив;
- СтрокаСПодвалом.Добавить(ОбластьТекСтроки);
- Если ЭтоПоследняяСтрока Тогда
- // Если последняя строка, то должен поместиться еще итог и подвал
- СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("Итого"));
- СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("Подвал"));
- Если ЭтоУниверсальныйПередаточныйДокумент Тогда
- СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("ПодвалНакладной"));
- КонецЕсли;
- КонецЕсли;
- РезультатПроверки = ОбщегоНазначенияБПВызовСервера.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом);
- Если НЕ РезультатПроверки Тогда
- // Вывод разделителя и заголовка таблицы на новой странице
- НомерЛиста = НомерЛиста + 1;
- ОбластьНумерацияЛистов = Макет.ПолучитьОбласть("НумерацияЛистов");
- ОбластьНумерацияЛистов.Параметры.Номер = НомерСчетаФактуры;
- ОбластьНумерацияЛистов.Параметры.НомерЛиста = НомерЛиста;
- ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
- ТабДокумент.Вывести(ОбластьНумерацияЛистов);
- ТабДокумент.Вывести(Макет.ПолучитьОбласть("ЗаголовокТаблицы"));
- КонецЕсли;
- Возврат РезультатПроверки;
- КонецФункции
- Процедура ДозаполнитьСтрокуСчетаФактуры1137(ОбластьМакета, ВидСчетаФактуры)
- Если ОбластьМакета.Параметры.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
- ОбластьМакета.Параметры.СтавкаНДС = "без НДС";
- ОбластьМакета.Параметры.СуммаНДС = "без НДС";
- КонецЕсли;
- // Проставляем прочерки в незаполненные графы в соответствии с Постановлением 1137
- Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
- ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
- ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
- ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
- ОбластьМакета.Параметры.Количество = "--";
- ОбластьМакета.Параметры.Цена = "--";
- ОбластьМакета.Параметры.Стоимость = "--";
- ОбластьМакета.Параметры.Акциз = "--";
- ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
- ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
- ОбластьМакета.Параметры.ПредставлениеГТД = "--";
- Иначе
- Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
- ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
- ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмеренияКод) Тогда
- ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество) Тогда
- ОбластьМакета.Параметры.Количество = "--";
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Цена) Тогда
- ОбластьМакета.Параметры.Цена = "--";
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ПредставлениеСтраны) Тогда
- ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
- ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
- ОбластьМакета.Параметры.ПредставлениеГТД = "--";
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- Функция ПолучитьДанныеДляПечатиУниверсальногоПередаточногоДокумента(МассивОбъектов, ТекстЗапросаДокументам)
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
- Запрос.Текст = ТекстЗапросаДокументам;
- ТаблицаСчетовФактур = Новый ТаблицаЗначений();
- ТаблицаСчетовФактур.Колонки.Добавить("ДанныеШапки");
- ТаблицаСчетовФактур.Колонки.Добавить("ТаблицаДокумента");
- ТаблицаСчетовФактур.Колонки.Добавить("ДокументыОснования");
- ТаблицаСчетовФактур.Колонки.Добавить("ВидСчетаФактуры");
- ТаблицаСчетовФактур.Колонки.Добавить("СчетФактура");
- ТаблицаСчетовФактур.Колонки.Добавить("СчетФактураБезНДС");
- ТаблицаСчетовФактур.Колонки.Добавить("Дата");
- ТаблицаСчетовФактур.Колонки.Добавить("Ссылка");
- ДанныеСчетаФактуры = Новый Структура("СчетФактура, ВидСчетаФактуры, Контрагент, ДоговорКонтрагента, ИспользуетсяПостановлениеНДС1137");
- ДанныеСчетаФактуры.ИспользуетсяПостановлениеНДС1137 = Истина;
- ВыборкаПоОснованиям = Запрос.Выполнить().Выбрать();
- Пока ВыборкаПоОснованиям.Следующий() Цикл
- Если НЕ ЗначениеЗаполнено(ВыборкаПоОснованиям.ДокументОснование) Тогда
- Продолжить;
- КонецЕсли;
- ДокументыОснования = Новый Массив;
- ДокументыОснования.Добавить(ВыборкаПоОснованиям.ДокументОснование);
- ЗаполнитьЗначенияСвойств(ДанныеСчетаФактуры, ВыборкаПоОснованиям);
- ПараметрыОснования = ПодготовитьДанныеДляПечатиУниверсальныхПередаточныхДокументов(ВыборкаПоОснованиям.ДокументОснование, ДанныеСчетаФактуры);
- Если ПараметрыОснования.Реквизиты = Неопределено ИЛИ ПараметрыОснования.ТаблицаДокумента = Неопределено Тогда
- Продолжить;
- КонецЕсли;
- ТаблицаДокумента = ПараметрыОснования.ТаблицаДокумента;
- ТаблицаДокумента.Колонки.СуммаБезНДС.Имя = "Стоимость";
- ДанныеШапки = ПодготовитьДанныеШапкиУниверсальногоПередаточногоДокумента(ВыборкаПоОснованиям, ПараметрыОснования.Реквизиты[0]);
- СчетФактура = ТаблицаСчетовФактур.Добавить();
- СчетФактура.Дата = ВыборкаПоОснованиям.Дата;
- СчетФактура.СчетФактура = ВыборкаПоОснованиям.СчетФактура;
- СчетФактура.ВидСчетаФактуры = ВыборкаПоОснованиям.ВидСчетаФактуры;
- СчетФактура.СчетФактураБезНДС = ВыборкаПоОснованиям.СчетФактураБезНДС;
- СчетФактура.ДанныеШапки = ДанныеШапки;
- СчетФактура.ТаблицаДокумента = ТаблицаДокумента;
- СчетФактура.ДокументыОснования = ДокументыОснования;
- СчетФактура.Ссылка = ВыборкаПоОснованиям.ДокументОснование;
- КонецЦикла;
- Возврат ТаблицаСчетовФактур;
- КонецФункции
- Функция ПодготовитьДанныеДляПечатиУниверсальныхПередаточныхДокументов(ДокументОснование, ДанныеСчетаФактуры)
- ТекстПустойПоказатель = "--";
- Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ПередачаТоваров") Тогда
- ДанныеДляПечати = Документы.ПередачаТоваров.ПодготовитьДанныеДляПечатиУниверсальныхПередаточныхДокументов(ДокументОснование);
- Иначе
- ДанныеДляПечати = ПодготовитьДанныеДляПечатиСчетовФактур(ДокументОснование, ДанныеСчетаФактуры);
- КонецЕсли;
- // Поля, которые в УПД со статусом 2 должны быть пустыми
- ПустыеПоляУПД = Новый Структура;
- ПустыеПоляУПД.Вставить("Акциз", ТекстПустойПоказатель);
- ПустыеПоляУПД.Вставить("СтавкаНДС", Перечисления.СтавкиНДС.ПустаяСсылка());
- ПустыеПоляУПД.Вставить("НомерГТД", Справочники.НомераГТД.ПустаяСсылка());
- ПустыеПоляУПД.Вставить("ПредставлениеГТД", ТекстПустойПоказатель);
- ПустыеПоляУПД.Вставить("СтранаПроисхождения", Справочники.СтраныМира.ПустаяСсылка());
- ПустыеПоляУПД.Вставить("СтранаПроисхожденияКод", ТекстПустойПоказатель);
- ПустыеПоляУПД.Вставить("ПредставлениеСтраны", ТекстПустойПоказатель);
- Если ДанныеДляПечати.ТаблицаДокумента <> Неопределено Тогда
- Для Каждого СтрокаДокумента Из ДанныеДляПечати.ТаблицаДокумента Цикл
- ЗаполнитьЗначенияСвойств(СтрокаДокумента, ПустыеПоляУПД);
- КонецЦикла;
- КонецЕсли;
- Возврат ДанныеДляПечати;
- КонецФункции
- Функция ПодготовитьДанныеШапкиУниверсальногоПередаточногоДокумента(ВыборкаСФ, Реквизиты)
- Возврат ПодготовитьДанныеШапкиСчетаФактуры1137(ВыборкаСФ, Реквизиты, Неопределено, Истина);
- КонецФункции
- Функция ПолучитьПараметрыСводногоСчетаФактурыКомиссияПоПродаже(СчетФактура, ВидСчетаФактуры)
- ПараметрыДляСводногоСФПоКомиссии = Новый Структура;
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("СчетФактура", СчетФактура);
- Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию Тогда
- Запрос.Текст =
- "ВЫБРАТЬ
- | ОтчетКомиссионераОПродажахПокупатели.Покупатель КАК Покупатель,
- | ОтчетКомиссионераОПродажахПокупатели.Покупатель.ИНН КАК ИННПокупателя,
- | ОтчетКомиссионераОПродажахПокупатели.Покупатель.КПП КАК КПППокупателя,
- | ОтчетКомиссионераОПродажахПокупатели.Ссылка.Дата КАК Дата,
- | ВЫБОР
- | КОГДА ОтчетКомиссионераОПродажахПокупатели.Ссылка.Грузополучатель <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
- | ТОГДА ОтчетКомиссионераОПродажахПокупатели.Ссылка.Грузополучатель
- | ИНАЧЕ ОтчетКомиссионераОПродажахПокупатели.Покупатель
- | КОНЕЦ КАК Грузополучатель
- |ИЗ
- | Документ.ОтчетКомиссионераОПродажах.Покупатели КАК ОтчетКомиссионераОПродажахПокупатели
- |ГДЕ
- | ОтчетКомиссионераОПродажахПокупатели.Ссылка.ПометкаУдаления = ЛОЖЬ
- | И ОтчетКомиссионераОПродажахПокупатели.СчетФактура = &СчетФактура
- | И ОтчетКомиссионераОПродажахПокупатели.Ссылка.ВыписыватьСчетаФактурыСводно";
- Иначе
- //авансовый
- Запрос.Текст =
- "ВЫБРАТЬ
- | СчетФактураВыданныйАвансы.Контрагент КАК Покупатель,
- | СчетФактураВыданныйАвансы.Контрагент.ИНН КАК ИННПокупателя,
- | СчетФактураВыданныйАвансы.Контрагент.КПП КАК КПППокупателя,
- | СчетФактураВыданныйАвансы.Ссылка.Дата
- |ИЗ
- | Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
- |ГДЕ
- | СчетФактураВыданныйАвансы.Ссылка = &СчетФактура";
- КонецЕсли;
- Выборка = Запрос.Выполнить().Выбрать();
- ПредставлениеПокупателя = "";
- АдресПокупателя = "";
- Грузополучатель = "";
- ИННКПППокупателя = "";
- Пока Выборка.Следующий() Цикл
- СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Выборка.Покупатель, Выборка.Дата);
- ПредставлениеПокупателя = ?(ПустаяСтрока(ПредставлениеПокупателя), "", ПредставлениеПокупателя + ";") +
- ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "НаименованиеДляПечатныхФорм,");
- АдресПокупателя = ?(ПустаяСтрока(АдресПокупателя), "", АдресПокупателя + ";") +
- ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес,");
- Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию Тогда
- СведенияОГрузополучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Выборка.Грузополучатель, Выборка.Дата);
- ПредставлениеГрузополучателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
- СведенияОГрузополучателе, "НаименованиеДляПечатныхФорм,ФактическийАдрес,");
- Грузополучатель = ?(ПустаяСтрока(Грузополучатель), "", Грузополучатель + ";") + ПредставлениеГрузополучателя;
- КонецЕсли;
- ИННКПППокупателя = ?(ПустаяСтрока(ИННКПППокупателя), "", ИННКПППокупателя + ";") +
- Выборка.ИННПокупателя + ?(ПустаяСтрока(Выборка.КПППокупателя), "", "/" + Выборка.КПППокупателя);
- КонецЦикла;
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ПредставлениеПокупателя", ПредставлениеПокупателя);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("АдресПокупателя", АдресПокупателя);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("Грузополучатель", Грузополучатель);
- ПараметрыДляСводногоСФПоКомиссии.Вставить("ИННКПППокупателя", ИННКПППокупателя);
- Возврат ПараметрыДляСводногоСФПоКомиссии;
- КонецФункции
- Процедура УстановкаМинимальныхПолейДляПечати(ТабличныйДокумент)
- // Принудительная установка минимальных полей
- Если ТабличныйДокумент.ПолеСлева < 10 Тогда
- ТабличныйДокумент.ПолеСлева = 10;
- КонецЕсли;
- // Проверка на веб-клиент
- СисИнфо = Новый СистемнаяИнформация;
- ЗначениеПоляСправа = ?(ПустаяСтрока(СисИнфо.ИнформацияПрограммыПросмотра), 5, 10);
- Если ТабличныйДокумент.ПолеСправа < ЗначениеПоляСправа Тогда
- ТабличныйДокумент.ПолеСправа = ЗначениеПоляСправа;
- КонецЕсли;
- Если ТабличныйДокумент.ПолеСверху < 5 Тогда
- ТабличныйДокумент.ПолеСверху = 5;
- КонецЕсли;
- Если ТабличныйДокумент.ПолеСнизу < 5 Тогда
- ТабличныйДокумент.ПолеСнизу = 5;
- КонецЕсли;
- КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement