Почему на счете 10 в конфигураторе нет субконто и как правильно организовать аналитику по госзаказам

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

При настройке аналитического учета в конфигурации «Бухгалтерия предприятия 2.0» разработчики нередко сталкиваются с ситуацией, когда в режиме «Конфигуратор» на закладке Предопределенные у счета 10 («Материалы») и его подчиненных субсчетов (10.01, 10.02 и т.д.) список видов субконто пуст, хотя в режиме «1С:Предприятие» в плане счетов субконто отображаются (например, «Номенклатура», «Склады», «Партии»). Выясним причину такого поведения системы, проанализируем ограничения платформы и рассмотрим правильные варианты реализации учета материалов в разрезе государственных контрактов без разрушения типовой методологии.

Почему субконто отображаются в пользовательском режиме, но отсутствуют в конфигураторе

Разберем архитектуру типовой конфигурации. Отсутствие видов субконто у предопределенных счетов МПЗ в конфигураторе обусловлено двумя факторами:

  1. Иерархия счетов: сам счет 10 является счетом-группой. На счетах-группах (у которых установлен признак запрета использования в проводках) аналитика не ведется, проводки формируются исключительно по подчиненным субсчетам.
  2. Динамическая настройка субконто через параметры учета: в «1С:Бухгалтерии предприятия» состав субконто на счетах учета материально-производственных запасов не «зашит» жестко в структуру метаданных плана счетов. Он настраивается программно в зависимости от настроек информационной базы (форма «Настройка параметров учета»). При включении или отключении учета по складам (количественного или суммового) либо партионного учета (метод ФИФО) система программно добавляет или удаляет соответствующие виды субконто (Склады, Партии) в табличную часть ВидыСубконто конкретных счетов плана счетов. Вид субконто Номенклатура также привязывается к счетам программным кодом при первоначальном заполнении базы.

Технические ограничения платформы при добавлении четвертого субконто

Попытка добавить еще один разрез аналитики (например, справочник ГосЗаказы) напрямую к счету 10 наталкивается на фундаментальные ограничения платформы «1С:Предприятие»:

  1. Лимит максимального количества субконто: в свойствах объекта метаданных ПланСчетовСсылка.Хозрасчетный параметр Максимальное количество субконто в типовом решении установлен равным 3. Если на субсчете уже активны субконто «Номенклатура», «Склады» и «Партии», добавить четвертое субконто без изменения самого плана счетов в конфигураторе невозможно.
  2. Реструктуризация таблиц итогов: изменение свойства Максимальное количество субконто влечет за собой глобальную перестройку таблиц движений и итогов регистра бухгалтерии, что существенно увеличивает размер информационной базы и замедляет проведение любых документов, формирующих проводки.
  3. Сложности обновления: изменение типового плана счетов и вмешательство в общие модули проведения документов приведут к регулярным конфликтам при накатывании типовых обновлений конфигурации.
  4. Перезапись настроек аналитики: при любом повторном сохранении настроек параметров учета типовой алгоритм актуализации субконто может автоматически очистить или изменить добавленную нестандартную аналитику.

Вариант 1. Использование складской аналитики для обособления госзаказов

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

  1. Создадим в справочнике Склады отдельную группу или отдельные элементы под каждый государственный контракт (например, «Склад материалов (Госзаказ №123)»).
  2. Оформим поступление материалов и их перемещение с указанием соответствующего склада госзаказа.
  3. Сформируем стандартный отчет Оборотно-сальдовая ведомость по счету для счета 10 с отбором или группировкой по субконто Склады.

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

Вариант 2. Раздельный учет через отдельный регистр накопления

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

  1. В конфигураторе добавим новый регистр накопления МатериалыПоГосзаказам с видом Остатки.
  2. Определим измерения регистра: Организация, Номенклатура, Склад, Госзаказ.
  3. Определим ресурсы: Количество и Сумма.
  4. Создадим подписку на событие ОбработкаПроведения для документов движения материалов (ПоступлениеТоваровУслуг, ТребованиеНакладная, ПеремещениеТоваров).

Посмотрим на пример кода в общем модуле обработчика подписки, формирующего движения по специализированному регистру накопления:


Процедура ОбработкаПроведенияМатериалыПоГосзаказам(Источник, Отказ, РежимПроведения) Экспорт
    Если Отказ Тогда
        Возврат;
    КонецЕсли;

    // Проверяем заполнение реквизита Госзаказ в табличной части или шапке документа
    Для Каждого Стр Из Источник.Материалы Цикл
        Если ЗначениеЗаполнено(Стр.Госзаказ) Тогда
            Движение = Источник.Движения.МатериалыПоГосзаказам.ДобавитьРасход();
            Движение.Период = Источник.Дата;
            Движение.Организация = Источник.Организация;
            Движение.Номенклатура = Стр.Номенклатура;
            Движение.Склад = Источник.Склад;
            Движение.Госзаказ = Стр.Госзаказ;
            Движение.Количество = Стр.Количество;
            Движение.Сумма = Стр.Сумма;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Для предоставления данных пользователям разработаем внешний или встроенный отчет на базе системы компоновки данных (СКД). Этот отчет предоставит аналогичную оборотно-сальдовой ведомости информацию в разрезе заказов без изменения плана счетов.

Вариант 3. Программное добавление субконто (если лимит в 3 субконто не исчерпан)

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


СчетОбъект = ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.01").ПолучитьОбъект();

// Проверяем, не превышен ли лимит видов субконто
Если СчетОбъект.ВидыСубконто.Количество() < 3 Тогда
    НоваяСтрока = СчетОбъект.ВидыСубконто.Добавить();
    НоваяСтрока.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Госзаказы");
    НоваяСтрока.ТолькоОбороты = Ложь;
    НоваяСтрока.Суммовой = Истина;
    НоваяСтрока.Количественный = Ложь;
    СчетОбъект.Записать();
КонецЕсли;

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

← На главную