В типовой конфигурации 1С:Бухгалтерия 8 (редакция 3.0) при заполнении документа Отчет производства за смену пользователи часто сталкиваются с ограничением: в поле «Счет затрат» программа позволяет выбрать только счета 20.01 «Основное производство» или 23 «Вспомогательные производства». Однако производственные процессы на предприятиях бывают специфичными, и бухгалтерии может потребоваться указать, например, счет 29 «Обслуживающие производства и хозяйства» или даже 26 «Общехозяйственные расходы» (несмотря на методологические ограничения стандарта ФСБУ 5/2019).
В данной статье мы подробно разберем, почему возникают эти ограничения и как их технически обойти, используя программный код и настройку метаданных. Мы проанализируем ситуацию с точки зрения программиста и затронем важные методологические риски.
Первым делом проанализируем поведение формы документа. В 1С:Бухгалтерии многие фильтры устанавливаются динамически при открытии формы. Если мы откроем модуль формы документа ОтчетПроизводстваЗаСмену и найдем процедуру ПриСозданииНаСервере, то обнаружим вызов специализированного метода общего модуля. Рассмотрим этот фрагмент кода:
// Включим предопределенные счета и их субсчета
УчетПроизводства.ОграничитьВыборСчетамиПрямыхРасходов(Элементы.СчетЗатрат);
Эта строка принудительно ограничивает список доступных для выбора счетов только теми, которые в системе классифицируются как счета прямых производственных затрат. Чтобы снять это ограничение, необходимо вмешаться в работу формы. Мы крайне не рекомендуем снимать конфигурацию с поддержки и редактировать код напрямую. Вместо этого лучше использовать механизм расширений.
В расширении следует создать обработчик-последователь (&После) для процедуры ПриСозданииНаСервере и попытаться либо отменить фильтр, либо переопределить его. Если же вы работаете в копии базы для тестов или конфигурация уже снята с поддержки, простое комментирование этой строки — первый шаг к решению задачи.
Часто одного изменения кода в форме недостаточно. Даже после удаления программного фильтра пользователь может увидеть пустой список или все те же счета 20 и 23. Это происходит потому, что ограничения могут быть заданы на уровне свойств самого реквизита в дереве метаданных. Проанализируем реквизит СчетЗатрат в объекте Документ.ОтчетПроизводстваЗаСмену.
Рассмотрим свойство «Параметры выбора». В типовых решениях там часто установлен фиксированный массив, ограничивающий отбор по ссылке на конкретные группы счетов (например, счета основного и вспомогательного производств). Чтобы расширить список, выполните следующие действия:
СчетЗатрат в метаданных документа (или в расширении).Параметры выбора.Отбор.Ссылка. Обычно там указано: В Иерархии (Счета 20, 23).Разберем ситуацию, когда пользователю необходимо добавить счет 29 «Обслуживающие производства и хозяйства». В некоторых случаях даже после всех манипуляций в коде счет 29 может не отображаться. Это связано с механизмом функциональных опций в 1С.
В системе существует настройка «Параметры учета», которая управляет видимостью функционала для обслуживающих производств. Если в разделе «Главное» — «Функциональность» на закладке «Производство» не установлена галочка «Обслуживающие производства», система может блокировать использование счета 29 на уровне прав доступа или программных проверок в общих модулях. Проверьте эту настройку перед тем, как приступать к доработке кода.
Как отмечают специалисты, иногда счет затрат успешно выбирается в новом документе, но «сбрасывается» при копировании существующего документа. Это происходит из-за того, что в процедурах копирования (ПриКопировании или ОбработкаЗаполнения) может срабатывать стандартная логика пересчета или инициализации параметров, которая не находит выбранный вами «нестандартный» счет в разрешенном списке и очищает поле.
Для решения этой проблемы необходимо проверить процедуру ПриКопированииНаСервере в модуле формы. Убедитесь, что логика ограничения выбора не вызывается повторно и не очищает реквизит СчетЗатрат, если он заполнен значением, отличным от стандартных.
Проанализируем ситуацию с использованием счета 26. С технической точки зрения его можно добавить в документ, используя инструкции выше. Однако с точки зрения бухгалтерского учета в современных версиях «1С:Бухгалтерии», это может привести к критическим ошибкам:
Если заказчику необходимо отражать затраты, которые являются общими для нескольких видов продукции, мы рекомендуем использовать счет 25 «Общепроизводственные расходы». Он методологически предназначен для распределения на счет 20 и технически гораздо проще интегрируется в документы выпуска, чем управленческий 26 счет.
Подведем итог. Чтобы изменить список доступных счетов затрат, выполните следующие действия:
ОтчетПроизводстваЗаСмену найдите или создайте обработчик ПриСозданииНаСервере.УчетПроизводства.ОграничитьВыборСчетамиПрямыхРасходов.СчетЗатрат в расширении скорректируйте Параметры выбора, добавив нужные группы счетов в отбор.Использование данных методов позволяет гибко настроить систему под требования заказчика, сохраняя при этом относительную чистоту кода и возможность дальнейших обновлений конфигурации.