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

06.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    27418    71    30    

100

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

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

31800 руб.

29.06.2023    9390    28    15    

36

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

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

25200 руб.

23.07.2025    1240    4    0    

4

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

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

14400 руб.

13.03.2018    65707    238    80    

122

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

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

6240 руб.

13.02.2019    107741    473    46    

464

Печатные формы Логистика, склад и ТМЦ Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

6000 руб.

18.02.2019    69011    251    15    

200

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

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

7200 руб.

23.08.2019    62468    196    65    

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