При работе с конфигурацией 1С:Бухгалтерия предприятия 3.0 (ПРОФ) администраторы и разработчики иногда сталкиваются с необходимостью детализации учета на счетах денежных средств. Однако попытка включить признак «Учет по подразделениям» на предопределенном счете 50.1 («Касса организации») часто приводит к критической ошибке файловой операции с упоминанием DBNames. Особенно остро эта проблема проявляется в клиент-серверном варианте работы (SQL), в то время как в файловой базе изменения могут проходить успешно.
В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем техническую природу объекта DBNames и определим правильные способы реализации требований бизнеса без повреждения структуры базы данных.
Для начала проанализируем, что именно сообщает нам платформа 1С. Ошибка обращения к v8srvr://.../Params/DBNames указывает на невозможность обновления внутренней карты соответствия метаданных. В системе «1С:Предприятие» имена объектов, которые мы видим в конфигураторе (например, ПланСчетов.Хозрасчетный), не совпадают с именами таблиц в SQL (например, _Acc9). Файл или запись DBNames является своего рода «словарем», который связывает GUID метаданных с физическими таблицами базы данных.
Рассмотрим основные причины, по которым реструктуризация плана счетов в SQL-базе завершается аварией:
Config (где хранится DBNames), возникает ошибка файловой операции.50.1 жестко зашит в логику работы кассовой книги и регламентированных отчетов. Платформа на уровне программных проверок может блокировать изменение структуры этого счета, так как это нарушает целостность типового решения.v8srvr часто свидетельствует о том, что рабочий процесс rphost не может получить доступ к временным данным в каталоге сеансовых данных или в TempDB SQL-сервера из-за нехватки прав или дискового пространства.Выясним причину, по которой 1С ограничивает возможность включения учета по подразделениям на 50-м счете. В типовой методологии 1С ведение кассовой книги в разрезе подразделений — это исключительная прерогатива версии КОРП. Там реализован механизм «Обособленных подразделений», который включает в себя не только «галочку» в плане счетов, но и:
Если мы принудительно включим этот признак в версии ПРОФ, мы получим «сломанную» кассовую книгу. Стандартный отчет просто не увидит эти данные или начнет выводить их некорректно, так как его программный код не рассчитан на работу с измерениями подразделений на счетах денежных средств.
Если вы уже столкнулись с ошибкой и база «зависла» в состоянии незавершенного обновления, рассмотрим шаги по восстановлению работоспособности.
Шаг 1: Очистка серверного кэша и временных данных
Прежде всего, необходимо исключить влияние «мусорных» данных в кэше сервера приложений 1С. Для этого выполним следующие действия:
%ProgramFiles%\1cv8\srvinfo (или иной путь, указанный при установке).snccntx и reg_XXXX (кроме файлов конфигурации).Шаг 2: Проверка целостности базы данных на уровне SQL
Проанализируем состояние базы средствами СУБД. Выполним команду в SQL Server Management Studio (SSMS):
DBCC CHECKDB ('ИмяВашейБазы') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Если команда вернет ошибки, их необходимо устранить штатными средствами SQL (например, через REPAIR_REBUILD), так как поврежденные индексы системных таблиц напрямую влияют на обновление DBNames.
Шаг 3: Тестирование и исправление в 1С
Запустим конфигуратор и выполним «Администрирование — Тестирование и исправление». Обязательно выберем пункты:
Если бизнес-задача требует учета денежных средств по подразделениям, а переход на версию КОРП невозможен, рассмотрим альтернативные варианты.
Вариант А: Добавление дополнительного субконто
Вместо включения системного признака «Учет по подразделениям», можно попробовать добавить на счет 50.1 обычное субконто с типом Подразделения. Однако, как показывает практика обсуждений, это также может привести к ошибкам реструктуризации, так как счет 50 является предопределенным и критически важным.
Вариант Б: Использование дополнительных счетов
Проанализируем возможность создания нового счета (например, 50.11), который будет подчинен 50-му счету. На новом счете вы можете настраивать аналитику по своему усмотрению. Но помните: типовые алгоритмы закрытия месяца и формирования отчетности придется дорабатывать под этот счет.
Вариант В: Переход на версию КОРП
Это самый правильный и безопасный путь. При переходе на КОРП структура метаданных обновится штатно, и возможность учета по подразделениям на 50-м счете станет доступна официально, без «хаков» конфигуратора и риска повредить SQL-таблицы.
Ошибка файловой операции с DBNames при манипуляциях с планом счетов — это сигнал о серьезном конфликте между желаемыми изменениями и возможностями текущей редакции программы. Мы настоятельно не рекомендуем пытаться «прожать» обновление через файловую базу с последующей загрузкой в SQL, так как это может привести к скрытым ошибкам в таблицах итогов, которые проявятся лишь спустя месяцы работы. Правильным решением будет либо использование типового функционала КОРП, либо отказ от изменения структуры предопределенного счета 50.1 в пользу аналитических отчетов по другим регистрам.