Печатная форма документа "Реализация товаров и услуг" БП 3.0 "Расходная накладная", в колонке Цена меняет цену на "Розничная"

22.10.25

Учетные задачи - Печатные формы

Конфигурация БП3, в печатной форме "Расходная накладная" документа Реализация товаров и услуг меняет цену на "Розничная" (создаёт пользователь).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Внешняя печатная форма РТУ "Расходная накладная" в колонке Цена меняет цену на Розничная
.epf 11,68Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

1. Создаем новую внешнюю обработку и указываем сведения в модуле объекта:

Функция СведенияОВнешнейОбработке() Экспорт
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
    
    ПараметрыРегистрации = Новый Структура;  
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "печать Расходная накладная по цене Розничная");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
    ПараметрыРегистрации.Вставить("Версия", "1.1"); 
    ПараметрыРегистрации.Вставить("Информация", "Печатная Форма Расходная накладная по цене Розничная v1.1"); 
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Расходная накладная по цене <Розничная>",
    "ПФ_MXL_Накладная", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;    
КонецФункции 
Функция ПолучитьТаблицуКоманд()
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;
КонецФункции    
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление; 
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры   
 // 

2. Создаём процедуру Печать

 Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, 
    "ПФ_MXL_Накладная", 
    "Накладная (внешняя) по Розничная", 
    СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати));
КонецПроцедуры // Печать()


3. Копируем макет "ПФ_MXL_Накладная" из РТУ

4. Создаём функцию "СформироватьПечатнуюФорму", туда из Модуля менеджера РТУ вставляем тело функции  ПечатьДокумента, модифицируем запрос (подставляем цену "Розничная", в пропорции считаем НДС)

 

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт  

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

        Если НЕ ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ПервыйДокумент = Ложь;
        // Запомним номер строки, с которой начали выводить текущий документ.
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        // Выводим шапку накладной

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

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

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

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

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

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

        ОбластьКолонкаТовар = Макет.Область("Товар");

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

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

        Сумма    = 0;
        СуммаНДС = 0;
        ВсегоСкидок    = 0;
        ВсегоБезСкидок = 0;
        КоличествоСтрок = 0;

        НомерСтроки = 0;

        Пока Шапка.Следующий() Цикл 
            
            Если Шапка.Номенклатура = Null Тогда 
                Продолжить;
            КонецЕсли;
            
            НомерСтроки = НомерСтроки + 1;

            ОбластьНомера.Параметры.НомерСтроки = НомерСтроки;
            ТабличныйДокумент.Вывести(ОбластьНомера);

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

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

        КонецЦикла;

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

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

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

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

        
        // В табличном документе зададим имя области, в которую был 
        // выведен объект. Нужно для возможности печати покомплектно.
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 
            НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);

         УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ОбластьМакета,ТабличныйДокумент, Шапка, ОбъектыПечати);
        
    КонецЦикла;

    Возврат ТабличныйДокумент;

 КонецФункции

 

5. Загружаем и подключаем.

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.111.25, 3.0.67.54

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    28350    74    30    

101

Адаптация типовых решений 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

31800 руб.

29.06.2023    9632    29    15    

37

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь Оперативный учет Управляемые формы 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

14400 руб.

13.03.2018    66159    241    80    

121

Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С v8.3 Бухгалтерский учет Оперативный учет Управляемые формы 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.

25200 руб.

23.07.2025    1558    4    0    

4

Печатные формы Производство готовой продукции (работ, услуг) Бухгалтер 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Строительство Россия Бухгалтерский учет Платные (руб)

Откройте для себя заполнение КС-2 и КС-3 в "1С:Бухгалтерия 3.0". Вы получаете удобство, скорость и систему, чтобы заполнить, распечатать и сохранить формы КС-2 и КС-3 из документов "Оказание производственных услуг" или "Реализация товаров услуг". Вы можете заполнить дополнительную информацию о материалах из документов "Требование-накладная" и указать сведения, которые не предусмотрены типовой конфигурацией "1С:Бухгалтерия 3.0". Так же доступно множество настроек для формирования КС-2 и КС-3.

6240 руб.

13.02.2019    108479    477    46    

468

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9600 руб.

17.06.2025    1629    5    0    

5

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9000 руб.

02.08.2023    6340    23    5    

39
Для отправки сообщения требуется регистрация/авторизация