Как разработать отчет по ежедневной себестоимости продукции в 1С:Бухгалтерия 3.0: с СКД или без?

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

При переходе с устаревших конфигураций (например, 1С 7.7 ПУБ) на современные решения вроде 1С:Бухгалтерия 3.0 (БП 3.0) разработчики часто сталкиваются с трудностями при создании аналитических отчетов. Рассмотрим классическую задачу: руководство требует простой ежедневный отчет по выпущенной продукции и ее себестоимости по материалам (счета 20.01 и 43). Отчет должен содержать выпущенное количество продукции, себестоимость с НДС и без, а также транспортные расходы на единицу продукции.

Проанализируем ситуацию и разберем по шагам, как лучше подступиться к этой задаче: писать отчет программно по старинке или использовать Систему компоновки данных (СКД), а также выясним причину, почему получить себестоимость «за вчерашний день» в типовой БП 3.0 не так просто, как кажется.

Выбор инструмента: СКД или макет без СКД?

Исторически разработчики привыкли рисовать макет, писать цикл по выборке из запроса и выводить строки с помощью команд вроде Вывести() и Присоединить(). Однако в реалиях 1С 8.3 на Управляемых формах (УФ) этот подход считается устаревшим. Разберем подробнее оба варианта.

Разработка отчета на Системе компоновки данных (СКД)

В современных конфигурациях СКД является стандартом де-факто для разработки отчетов. Посмотрим на главные преимущества этого подхода:

  1. Автоматическая генерация интерфейса: Платформа сама строит форму отчета. Разработчику не нужно рисовать кнопки, поля ввода параметров и таблицы.
  2. Гибкость для пользователя: Пользователь может самостоятельно добавлять отборы, менять порядок колонок, группировки и условное оформление (например, выделять отрицательные значения красным цветом) без привлечения программиста.
  3. Оптимизация работы: СКД грамотно работает с базой данных, формируя оптимальные запросы и подкачивая данные порциями, что критично для больших баз.

Разработка отчета «без СКД» на Управляемых формах

В отличие от обычных форм (как в 8.1 или 7.7), в Управляемых формах нельзя просто написать код генерации отчета в модуле и сразу показать его пользователю. Посмотрим, что потребуется сделать:

  1. Создать реквизит управляемой формы с типом ТабличныйДокумент.
  2. Вынести этот реквизит на форму.
  3. Нарисовать жесткий Макет с именованными областями.
  4. Написать клиент-серверный код: на сервере выполнить запрос, получить макет, построчно заполнить параметры областей (шапку, строки, подвал), вывести их в реквизит формы и вернуть результат на клиент.

Этот подход до сих пор оправдан для строгих печатных форм (накладных, актов, счетов-фактур), где внешний вид строго регламентирован. Однако для аналитических отчетов он негибок: если начальство попросит добавить группировку по складам, программисту придется переписывать половину отчета.

С чего начать разработку отчета на СКД?

Многие начинающие пугаются обилия настроек в СКД. Как советуют опытные разработчики: «Начни с запроса». Разберем алгоритм действий:

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

Методологические нюансы: Подводные камни расчета себестоимости в БП 3.0

В постановке задачи кроется серьезный архитектурный конфликт с логикой работы типовой конфигурации БП 3.0. Требование руководства — получить отчет по себестоимости «за предыдущий день» на основе бухгалтерских проводок (Дт 43 — Кт 20). Выясним причину, почему стандартными оборотками это сделать не выйдет.

Специфика закрытия месяца в 1С:Бухгалтерии

В БП 3.0 точная фактическая себестоимость продукции не формируется в момент проведения документа выпуска. Она рассчитывается только в конце месяца специальной регламентной операцией ЗакрытиеМесяца (которая распределяет и закрывает счета 20, 23, 25, 26).

В течение месяца на счете 43 обычно отражается только количественный учет или предварительная (плановая) себестоимость. А на счете 20.01 просто накапливаются фактические затраты в разрезе подразделений и номенклатурных групп. Корректировка стоимости и доведение ее до фактической происходит только при закрытии месяца.

Как реализовать требования руководства технически?

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

Рассмотрим, как должен действовать запрос:

  1. Запрос должен выбирать документы выпуска продукции за выбранный день.
  2. Параллельно запрос должен получать данные из документов расхода материалов в производство за этот же день (где в шапке указан счет 20.01).
  3. Затем данные необходимо связать. Единственным надежным звеном будут аналитики: субконто НоменклатурныеГруппы и субконто Продукция.
  4. Затраты материалов распределяются на выпущенную в этот день продукцию пропорционально количеству или плановым долям (по спецификациям).

Важно предупредить руководство: суммы в таком «ежедневном» отчете будут иметь сугубо управленческий характер. В конце месяца, после начисления зарплаты рабочим, амортизации оборудования и распределения общехозяйственных расходов, официальная бухгалтерская себестоимость на счете 43 изменится и не будет совпадать с цифрами из оперативного ежедневного отчета по материалам.

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

← На главную