Как вывести общую сумму списания в документе Внутреннее потребление товаров в УТ 11

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

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

Причины отсутствия суммы в типовой конфигурации

Для начала проанализируем архитектуру системы. В отличие от более старых редакций, УТ 11 ориентирована на сложный расчет себестоимости. Рассмотрим основные причины отсутствия сумм:

  1. Отложенный расчет себестоимости: Реальная бухгалтерская себестоимость товаров рассчитывается только после выполнения регламентной операции Закрытие месяца (избежать задержки поможет онлайн-расчет себестоимости в УТ 11 при проведении документов). До этого момента в регистры сведений и накоплений записывается только количество.
  2. Настройки интерфейса: Часто колонки Цена и Сумма просто скрыты в форме документа настройками пользователя.
  3. Отсутствие цен в системе: Если в документе выбран вид цены, но сами цены не установлены документом Установка цен номенклатуры, программа не сможет рассчитать оценочную стоимость.

Способ 1. Настройка видимости колонок через интерфейс

Прежде чем приступать к программированию, проверим самые простые настройки. Выясним причину отсутствия полей Цена и Сумма в табличной части Товары. Проделаем следующие шаги:

  1. Откроем документ Внутреннее потребление товаров.
  2. Перейдем в меню Еще — Изменить форму.
  3. В появившемся дереве элементов найдем группу Товары.
  4. Проверим наличие флажков напротив полей Цена и Сумма. Если их нет в списке, значит, в настройках раздела НСИ и администрирование — Склад и доставка отключена опция использования цен во внутренних документах.

Важно: Даже если вы включите эти колонки, они будут заполнены только в том случае, если на вкладке Дополнительно выбран Вид цены, и для этого вида цены в системе зарегистрированы значения на дату документа.

Способ 2. Доработка печатной формы М-11 (Требование-накладная)

Если задача стоит именно в выводе итогов в печатную форму М-11, нам потребуется внести изменения в макет и модуль менеджера документа. Рассмотрим по шагам, как реализовать расчет итога программно.

Рассмотрим ситуацию, когда нам нужно просуммировать значения колонки Сумма из табличной части документа. Для этого в макете ПФ_MXL_М11 необходимо создать область подвала (например, с именем Итог) и добавить туда параметр итогСумма.

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


// Объявляем переменную для накопления суммы
ПеременнаяИтоговаяСумма = 0;

// В цикле обхода строк товаров суммируем значения
Для Каждого СтрокаТовара Из СсылкаНаОбъект.Товары Цикл
    ПеременнаяИтоговаяСумма = ПеременнаяИтоговаяСумма + СтрокаТовара.Сумма;
КонецЦикла;

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

Однако стоит учитывать, что метод Итог() для табличных частей работает быстрее. Мы можем заменить цикл на одну строку кода, если работаем в контексте объекта документа:

СуммаВсего = Ссылка.Товары.Итог("Сумма");

Обратите внимание: Если вы не программист, крайне не рекомендуется править типовую конфигурацию в Конфигураторе (снимать с замка). Это создаст огромные проблемы при последующих обновлениях программы. Правильным решением будет создание Внешней печатной формы — в этом поможет готовый комплект внешних печатных форм для УТ 11.

Способ 3. Работа с внешними печатными формами

Разберем алгоритм создания внешней печатной формы, которая не меняет код основной программы:

  1. В конфигураторе выгружаем типовой макет М-11 во внешний файл.
  2. Создаем новую внешнюю обработку и подключаем этот макет.
  3. В модуле обработки прописываем логику расчета суммы (как показано выше).
  4. В макете в поле формат для ячейки итогСумма указываем ЧЦ=15; ЧДЦ=2, чтобы сумма выводилась с двумя знаками после запятой.
  5. Регистрируем обработку в базе через раздел Администрирование — Печатные формы, отчеты и обработки.

Использование стандартных отчетов как альтернатива

Выясним причину, по которой иногда вообще не стоит дорабатывать документ. Если итоговая сумма нужна для анализа затрат за период, а не для мгновенной печати документа, целесообразнее использовать типовые отчеты системы. После проведения операции Закрытие месяца, когда себестоимость уже рассчитана (быстро исправить ошибки расчета поможет автоматизация закрытия месяца и исправления ошибок расчета себестоимости), мы можем увидеть точные суммы в следующих отчетах:

Важный нюанс по себестоимости: Если в вашей учетной политике настроен метод оценки Средняя за месяц, то до выполнения закрытия месяца в документе Внутреннее потребление товаров сумма будет либо нулевой, либо справочной (по виду цен). Настоящая стоимость появится только в регистрах накопления Себестоимость товаров после финализации периода.

Резюме и рекомендации

Подведем итоги нашего анализа. Для решения проблемы вывода суммы в УТ 11 рекомендуем придерживаться следующей стратегии:

  1. Проверьте, установлены ли в системе Цены номенклатуры для того вида цен, который вы выбираете в документе.
  2. Используйте Изменить форму для отображения скрытых колонок Цена и Сумма.
  3. Для печати бумажного документа М-11 с итогами разработайте или скачайте Внешнюю печатную форму, чтобы не вносить изменения в типовой код конфигурации — для этой задачи подойдёт конструктор печатных форм 1С в пользовательском режиме.
  4. В коде печатной формы используйте метод Итог("Сумма") к табличной части Товары, предварительно убедившись, что колонки заполнены значениями.

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

← На главную