Как объединить затраты счетов 20, 25, 26 и 90.02.1 в одном отчете 1С

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

В практике работы с «1С:Бухгалтерия 3.0» часто возникает ситуация, когда типовых отчетов недостаточно, а самописные отчеты требуют доработки из-за нестандартных учетных решений. Рассмотрим распространенный кейс: в компании затраты на производство и управление аккумулируются на счетах 20, 25 и 26, но при этом себестоимость перепродаваемых товаров (например, продуктов питания) списывается напрямую в дебет счета 90.02.1, минуя счета издержек обращения (44). Сложность заключается в том, что у затратных счетов есть аналитика СтатьиЗатрат, а у 90-го счета — только НоменклатурныеГруппы. Разберем подробно, как свести эти данные в один отчет с помощью Системы компоновки данных (СКД).

Анализ проблемы: конфликт аналитик

Прежде чем приступать к правке запроса, проанализируем структуру данных. Счета 20, 25 и 26 в 1С имеют три субконто, одним из которых почти всегда является СтатьиЗатрат. Это позволяет группировать расходы по их экономическому смыслу (аренда, оплата труда, налоги). Счет 90.02.1 (Себестоимость продаж) предназначен для отражения стоимости реализованных товаров и услуг. Его аналитика — НоменклатурныеГруппы. Чтобы включить данные 90-го счета в общий отчет, нам нужно «притянуть» их к единому виду, создав виртуальную статью затрат для себестоимости.

Метод 1: Использование объединения (UNION) в запросе СКД

Это самый надежный способ. Мы добавим к основному запросу по счетам 20, 25, 26 еще один запрос, который будет выбирать обороты по счету 90.02.1. Разберем по шагам, как это сделать в конструкторе запроса.

  1. Откроем схему компоновки данных и перейдем на вкладку Наборы данных.
  2. В существующем запросе нажмем кнопку Объединить/Псевдонимы (или добавим ОБЪЕДИНИТЬ ВСЕ в тексте запроса).
  3. Во второй части запроса выберем таблицу Хозрасчетный.Обороты.
  4. Установим условие по счету: Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеОблагаемыхНДС) (или СебестоимостьПродажНалогообложениеОбщее в зависимости от субсчета).
  5. В поле, где в первом запросе выбирается СтатьяЗатрат, во втором запросе мы должны подставить фиксированное значение или параметр.

Пример структуры кода запроса:


ВЫБРАТЬ
    ХозрасчетныйОбороты.Подразделение КАК Подразделение,
    ХозрасчетныйОбороты.Субконто1 КАК СтатьяЗатрат,
    ХозрасчетныйОбороты.СуммаОборотДт КАК Сумма
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, , Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОбщехозяйственныеРасходы)), , , , ) КАК ХозрасчетныйОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОбороты90.Подразделение,
    &СтатьяСебестоимостьТоваров, -- Параметр для подстановки нужной статьи
    ХозрасчетныйОбороты90.СуммаОборотДт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНалогообложениеОбщее), , НоменклатурнаяГруппа = &НужнаяГруппа, , ) КАК ХозрасчетныйОбороты90

Метод 2: Параметризация номенклатурных групп

Чтобы отчет был гибким, проанализируем ситуацию из сообщения 13. Нам нужно выделить из всего 90-го счета только те обороты, которые относятся к «продуктам питания». Для этого в запросе по 90-му счету добавим условие:

ГДЕ Субконто1 = &НоменклатурнаяГруппаРасходов

В настройках СКД на вкладке Параметры укажем, что этот параметр доступен пользователю. Таким образом, бухгалтер сможет сам выбрать, какие группы товаров считать «затратами» для этого отчета. Важный нюанс: если на 90-м счете не ведется учет по подразделениям, в поле Подразделение следует подставлять пустое значение или «фиктивное» подразделение, иначе данные могут некорректно группироваться в иерархическом отчете.

Метод 3: Использование дополнительных реквизитов (без программирования)

Если мы не хотим «жестко» прописывать статьи затрат в коде, проанализируем возможность использования механизма дополнительных сведений. Рассмотрим этот алгоритм:

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

Этот метод позволяет динамически сопоставлять номенклатурные группы со статьями затрат без изменения конфигурации и написания сложных условий ВЫБОР КОГДА....

Метод 4: Вычисляемые поля в СКД

Разберем ситуацию, когда структуру отчета менять нельзя, а данные нужно просто «подклеить». Мы можем создать Вычисляемое поле с заголовком СтатьяЗатратДляОтчета. Выясним, как прописать выражение для такого поля:

ВЫБОР КОГДА СтатьяЗатрат ЕСТЬ NULL ТОГДА "Себестоимость товаров" ИНАЧЕ СтатьяЗатрат КОНЕЦ

В этом случае, если запрос по 90-му счету возвращает NULL в поле статьи (так как её там физически нет), система сама подставит текстовое название или ссылку на элемент справочника. Это позволит сохранить иерархию (Подразделение -> Статья), о которой шла речь в сообщении 12.

Важные предостережения при работе с 90 счетом

Проанализируем риски, связанные с таким подходом:

  1. Задвоение данных: Если компания решит использовать 44 счет для части расходов, а затем закроет его на 90, добавление в отчет и 44, и 90 счетов приведет к двойному учету одних и тех же сумм. Убедимся, что мы берем только те обороты по 90-му счету, которые корреспондируют со счетом 41 (Товары) или 43 (Готовая продукция). Для этого в виртуальной таблице оборотов лучше использовать ОборотыДтКт.
  2. Отсутствие аналитики: Если в отчете важна детализация до документа-основания, помните, что на 90-м счете регистратором обычно является Реализация товаров и услуг или Отчет о розничных продажах, в то время как на 20-м — Требование-накладная или Начисление зарплаты.
  3. Методология: Использование 90 счета как «затратного» — не совсем типовой путь для 1С. Рассмотрим возможность убедить руководство перейти на использование 44 счета. Это позволит видеть издержки обращения в стандартных отчетах (например, в «Анализе субконто») без доработки конфигурации.

Таким образом, мы выяснили, что наиболее эффективным решением является модификация запроса через ОБЪЕДИНИТЬ ВСЕ с созданием искусственной связи между номенклатурной группой и статьей затрат. Это обеспечит корректное отображение дерева подразделений и позволит бухгалтерии видеть полную картину расходов предприятия в одном окне.

← На главную