При обновлении конфигураций 1С, работающих в режиме разделения данных (например, при использовании модели сервиса), администраторы и разработчики иногда сталкиваются с критической ошибкой: Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных. Чаще всего эта ошибка указывает на справочник Справочник.НаборыДополнительныхРеквизитовИСведений. Давайте разберем, почему это происходит и как попытаться исправить ситуацию, работая в условиях разделенной архитектуры данных.
Данная ошибка возникает, когда платформа 1С пытается выполнить запрос к таблице, которая является «разделяемой». В архитектуре с разделением данных (Data Separation) доступ к таким объектам жестко регламентирован: система требует, чтобы в контексте любого запроса был четко определен разделитель (область данных). Если процедура обновления (особенно отложенного) запускается в сеансе, где область данных не установлена корректно, платформа блокирует выполнение запроса, чтобы не нарушить целостность данных в других областях.
Первым делом необходимо убедиться, что проблема не вызвана конфликтами в подключенных расширениях. Расширения могут изменять структуру метаданных или добавлять собственные обработчики обновления, которые конфликтуют с типовыми механизмами БСП (Библиотеки стандартных подсистем) — для анализа таких конфликтов есть инструмент проверки совместимости расширений с конфигурацией.
Если обновление в клиент-серверном варианте (SQL) прерывается на стадии выполнения процедур отложенного обновления, можно применить проверенный метод «танцев с бубном», который часто помогает завершить зависшие процессы:
.dt..dt.SQL.Если описанные выше способы не принесли успеха, необходимо проанализировать текущее состояние конфигурации. Рассмотрим возможные действия:
Тестирование и исправление информационной базы в Конфигураторе. Выберите пункты Реиндексация и Проверка логической целостности. Это поможет исключить повреждение структуры таблиц базы данных..cf) в режиме Сравнить, объединить с конфигурацией из файла, чтобы убедиться, что структура разделяемых объектов соответствует эталонной.Если после всех манипуляций ошибка сохраняется, проблема может заключаться в повреждении данных внутри самого справочника Справочник.НаборыДополнительныхРеквизитовИСведений или в логической ошибке самого кода обновления версии. В таком случае программисту необходимо через отладчик в Конфигураторе найти процедуру обновления, вызывающую запрос к объекту, и проанализировать, почему в контексте выполнения не устанавливается нужный разделитель — в этом поможет инструмент пошаговой отладки кода 1С.
Помните, что модификация типовых процедур обновления — это крайняя мера. Старайтесь использовать стандартные методы обновления через Конфигуратор или через Обновление конфигурации в режиме 1С:Предприятие, предварительно обеспечив монопольный доступ к базе — для этого подойдёт обработка принудительного завершения сеансов пользователей.