Как изменить субконто на забалансовом счете 003.01 и настроить перемещение материалов в 1С:Бухгалтерия

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

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

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

Анализ ограничений платформы и конфигурации

При попытке добавить или заменить виды субконто у предопределенных счетов в Конфигураторе программисты часто сталкиваются с сообщением: «Превышение максимального количества видов субконто у счетов». Разберем причины этой ситуации:

  1. Системное ограничение: В свойстве объекта ПланСчетов.Хозрасчетный установлено ограничение на максимальное количество субконто (обычно это 3). Попытка добавить четвертый разрез аналитики требует изменения свойств самого плана счетов, что крайне не рекомендуется, так как это затронет всю систему.
  2. Предопределенные данные: Счета серии 003 являются предопределенными. Это означает, что их структура жестко зашита в логику программного кода. Многие модули (закрытие месяца, отчеты, механизмы себестоимости) ожидают увидеть на этих счетах именно те субконто, которые были созданы разработчиками фирмы «1С».
  3. Алгоритмы проведения: Даже если вам удастся изменить состав субконто в Конфигураторе, типовые документы (например, «Перемещение товаров» или «Требование-накладная») не «узнают» о ваших изменениях. В их программном коде прописано заполнение только конкретных измерений регистра бухгалтерии.

Методически верные альтернативы изменению счета 003.01

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

Программная доработка документа «Перемещение товаров»

Если бизнес-процесс предполагает массовые перемещения и использование именно счета 003.01, мы можем доработать типовой документ ПеремещениеТоваров. Проблема заключается в том, что при работе с вкладкой «Товары на комиссии» документ не заполняет субконто Контрагент для счета 003, так как логика документа изначально рассчитана на счет 004.

Рассмотрим пошагово, как реализовать автоматическое заполнение субконто Контрагент при перемещении материалов между субсчетами 003.01, 003.02 и т.д.

Шаг 1. Добавление реквизита в табличную часть

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

Шаг 2. Изменение запроса подготовки данных

Нам необходимо найти в модуле менеджера или модуле проведения документа функцию, формирующую временные таблицы для движений. Обычно это ТекстЗапросаВременныеТаблицыДокумента. Добавим выборку нашего нового поля:


// В тексте запроса для таблицы ТоварыНаКомиссии добавляем поле:
ТоварыНаКомиссии.Контрагент КАК Контрагент,

Шаг 3. Модификация алгоритма проведения

Проанализируем функцию ТекстЗапросаПеремещениеКомиссионныхТоваров. Именно здесь формируются данные для регистра бухгалтерии. Нам нужно заменить Неопределено на конкретные значения субконто. Выясним причину, по которой субконто оставалось пустым — в типовом коде для 003 счета не предусмотрена передача контрагента из этого документа.

Отредактируем фрагмент запроса следующим образом:


// Вместо ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) КАК ВидКорСубконто3
// и соответствующего Неопределено, прописываем:

ТоварыНаКомиссии.Контрагент КАК КорСубконто3,
ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) КАК ВидКорСубконто3,
ТоварыНаКомиссии.Контрагент КАК Субконто3,
ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) КАК ВидСубконто3

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

Особенности партионного учета на забалансе

Если ваша задача — внедрить полноценный FIFO на счете 003.01, помните, что автоматическое списание партий реализовано только для балансовых счетов (10, 41 и др.). Для забалансового учета придется:

  1. Добавить субконто Партии (документ поступления) третьим разрезом на счет 003.01.
  2. Дописать в документе перемещения/списания процедуру подбора остатков в разрезе партий.
  3. Убедиться, что при проведении документа поступления давальческого сырья создается запись на 003.01 с заполнением этой партии.

Посмотрим на пример кода, который может использоваться для программного подбора партии (упрощенно):


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

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

Заключение

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

← На главную