Для добавление своей формы нужно в меню Администрирование — Дополнительные отчеты и обработки — нажать кнопку Создать и указать путь к скаченной обработке, по кнопке Печать она добавиться в Журнале и документы Продажи- Счета-фактуры выданные и будет называться "Счет-фактура внешняя".
В конфигураторе нужно открыть эту обработку и подправить таблицу под себя. У меня внизу формы счет-фактуры есть дополнительная надпись, кто может подпись ставить за руководителя и гл.буха . Внимательно правьте под себя модуль, переименовывайте обработку (для начала рекомендую оставить как есть, потом уже сохранившись переделывать).
(текст обработки спрятал в спойлер для удобства (или у кого нету стартмани, как у меня!), кто хочет сам сделать, собственно скопируй код да и шаблон из общих форм конфигурации)
Функция СведенияОВнешнейОбработке() Экспорт
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.СчетФактураВыданный"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Счет-фактура Внешняя"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "СчетФактураВнешняя");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,"Счет-фактура Внешняя", //тут имя как оно будет выглядить в меню по кнопке печати
"СчетФактураВнешняя", //ТУТ нужно строго наименование с процедурой печати
"ВызовСерверногоМетода",
Ложь,
"ПечатьXML");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыПечати = Новый Структура;
ПараметрыВывода.ДоступнаПечатьПоКомплектно=Истина;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"СчетФактураВнешняя", "Счет-фактура Внешняя",
ПечатьСчетовФактур981(МассивОбъектов, ОбъектыПечати, ТекстЗапросаПечатьСчетовФактур(,,Истина), ПараметрыПечати),,
"ПФ_MXL_СчетФактура981");
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры // Печать()
Функция ТекстЗапросаПечатьСчетовФактур(ИспользуетсяПостановлениеНДС1137 = Истина, ДляУниверсальногоПередаточногоДокумента = Ложь, ИспользуетсяПостановлениеНДС981 = Неопределено)
ТекстЗапроса =
"ВЫБРАТЬ
| СчетФактура.Ссылка КАК СчетФактура,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.ДатаИсходногоДокумента
| ИНАЧЕ СчетФактура.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.НомерИсходногоДокумента
| ИНАЧЕ СчетФактура.Номер
| КОНЕЦ КАК Номер,
| СчетФактура.ВидСчетаФактуры КАК ВидСчетаФактуры,
| СчетФактура.Руководитель КАК Руководитель,
| СчетФактура.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
| СчетФактура.СчетФактураБезНДС КАК СчетФактураБезНДС,
| СчетФактура.Исправление КАК Исправление,
| СчетФактура.НомерИсправления КАК НомерИсправления,
| СчетФактура.Дата КАК ДатаИсправления,
| СчетФактура.Дата КАК ДатаСведений,
| НЕ СчетФактура.Исправление КАК УдалитьПрефиксыИзНомера,
| ИСТИНА КАК ЭтоСчетФактураВыданный,
| ИСТИНА КАК ВыводитьСуммуБезНДС,
| СчетФактураДокументыОснования.ДокументОснование КАК ДокументОснование,
| СчетФактураДокументыОснования.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА СчетФактура.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА СчетФактура.Продавец
| ИНАЧЕ СчетФактура.Контрагент
| КОНЕЦ КАК Контрагент,
| ВЫБОР
| КОГДА СчетФактура.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ СчетФактура.ДоговорКонтрагента
| КОНЕЦ КАК ДоговорКонтрагента,
| СчетФактура.ИдентификаторГосКонтракта КАК ИдентификаторГосКонтракта,
| СчетФактура.КППКонтрагента КАК КППСчетаФактуры,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация КАК Организация,
| ВЫБОР
| КОГДА СчетФактура.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактура.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ КАК ВидДоговора,
| СчетФактура.Организация.ОбособленноеПодразделение КАК ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения КАК ЦифровойИндексОбособленногоПодразделения,
| ЛОЖЬ КАК НеподтверждениеНулевойСтавки,
| СчетФактура.СводныйКомиссионный КАК СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ) КАК СчетаФактурыОтИмениОрганизации
|ИЗ
| Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураДокументыОснования
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактура
| ПО СчетФактураДокументыОснования.Ссылка = СчетФактура.Ссылка
|ГДЕ
| СчетФактураДокументыОснования.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ДокументыОснования.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаРеализацию)
| И ТИПЗНАЧЕНИЯ(СчетФактураДокументыОснования.ДокументОснование) <> ТИП(Документ.ПодтверждениеНулевойСтавкиНДС)";
Если ДляУниверсальногоПередаточногоДокумента Тогда
ТекстЗапроса = ТекстЗапроса + "
| И СчетФактура.Дата >= ДАТАВРЕМЯ(2013, 1, 1)
| И ТИПЗНАЧЕНИЯ(СчетФактураДокументыОснования.ДокументОснование) <> ТИП(Документ.ОтчетКомиссионераОПродажах)
| И ТИПЗНАЧЕНИЯ(СчетФактураДокументыОснования.ДокументОснование) <> ТИП(Документ.ОтражениеНачисленияНДС)
| И ТИПЗНАЧЕНИЯ(СчетФактураДокументыОснования.ДокументОснование) <> ТИП(Документ.НачислениеНДСпоСМРхозспособом)";
КонецЕсли;
// СФ на аванс
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " ОБЪЕДИНИТЬ ВСЕ ") +
"ВЫБРАТЬ
| СчетФактура.Ссылка КАК СчетФактура,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.ДатаИсходногоДокумента
| ИНАЧЕ СчетФактура.Дата
| КОНЕЦ КАК Дата,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.НомерИсходногоДокумента
| ИНАЧЕ СчетФактура.Номер
| КОНЕЦ КАК Номер,
| СчетФактура.ВидСчетаФактуры,
| СчетФактура.Руководитель,
| СчетФактура.ГлавныйБухгалтер,
| ЛОЖЬ КАК СчетФактураБезНДС,
| СчетФактура.Исправление,
| СчетФактура.НомерИсправления,
| СчетФактура.Дата КАК ДатаИсправления,
| СчетФактура.Дата КАК ДатаСведений,
| НЕ СчетФактура.Исправление КАК УдалитьПрефиксыИзНомера,
| ИСТИНА КАК ЭтоСчетФактураВыданный,
| ЛОЖЬ КАК ВыводитьСуммуБезНДС,
| СчетФактура.Ссылка КАК ДокументОснование,
| 1 КАК НомерСтроки,
| ВЫБОР
| КОГДА СчетФактура.Контрагент.ОбособленноеПодразделение
| И СчетФактура.Контрагент.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
| ТОГДА СчетФактура.Контрагент.ГоловнойКонтрагент
| ИНАЧЕ СчетФактура.Контрагент
| КОНЕЦ КАК Контрагент,
| СчетФактура.ДоговорКонтрагента,
| СчетФактура.ИдентификаторГосКонтракта,
| СчетФактура.КППКонтрагента КАК КППСчетаФактуры,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация,
| ВЫБОР
| КОГДА СчетФактура.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактура.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ КАК ВидДоговора,
| СчетФактура.Организация.ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения,
| ЛОЖЬ КАК НеподтверждениеНулевойСтавки,
| СчетФактура.СводныйКомиссионный КАК СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ) КАК СчетаФактурыОтИмениОрганизации
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактура
|ГДЕ
| СчетФактура.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ВидСчетаФактуры В (ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс), ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитента), ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку))";
Если НЕ ДляУниверсальногоПередаточногоДокумента Тогда
ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " ОБЪЕДИНИТЬ ВСЕ ") +
"ВЫБРАТЬ
| СчетФактура.Ссылка,
| СчетФактура.Дата,
| СчетФактура.Номер,
| СчетФактура.ВидСчетаФактуры,
| СчетФактура.Руководитель,
| СчетФактура.ГлавныйБухгалтер,
| ЛОЖЬ,
| СчетФактура.Исправление,
| СчетФактура.НомерИсправления,
| СчетФактура.Дата,
| СчетФактура.Дата,
| ИСТИНА,
| ИСТИНА,
| ЛОЖЬ,
| СчетФактура.Ссылка,
| 1,
| ВЫБОР
| КОГДА СчетФактура.Контрагент.ОбособленноеПодразделение
| И СчетФактура.Контрагент.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
| ТОГДА СчетФактура.Контрагент.ГоловнойКонтрагент
| ИНАЧЕ СчетФактура.Контрагент
| КОНЕЦ,
| СчетФактура.ДоговорКонтрагента,
| """",
| СчетФактура.КППКонтрагента,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация,
| ВЫБОР
| КОГДА СчетФактура.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактура.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ,
| СчетФактура.Организация.ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения,
| ЛОЖЬ,
| СчетФактура.СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактура
|ГДЕ
| СчетФактура.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаСуммовуюРазницу)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактура.Ссылка,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.ДатаИсходногоДокумента
| ИНАЧЕ СчетФактура.Дата
| КОНЕЦ,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.НомерИсходногоДокумента
| ИНАЧЕ СчетФактура.Номер
| КОНЕЦ,
| СчетФактура.ВидСчетаФактуры,
| СчетФактура.Руководитель,
| СчетФактура.ГлавныйБухгалтер,
| СчетФактура.СчетФактураБезНДС,
| СчетФактура.Исправление,
| СчетФактура.НомерИсправления,
| СчетФактура.Дата,
| СчетФактура.Дата,
| НЕ СчетФактура.Исправление,
| ИСТИНА,
| ИСТИНА,
| СчетФактура.Ссылка,
| 1,
| ВЫБОР
| КОГДА СчетФактура.Контрагент.ОбособленноеПодразделение
| И СчетФактура.Контрагент.ГоловнойКонтрагент.СтранаРегистрации = ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
| ТОГДА СчетФактура.Контрагент.ГоловнойКонтрагент
| ИНАЧЕ СчетФактура.Контрагент
| КОНЕЦ,
| СчетФактура.ДоговорКонтрагента,
| """",
| СчетФактура.КППКонтрагента,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация,
| ВЫБОР
| КОГДА СчетФактура.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактура.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ,
| СчетФактура.Организация.ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения,
| ЛОЖЬ,
| СчетФактура.СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактура
|ГДЕ
| СчетФактура.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НалоговыйАгент)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактура.Ссылка,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.ДатаИсходногоДокумента
| ИНАЧЕ СчетФактура.Дата
| КОНЕЦ,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.НомерИсходногоДокумента
| ИНАЧЕ СчетФактура.Номер
| КОНЕЦ,
| СчетФактура.ВидСчетаФактуры,
| СчетФактура.Руководитель,
| СчетФактура.ГлавныйБухгалтер,
| СчетФактура.СчетФактураБезНДС,
| СчетФактура.Исправление,
| СчетФактура.НомерИсправления,
| СчетФактура.Дата,
| СчетФактура.Дата,
| НЕ СчетФактура.Исправление,
| ИСТИНА,
| ИСТИНА,
| ПодтверждениеНулевойСтавкиСостав.ДокументОтгрузки,
| ПодтверждениеНулевойСтавкиСостав.НомерСтроки,
| ВЫБОР
| КОГДА СчетФактура.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА СчетФактура.Продавец
| ИНАЧЕ СчетФактура.Контрагент
| КОНЕЦ,
| ВЫБОР
| КОГДА СчетФактура.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ СчетФактура.ДоговорКонтрагента
| КОНЕЦ,
| СчетФактура.ИдентификаторГосКонтракта,
| СчетФактура.КППКонтрагента,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация,
| ВЫБОР
| КОГДА СчетФактура.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактура.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ,
| СчетФактура.Организация.ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения,
| ИСТИНА,
| СчетФактура.СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПодтверждениеНулевойСтавкиНДС.Состав КАК ПодтверждениеНулевойСтавкиСостав
| ПО (ПодтверждениеНулевойСтавкиСостав.СчетФактураВыданный = СчетФактура.Ссылка)
|ГДЕ
| СчетФактура.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаРеализацию)
| И ТИПЗНАЧЕНИЯ(СчетФактура.ДокументОснование) = ТИП(Документ.ПодтверждениеНулевойСтавкиНДС)
| И ТИПЗНАЧЕНИЯ(ПодтверждениеНулевойСтавкиСостав.ДокументОтгрузки) <> ТИП(Документ.СчетФактураВыданный)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактураПоСтавке0.Ссылка,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.ДатаИсходногоДокумента
| ИНАЧЕ СчетФактура.Дата
| КОНЕЦ,
| ВЫБОР
| КОГДА СчетФактура.Исправление
| ТОГДА СчетФактура.НомерИсходногоДокумента
| ИНАЧЕ СчетФактура.Номер
| КОНЕЦ,
| СчетФактура.ВидСчетаФактуры,
| СчетФактура.Руководитель,
| СчетФактура.ГлавныйБухгалтер,
| СчетФактура.СчетФактураБезНДС,
| СчетФактура.Исправление,
| СчетФактура.НомерИсправления,
| СчетФактура.Дата,
| СчетФактура.Дата,
| НЕ СчетФактура.Исправление,
| ИСТИНА,
| ИСТИНА,
| СчетФактураПоСтавке0.ДокументОснование,
| ПодтверждениеНулевойСтавкиСостав.НомерСтроки,
| ВЫБОР
| КОГДА СчетФактураПоСтавке0.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА СчетФактураПоСтавке0.Продавец
| ИНАЧЕ СчетФактураПоСтавке0.Контрагент
| КОНЕЦ,
| ВЫБОР
| КОГДА СчетФактураПоСтавке0.Продавец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ СчетФактураПоСтавке0.ДоговорКонтрагента
| КОНЕЦ,
| СчетФактура.ИдентификаторГосКонтракта,
| СчетФактура.КППКонтрагента,
| СчетФактура.КПППродавца КАК КПППродавца,
| СчетФактура.Организация,
| ВЫБОР
| КОГДА СчетФактураПоСтавке0.ДоговорКонтрагента <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| ТОГДА СчетФактураПоСтавке0.ДоговорКонтрагента.ВидДоговора
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| КОНЕЦ,
| СчетФактура.Организация.ОбособленноеПодразделение,
| СчетФактура.Организация.ЦифровойИндексОбособленногоПодразделения,
| ИСТИНА,
| СчетФактура.СводныйКомиссионный,
| ЕСТЬNULL(СчетФактура.ДоговорКонтрагента.СчетаФактурыОтИмениОрганизации, ЛОЖЬ)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПодтверждениеНулевойСтавкиНДС.Состав КАК ПодтверждениеНулевойСтавкиСостав
| ПО (ПодтверждениеНулевойСтавкиСостав.СчетФактураВыданный = СчетФактура.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураПоСтавке0
| ПО (ПодтверждениеНулевойСтавкиСостав.ДокументОтгрузки = СчетФактураПоСтавке0.Ссылка)
|ГДЕ
| СчетФактура.Ссылка В(&МассивОбъектов)
| И &УсловиеПоДате
| И СчетФактура.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаРеализацию)
| И ТИПЗНАЧЕНИЯ(СчетФактура.ДокументОснование) = ТИП(Документ.ПодтверждениеНулевойСтавкиНДС)
| И ТИПЗНАЧЕНИЯ(ПодтверждениеНулевойСтавкиСостав.ДокументОтгрузки) = ТИП(Документ.СчетФактураВыданный)";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|УПОРЯДОЧИТЬ ПО
| Дата,
| СчетФактура,
| НомерСтроки
|ИТОГИ
| МАКСИМУМ(Дата),
| МАКСИМУМ(Номер),
| МАКСИМУМ(ВидСчетаФактуры),
| МАКСИМУМ(СчетФактураБезНДС),
| МАКСИМУМ(Исправление),
| МАКСИМУМ(НомерИсправления),
| МАКСИМУМ(ДатаИсправления),
| МАКСИМУМ(УдалитьПрефиксыИзНомера),
| МАКСИМУМ(ЭтоСчетФактураВыданный),
| МАКСИМУМ(ВыводитьСуммуБезНДС),
| МАКСИМУМ(НеподтверждениеНулевойСтавки)
|ПО
| СчетФактура" + ОбщегоНазначенияБПВызовСервера.ТекстРазделителяЗапросовПакета();
ТекстЗапроса = ТекстЗапроса +
"ВЫБРАТЬ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка КАК СчетФактура,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.НомерСтроки КАК НомерСтроки,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.ДатаДокумента КАК ДатаДокумента,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.НомерДокумента КАК НомерДокумента,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент
|ИЗ
| Документ.СчетФактураВыданный.ПлатежноРасчетныеДокументы КАК СчетФактураВыданныйПлатежноРасчетныеДокументы
|ГДЕ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка В(&МассивОбъектов)
| И НЕ(СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс)
| ИЛИ СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитента)
| ИЛИ СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактураВыданныйАвансы.Ссылка,
| СчетФактураВыданныйАвансы.НомерСтроки,
| СчетФактураВыданныйАвансы.ДатаПлатежноРасчетногоДокумента,
| СчетФактураВыданныйАвансы.НомерПлатежноРасчетногоДокумента,
| СчетФактураВыданныйАвансы.Контрагент
|ИЗ
| Документ.СчетФактураВыданный.Авансы КАК СчетФактураВыданныйАвансы
|ГДЕ
| СчетФактураВыданныйАвансы.Ссылка В(&МассивОбъектов)
| И СчетФактураВыданныйАвансы.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку)
| И СчетФактураВыданныйАвансы.Ссылка.СводныйКомиссионный";
Если ДляУниверсальногоПередаточногоДокумента Тогда
ТекстЗапроса = ТекстЗапроса + "
| ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактураВыданный.Ссылка,
| 1,
| СчетФактураВыданный.ДатаПлатежноРасчетногоДокумента,
| СчетФактураВыданный.НомерПлатежноРасчетногоДокумента,
| СчетФактураВыданный.Контрагент
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка В(&МассивОбъектов)
| И СчетФактураВыданный.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс)";
Иначе
ТекстЗапроса = ТекстЗапроса + "
|
|ОБЪЕДИНИТЬ ВСЕ
|" +
"ВЫБРАТЬ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка,
| 1,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.ДатаПлатежноРасчетногоДокумента,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.НомерПлатежноРасчетногоДокумента,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданныйПлатежноРасчетныеДокументы
|ГДЕ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка В(&МассивОбъектов)
| И (СчетФактураВыданныйПлатежноРасчетныеДокументы.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс)
| ИЛИ СчетФактураВыданныйПлатежноРасчетныеДокументы.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитента)
| ИЛИ СчетФактураВыданныйПлатежноРасчетныеДокументы.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку)
| И НЕ СчетФактураВыданныйПлатежноРасчетныеДокументы.СводныйКомиссионный)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка,
| 2,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.ДатаДокументаАвансаКомитента,
| СчетФактураВыданныйПлатежноРасчетныеДокументы.НомерДокументаАвансаКомитента,
| ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданныйПлатежноРасчетныеДокументы
|ГДЕ
| СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка В(&МассивОбъектов)
| И СчетФактураВыданныйПлатежноРасчетныеДокументы.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку)";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Если ИспользуетсяПостановлениеНДС1137 Тогда
Если ИспользуетсяПостановлениеНДС981 = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоДате",
"СчетФактура.Дата >= &НачалоПримененияПостановления1137");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПлатежноРасчетныеДокументыУсловиеПоДате",
"СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.Дата >= &НачалоПримененияПостановления1137");
ИначеЕсли ИспользуетсяПостановлениеНДС981 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоДате",
"СчетФактура.Дата >= ДАТАВРЕМЯ(2025,10,1)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПлатежноРасчетныеДокументыУсловиеПоДате",
"СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.Дата >= ДАТАВРЕМЯ(2025,10,1)");
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоДате",
"СчетФактура.Дата МЕЖДУ &НачалоПримененияПостановления1137 И ДАТАВРЕМЯ(2025,09,30,23,59,59)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПлатежноРасчетныеДокументыУсловиеПоДате",
"СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.Дата МЕЖДУ &НачалоПримененияПостановления1137 И ДАТАВРЕМЯ(2025,09,30,23,59,59)");
КонецЕсли;
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеПоДате",
"СчетФактура.Дата < &НачалоПримененияПостановления1137");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПлатежноРасчетныеДокументыУсловиеПоДате",
"СчетФактураВыданныйПлатежноРасчетныеДокументы.Ссылка.Дата < &НачалоПримененияПостановления1137");
КонецЕсли;
//сообщить(текстзапроса);
Возврат ТекстЗапроса + ОбщегоНазначенияБПВызовСервера.ТекстРазделителяЗапросовПакета();
КонецФункции
Функция ПечатьСчетовФактур981(МассивОбъектов, ОбъектыПечати, ТекстЗапросаПоСчетамФактурам, ПараметрыПечати) Экспорт
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ЭкземпляровНаСтранице = 1;
ТабДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетФактураВыданный_СчетФактура981";
УстановкаМинимальныхПолейДляПечати(ТабДокумент);
//Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_СчетФактура981");
Макет = ПолучитьМакет("ПФ_MXL_СчетФактура981");
Возврат ТабличныйДокументСчетаФактуры1137(
Макет, МассивОбъектов, ОбъектыПечати, ТабДокумент, ТекстЗапросаПоСчетамФактурам, ПараметрыПечати);
КонецФункции
Функция ТабличныйДокументСчетаФактуры1137(Макет, МассивОбъектов, ОбъектыПечати, ТабДокумент, ТекстЗапросаПоСчетамФактурам, ПараметрыПечати)
ДанныеСчетовФактур = УчетНДС.ПолучитьДанныеДляПечатиСчетаФактуры1137(МассивОбъектов, ТекстЗапросаПоСчетамФактурам);
ПервыйДокумент = Истина;
Для Каждого ВыборкаСФ ИЗ ДанныеСчетовФактур Цикл
ТаблицаДокумента = ВыборкаСФ.ТаблицаДокумента;
Если ТаблицаДокумента = Неопределено Тогда
Продолжить;
КонецЕсли;
Если НЕ ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаСФ);
// В табличном документе зададим имя области, в которую был выведен объект.
// Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
НомерСтрокиНачало, ОбъектыПечати, ВыборкаСФ.СчетФактура);
УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ТабДокумент, ВыборкаСФ, ОбъектыПечати, ПараметрыПечати);
КонецЦикла;
Возврат ТабДокумент;
КонецФункции
Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаСФ, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
ТаблицаДокумента = ВыборкаСФ.ТаблицаДокумента;
// Вывод шапки
ДанныеШапки = ВыборкаСФ.ДанныеШапки;
ДатаДляПолученияМакета = ?(ДанныеШапки.Исправление, ДанныеШапки.ДатаИсправления, ДанныеШапки.Дата);
ВедетсяУчетНДСПоФЗ56 = УчетНДС.ВедетсяУчетНДСПоФЗ56(ДатаДляПолученияМакета);
ВерсияПостановления1137 = УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(ДатаДляПолученияМакета);
Если ВерсияПостановления1137 >= 4
ИЛИ НЕ ВедетсяУчетНДСПоФЗ56 Тогда
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
Иначе
Если НЕ ЗначениеЗаполнено(Макет.Области.Найти("Шапка625")) Тогда
ТекстИсключения = НСтр("ru = 'C 01.07.2025 г. изменился типовой макет печатной формы счета-фактуры. Для использования
|новой формы необходимо обновить отредактированный ранее макет.
|Вы можете отредактировать макет самостоятельно в разделе ""Администрирование - Печатные формы,
|отчеты, обработки - Макеты печатных форм"" или обратиться к специалисту обслуживающей организации.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка625");
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(ДанныеШапки);
Если ЭтоУниверсальныйПередаточныйДокумент Тогда
НомерСчетаФактуры = "Универсальный передаточный документ № " + ДанныеШапки.Номер + " от " + Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
ОбластьМакета.Параметры.Номер = ДанныеШапки.Номер;
ОбластьМакета.Параметры.Дата = Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
ОбластьМакета.Параметры.НомерИсправления = ДанныеШапки.НомерИсправления;
ОбластьМакета.Параметры.ДатаИсправления = Формат(ДанныеШапки.ДатаИсправления, "ДЛФ='ДД'");
ОбластьМакета.Параметры.ПоДокументу = ДанныеШапки.ПоДокументу;
ОбластьМакета.Параметры.Валюта = ДанныеШапки.ВалютаНаименование;
ОбластьМакета.Параметры.ПредставлениеПоставщика = ДанныеШапки.ПредставлениеПоставщика;
ОбластьМакета.Параметры.ИННПоставщика = ?(ДанныеШапки.Свойство("ИННКПППоставщика"),
ДанныеШапки.ИННКПППоставщика,
"" + ДанныеШапки.ИННПоставщика + ?(ЗначениеЗаполнено(ДанныеШапки.КПППоставщика), "/" + ДанныеШапки.КПППоставщика, ""));
ОбластьМакета.Параметры.АдресПоставщика = ДанныеШапки.АдресПоставщика;
ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = ДанныеШапки.ПредставлениеГрузоотправителя;
ОбластьМакета.Параметры.ПредставлениеПокупателя = ДанныеШапки.ПредставлениеПокупателя;
ОбластьМакета.Параметры.ИННПокупателя = ?(ДанныеШапки.Свойство("ИННКПППокупателя"),
ДанныеШапки.ИННКПППокупателя,
"" + ДанныеШапки.ИННПокупателя + ?(ЗначениеЗаполнено(ДанныеШапки.КПППокупателя), "/" + ДанныеШапки.КПППокупателя, ""));
ОбластьМакета.Параметры.АдресПокупателя = ДанныеШапки.АдресПокупателя;
ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ДанныеШапки.ПредставлениеГрузополучателя;
Иначе
НомерСчетаФактуры = "Счет-фактура № " + ДанныеШапки.Номер + " от " + Формат(ДанныеШапки.Дата, "ДЛФ='ДД'");
ОбластьМакета.Параметры.Номер = НомерСчетаФактуры;
ОбластьМакета.Параметры.НомерИсправления = "Исправление № " + ДанныеШапки.НомерИсправления + " от " + Формат(ДанныеШапки.ДатаИсправления, "ДЛФ='ДД'");
ОбластьМакета.Параметры.ПредставлениеПоставщика = "Продавец: " + ДанныеШапки.ПредставлениеПоставщика;
ОбластьМакета.Параметры.АдресПоставщика = "Адрес: " + ДанныеШапки.АдресПоставщика;
ОбластьМакета.Параметры.ИННПоставщика = "ИНН/КПП продавца: " + ?(ДанныеШапки.Свойство("ИННКПППоставщика"),
ДанныеШапки.ИННКПППоставщика,
"" + ДанныеШапки.ИННПоставщика + ?(ЗначениеЗаполнено(ДанныеШапки.КПППоставщика), "/" + ДанныеШапки.КПППоставщика, ""));
ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: " + ДанныеШапки.ПредставлениеГрузоотправителя;
ОбластьМакета.Параметры.ПредставлениеГрузополучателя = "Грузополучатель и его адрес: " + ДанныеШапки.ПредставлениеГрузополучателя;
ОбластьМакета.Параметры.ПоДокументу = "К платежно-расчетному документу № " + ДанныеШапки.ПоДокументу;
ОбластьМакета.Параметры.ПредставлениеПокупателя = "Покупатель: " + ДанныеШапки.ПредставлениеПокупателя;
ОбластьМакета.Параметры.АдресПокупателя = "Адрес: " + ДанныеШапки.АдресПокупателя;
ОбластьМакета.Параметры.ИННПокупателя = "ИНН/КПП покупателя: " + ?(ДанныеШапки.Свойство("ИННКПППокупателя"),
ДанныеШапки.ИННКПППокупателя,
"" + ДанныеШапки.ИННПокупателя + ?(ЗначениеЗаполнено(ДанныеШапки.КПППокупателя), "/" + ДанныеШапки.КПППокупателя, ""));
ОбластьМакета.Параметры.Валюта = "Валюта: наименование, код " + ДанныеШапки.ВалютаНаименование;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
Если ВедетсяУчетНДСПоФЗ56 Тогда
Если НЕ ЗначениеЗаполнено(Макет.Области.Найти("ИдентификаторГосКонтракта")) Тогда
ТекстИсключения = НСтр("ru = 'C 01.07.2025 г. изменился типовой макет печатной формы счета-фактуры. Для использования
|новой формы необходимо обновить отредактированный ранее макет.
|Вы можете отредактировать макет самостоятельно в разделе ""Администрирование - Печатные формы,
|отчеты, обработки - Макеты печатных форм"" или обратиться к специалисту обслуживающей организации.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("ИдентификаторГосКонтракта");
Если ЭтоУниверсальныйПередаточныйДокумент Тогда
ОбластьМакета.Параметры.ИдентификаторГосКонтракта = ДанныеШапки.ИдентификаторГосКонтракта;
Иначе
Если ВерсияПостановления1137 >= 4 Тогда
ШаблонЗаголовкаГосконтракт = НСтр("ru = 'Идентификатор государственного контракта, договора (соглашения) (при наличии): %1'");
Иначе
ШаблонЗаголовкаГосконтракт = НСтр("ru = 'Идентификатор государственного контракта, договора (соглашения): %1'");
КонецЕсли;
ОбластьМакета.Параметры.ИдентификаторГосКонтракта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонЗаголовкаГосконтракт, ДанныеШапки.ИдентификаторГосКонтракта);
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
// Вывод заголовка таблицы
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
ТабДокумент.Вывести(ОбластьМакета);
// Вывод табличной части
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
КоличествоСтраниц = 1;
СчетФактураБезНДС = Истина;
НДСНеВыставляетя = Истина;
НомерСтроки = 0;
НомерЛиста = 1;
КоличествоСтрок = ТаблицаДокумента.Количество();
Для каждого СтрокаДокумента Из ТаблицаДокумента Цикл
НомерСтроки = НомерСтроки + 1;
СтрокаДокумента.НомерСтроки = НомерСтроки;
Если ВерсияПостановления1137 >= 4 Тогда
Если ЭтоУниверсальныйПередаточныйДокумент Тогда
СтрокаДокумента.Акциз = "без
|акциза";
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.РегистрационныйНомерТД) Тогда
СтрокаДокумента.ПредставлениеГТД = СтрокаДокумента.РегистрационныйНомерТД;
Иначе
СтрокаДокумента.ПредставлениеГТД = "";
СтрокаДокумента.ПредставлениеСтраны = "";
КонецЕсли;
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(СтрокаДокумента);
Если НЕ ЗначениеЗаполнено(СтрокаДокумента.СтавкаНДС) Тогда
ОбластьМакета.Параметры.СтавкаНДС = "--";
Если СтрокаДокумента.СуммаНДС = 0 Тогда
ОбластьМакета.Параметры.СуммаНДС = "--";
КонецЕсли;
КонецЕсли;
ДозаполнитьСтрокуСчетаФактуры1137(ОбластьМакета, ВыборкаСФ.ВидСчетаФактуры);
Если ДанныеШапки.НДСИсчисляетсяНалоговымАгентом Тогда
ОбластьМакета.Параметры.СтавкаНДС = УчетНДС.НадписьСтавкаНДСИсчисляетсяНалоговымАгентом();
ОбластьМакета.Параметры.СуммаНДС = УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом();
ОбластьМакета.Параметры.Всего = УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом();
ОбластьМакета.Параметры.Стоимость = СтрокаДокумента.Стоимость;
КонецЕсли;
Если НЕ ПроверитьВыводСчетаФактурыНаСтраницу(ТабДокумент, ОбластьМакета, (НомерСтроки = КоличествоСтрок), Макет, НомерЛиста, НомерСчетаФактуры, ЭтоУниверсальныйПередаточныйДокумент) Тогда
КоличествоСтраниц = КоличествоСтраниц + 1;
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
СчетФактураБезНДС = СчетФактураБезНДС И СтрокаДокумента.СуммаНДС = 0
И СтрокаДокумента.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
НДСНеВыставляетя = НДСНеВыставляетя И СтрокаДокумента.СуммаНДС = 0
И НЕ ЗначениеЗаполнено(СтрокаДокумента.СтавкаНДС);
КонецЦикла;
ТабДокумент.Область(ТабДокумент.ВысотаТаблицы,,ТабДокумент.ВысотаТаблицы,).ВместеСоСледующим = Истина;
// Вывод итоговых сумм
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
Если ДанныеШапки.НДСИсчисляетсяНалоговымАгентом Тогда
ОбластьМакета.Параметры.ИтогоСтоимость = ТаблицаДокумента.Итог("Стоимость");
ИначеЕсли ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента
ИЛИ ВыборкаСФ.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
ОбластьМакета.Параметры.ИтогоСтоимость = "--";
Иначе
ОбластьМакета.Параметры.ИтогоСтоимость = ТаблицаДокумента.Итог("Стоимость");
КонецЕсли;
Если ДанныеШапки.НДСИсчисляетсяНалоговымАгентом Тогда
ОбластьМакета.Параметры.ИтогоСуммаНДС = УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом();
ИначеЕсли НДСНеВыставляетя Тогда
ОбластьМакета.Параметры.ИтогоСуммаНДС = "--";
ИначеЕсли СчетФактураБезНДС Тогда
ОбластьМакета.Параметры.ИтогоСуммаНДС = "без НДС";
Иначе
ОбластьМакета.Параметры.ИтогоСуммаНДС = ТаблицаДокумента.Итог("СуммаНДС");
КонецЕсли;
Если ДанныеШапки.НДСИсчисляетсяНалоговымАгентом Тогда
ОбластьМакета.Параметры.ИтогоВсего = УчетНДС.НадписьСуммаНДСИсчисляетсяНалоговымАгентом();
Иначе
ОбластьМакета.Параметры.ИтогоВсего = ТаблицаДокумента.Итог("Всего");
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
// Вывод подвала
КоличествоЛистов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Документ составлен на%1%2 %3'"), Символы.ПС, КоличествоСтраниц,
ОбщегоНазначенияБПКлиентСервер.ФормаМножественногоЧисла(
НСтр("ru = 'листе'"), НСтр("ru = 'листах'"), НСтр("ru = 'листах'"), КоличествоСтраниц));
ДанныеШапки.Вставить("КоличествоЛистов", КоличествоЛистов);
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
ОбластьМакета.Параметры.Заполнить(ДанныеШапки);
ТабДокумент.Вывести(ОбластьМакета);
// Вывод информации о комиссионере по договорам комиссии на закупку
Если НЕ ЭтоУниверсальныйПередаточныйДокумент И ЗначениеЗаполнено(ДанныеШапки.ПредставлениеКомиссионера) Тогда
ОбластьМакета = Макет.ПолучитьОбласть("РеквизитыКомиссионера");
ОбластьМакета.Параметры.ПредставлениеКомиссионера = ДанныеШапки.ПредставлениеКомиссионера;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
КонецПроцедуры
Процедура УстановкаМинимальныхПолейДляПечати(ТабличныйДокумент)
// Принудительная установка минимальных полей
Если ТабличныйДокумент.ПолеСлева < 10 Тогда
ТабличныйДокумент.ПолеСлева = 10;
КонецЕсли;
// Проверка на веб-клиент
СисИнфо = Новый СистемнаяИнформация;
ЗначениеПоляСправа = ?(ПустаяСтрока(СисИнфо.ИнформацияПрограммыПросмотра), 5, 10);
Если ТабличныйДокумент.ПолеСправа < ЗначениеПоляСправа Тогда
ТабличныйДокумент.ПолеСправа = ЗначениеПоляСправа;
КонецЕсли;
Если ТабличныйДокумент.ПолеСверху < 5 Тогда
ТабличныйДокумент.ПолеСверху = 5;
КонецЕсли;
Если ТабличныйДокумент.ПолеСнизу < 5 Тогда
ТабличныйДокумент.ПолеСнизу = 5;
КонецЕсли;
КонецПроцедуры
Процедура ДозаполнитьСтрокуСчетаФактуры1137(ОбластьМакета, ВидСчетаФактуры)
Если ОбластьМакета.Параметры.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
ОбластьМакета.Параметры.СтавкаНДС = "без НДС";
ОбластьМакета.Параметры.СуммаНДС = "без НДС";
КонецЕсли;
// Проставляем прочерки в незаполненные графы в соответствии с Постановлением 1137
Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента
ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитентаНаЗакупку Тогда
ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
ОбластьМакета.Параметры.Количество = "--";
ОбластьМакета.Параметры.Цена = "--";
ОбластьМакета.Параметры.Стоимость = "--";
ОбластьМакета.Параметры.Акциз = "--";
ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
ОбластьМакета.Параметры.ПредставлениеГТД = "--";
Иначе
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмеренияКод) Тогда
ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество) Тогда
ОбластьМакета.Параметры.Количество = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Цена) Тогда
ОбластьМакета.Параметры.Цена = "--";
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ПредставлениеСтраны) Тогда
ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
ОбластьМакета.Параметры.ПредставлениеГТД = "--";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПроверитьВыводСчетаФактурыНаСтраницу(ТабДокумент, ОбластьТекСтроки, ЭтоПоследняяСтрока, Макет, НомерЛиста, НомерСчетаФактуры, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
// Проверим возможность вывода табличного документа
СтрокаСПодвалом = Новый Массив;
СтрокаСПодвалом.Добавить(ОбластьТекСтроки);
Если ЭтоПоследняяСтрока Тогда
// Если последняя строка, то должен поместиться еще итог и подвал
СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("Итого"));
СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("Подвал"));
Если ЭтоУниверсальныйПередаточныйДокумент Тогда
СтрокаСПодвалом.Добавить(Макет.ПолучитьОбласть("ПодвалНакладной"));
КонецЕсли;
КонецЕсли;
РезультатПроверки = ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом);
Если НЕ РезультатПроверки Тогда
// Вывод разделителя и заголовка таблицы на новой странице
НомерЛиста = НомерЛиста + 1;
ОбластьНумерацияЛистов = Макет.ПолучитьОбласть("НумерацияЛистов");
ОбластьНумерацияЛистов.Параметры.Номер = НомерСчетаФактуры;
ОбластьНумерацияЛистов.Параметры.НомерЛиста = НомерЛиста;
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Вывести(ОбластьНумерацияЛистов);
ТабДокумент.Вывести(Макет.ПолучитьОбласть("ЗаголовокТаблицы"));
КонецЕсли;
Возврат РезультатПроверки;
КонецФункции
Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Не работает. Падает в дамп.