Одной из наиболее неприятных ситуаций в работе технического специалиста 1С является возникновение критических ошибок при выполнении стандартных действий, таких как открытие документа или проведение регламентных операций. Часто такие ошибки сопровождаются сообщениями о том, что система не может найти тот или иной объект метаданных. В данной статье мы рассмотрим конкретный случай, когда программа выдает ошибку из-за отсутствия счета ВспомогательноеПроизводство в налоговом плане счетов, и разберем по шагам, как восстановить работоспособность базы.
Для начала проанализируем ситуацию. Ошибка, о которой идет речь, чаще всего формулируется так: «В Налоговом плане счетов отсутствует предопределенный счет с именем "ВспомогательноеПроизводство"». Это означает, что программный код конфигурации (модули документов, обработки проведения или закрытия месяца) обращается к объекту метаданных по его программному идентификатору. Например, код может выглядеть следующим образом:
СчетУчета = ПланыСчетов.Налоговый.ВспомогательноеПроизводство;
Если в структуре конфигурации (в дереве метаданных) отсутствует предопределенный элемент с таким именем, платформа 1С выбрасывает исключение, и выполнение кода прерывается. Важно понимать, что это не ошибка в данных пользователя (в режиме «Предприятие»), а нарушение целостности самой структуры метаданных конфигурации.
Основные причины возникновения подобной проблемы:
Прежде чем переходить к лечению, разберем один критически важный нюанс. Начинающие пользователи часто пытаются создать счет вручную прямо в пользовательском режиме (1С:Предприятие), присваивая ему код «23» или название «Вспомогательное производство». Посмотрим, почему это не поможет: для программы «имя» счета (идентификатор в конфигураторе) и «код» счета (цифры в интерфейсе) — это абсолютно разные вещи.
Когда программист пишет ПланыСчетов.Налоговый.ВспомогательноеПроизводство, система ищет элемент, у которого в свойстве «Имя» прописано ВспомогательноеПроизводство. Обычный счет, созданный пользователем нажатием кнопки «Создать», не имеет программного имени, к которому можно обратиться через точку. Поэтому исправление проблемы возможно только через инструменты разработчика.
Рассмотрим подробнее процесс восстановления недостающих счетов. Для этого нам потребуется зайти в информационную базу в режиме «Конфигуратор». Перед любыми манипуляциями обязательно сделаем резервную копию базы (Администрирование — Выгрузить информационную базу).
Выполним следующие шаги:
ВспомогательноеПроизводство. Если его там нет, его нужно добавить.ВспомогательноеПроизводство.После добавления счета необходимо сохранить изменения в конфигурации (нажать синий цилиндр или клавишу F7) и подтвердить обновление конфигурации базы данных.
Как мы видим из практики, после исправления одной ошибки система может тут же выдать следующую. Проанализируем пример: автор темы добавил счет ВспомогательноеПроизводство, но программа тут же потребовала счет ПроизводствоПолуфабрикатов. Это типичная ситуация для «недообновленных» баз.
Рекомендуем сразу проверить наличие следующих предопределенных счетов в налоговом плане счетов, так как они часто используются в одних и тех же алгоритмах закрытия затратных счетов:
ПроизводствоПолуфабрикатов (соответствует счету 21)ОбщехозяйственныеРасходы (соответствует счету 26)ОбщепроизводственныеРасходы (соответствует счету 25)БракВПроизводстве (соответствует счету 28)Если вы обнаружили, что отсутствует целый пласт счетов, попробуем использовать механизм сравнения и объединения с типовой конфигурацией того же релиза. Это позволит автоматически восстановить все предопределенные элементы, которые были случайно удалены.
Если счета в Конфигураторе присутствуют, но ошибка всё равно возникает, выясним, не связано ли это с нарушением логической целостности ссылок. Иногда бывает так, что предопределенный элемент «отвязывается» от записи в таблице базы данных.
В этом случае рассмотрим процедуру «Тестирование и исправление»:
Важно помнить: само по себе добавление счета в метаданные лишь позволяет программе «открыть документ» или запустить обработку без ошибки. Однако это не восстанавливает данные в проводках за прошлые периоды. Если вы работали в базе, где эти счета отсутствовали, то налоговый учет мог вестись некорректно.
Проанализируем необходимые действия после восстановления счетов:
Таким образом, мы разобрали сложную техническую проблему, связанную с несоответствием кода и структуры метаданных 1С. Понимание того, как работают предопределенные элементы, позволяет быстро диагностировать и устранять подобные сбои, обеспечивая непрерывность ведения учета.