Как добавить графу НДС (ставка и сумма) в форму списка документов «Поступление (акты, накладные, УПД)»?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Часто в процессе работы бухгалтеры сталкиваются с необходимостью оперативно видеть итоговую сумму НДС или ставку налога непосредственно в списке документов поступления. Типовая конфигурация 1С:Бухгалтерия 3.0 скрывает эти детали в табличной части каждого отдельного документа, однако, используя современные инструменты разработки, мы можем реализовать вывод этих данных. Давайте разберем, как это сделать правильно, не снимая конфигурацию с поддержки.

Анализ задачи

Прежде чем приступать к доработкам, проанализируем структуру данных. Документ Поступление (акты, накладные, УПД) является объектом с табличной частью. Форма списка использует Динамический список. Это означает, что для вывода дополнительных данных нам необходимо модифицировать запрос этого списка. Важно помнить: если в одном документе содержатся товары с разными ставками НДС, корректное отображение «Ставки НДС» в одной строке списка становится логически сложной задачей. Мы рекомендуем сосредоточиться на выводе итоговой суммы НДС по документу.

Реализация через расширение конфигурации

Самый безопасный и профессиональный метод — использование Расширения конфигурации. Это позволит нам изменить поведение системы, сохранив при этом типовую структуру основной конфигурации для беспрепятственного обновления.

  1. Создание расширения: В конфигураторе перейдите в меню «Конфигурация» — «Расширения». Создайте новое расширение и снимите галочку «Безопасный режим».
  2. Добавление документа: Добавьте в расширение документ ПоступлениеТоваровУслуг.
  3. Модификация формы: Найдите форму списка документов (ФормаСписка) и добавьте её в расширение через «Добавить в расширение» с использованием аннотации &НаСервере.
  4. Изменение запроса динамического списка: Это ключевой этап. Нам необходимо изменить текст запроса ДинамическогоСписка. Разберем пример того, как это выглядит программно:

// Пример изменения запроса динамического списка в расширении
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Список.ТекстЗапроса = "ВЫБРАТЬ
                          |   ПоступлениеТоваровУслуг.Ссылка КАК Ссылка,
                          |   ПоступлениеТоваровУслуг.СуммаНДС КАК СуммаНДС,
                          |   ...
                          |ИЗ
                          |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";
КонецПроцедуры

Особенности вывода нескольких ставок НДС

Рассмотрим ситуацию, когда в документе несколько разных ставок. Если вы выведете поле СтавкаНДС напрямую из табличной части, система может отобразить лишь одну из них или дублировать строки документа. Мы рекомендуем использовать вычисляемые поля или левое соединение с табличной частью с группировкой по ссылке, чтобы получить итоговую сумму НДС по документу в целом, а не по каждой строке.

Для вывода суммы НДС в Динамический список рекомендуется использовать левое соединение с виртуальной таблицей, содержащей агрегаты по табличным частям, либо просто выводить готовое поле СуммаНДС, если оно уже присутствует в шапке документа (в ряде версий БП оно доступно автоматически).

Практические советы

Поздравляем! Теперь вы понимаете, как расширить возможности интерфейса 1С. Использование Расширений и работа с Динамическими списками — это стандарт современной разработки, который поможет вам решать задачи любой сложности профессионально и надежно.

← На главную