Как корректно отключить режим РИБ и убрать префиксы узлов в 1С:Розница

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Переход с распределенной информационной базы (РИБ) на централизованную работу в клиент-серверном варианте (SQL) — это серьезный шаг в эволюции ИТ-инфраструктуры розничной сети. Часто после такого переезда администраторы сталкиваются с тем, что база «помнит» свое прошлое в качестве главного узла распределенной системы. Это выражается в наличии префиксов в номерах документов (например, «00»), которые продолжают подставляться автоматически, даже если синхронизация данных удалена. Рассмотрим подробно, как полностью вывести базу из режима РИБ, разобраться с префиксацией и оптимизировать работу системы.

Разберем причину сохранения статуса РИБ

В системе 1С:Предприятие признак того, является ли текущая база узлом распределенной информационной базы, хранится на уровне ядра платформы. Даже если вы удалили все настройки синхронизации в интерфейсе «Синхронизация данных», база может продолжать считать себя «Главным узлом» или просто хранить установленный «Префикс этой информационной базы». Это влияет на работу механизмов нумерации, которые при создании нового документа обращаются к параметрам узла для формирования строкового номера.

Проанализируем ситуацию: если база была центральной в РИБ, она содержит записи в плане обмена. Если мы хотим, чтобы база стала «обычной» (автономной), нам необходимо программно разорвать связь с понятием «Главный узел» и очистить регистрацию изменений, которая может продолжать накапливаться в фоновом режиме, замедляя работу SQL-сервера.

Программное отключение режима РИБ

Для того чтобы база перестала считать себя частью распределенной системы, необходимо выполнить специализированную команду на встроенном языке 1С. Рассмотрим, как это сделать с помощью внешней обработки или консоли кода. Основной метод, который нам потребуется — ПланыОбмена.УстановитьГлавныйУзел().

Выполним следующий алгоритм действий:

  1. Запустим базу в режиме «1С:Предприятие».
  2. Откроем консоль кода или создадим новую внешнюю обработку.
  3. В процедуре на сервере выполним следующий фрагмент кода:

// Сброс признака главного узла РИБ
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

// Дополнительно рекомендуется проверить, не остались ли зарегистрированные изменения
// по планам обмена, чтобы очистить таблицы регистрации в SQL
Для Каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл
    ВыборкаУзлов = ПланыОбмена[ПланОбмена.Имя].Выбрать();
    Пока ВыборкаУзлов.Следующий() Цикл
        Если Не ВыборкаУзлов.Ссылка = ПланыОбмена[ПланОбмена.Имя].ЭтотУзел() Тогда
            ПланыОбмена.УдалитьРегистрациюИзменений(ВыборкаУзлов.Ссылка);
        КонецЕсли;
    КонецЦикла;
КонецЦикла;

Этот код делает две важные вещи: во-первых, он говорит платформе, что у данной базы больше нет вышестоящего или подчиненного узла в контексте РИБ. Во-вторых, он очищает таблицы регистрации изменений (так называемые «таблицы регистрации»), которые могут содержать миллионы записей, если обмены ранее работали нестабильно. Это существенно снизит нагрузку на SQL-сервер при проведении документов.

Как убрать префикс «00» из новых документов

После того как мы «отвязали» базу от РИБ, необходимо разобраться с визуальным отображением префикса в номерах. Префикс в 1С:Розница обычно состоит из двух частей: префикса самой информационной базы и префикса организации или магазина. Выясним причину появления именно «00».

Посмотрим на настройки синхронизации:

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Найдем поле Префикс этой информационной базы. Скорее всего, там указано значение «00».
  3. Если мы планируем работать в единой базе, этот префикс можно очистить. Однако стоит помнить, что это не изменит номера уже созданных документов. Более того, при создании новых документов система попытается начать нумерацию заново (например, с номера 000000001), что может привести к ошибке «Номер не уникален», если старые документы с такими номерами уже существуют.

Для решения проблемы с нумерацией после удаления префикса мы можем применить один из следующих подходов:

Особенности работы в Аптеке: Маркировка и Интернет

Рассмотрим важный аспект, упомянутый в обсуждении: работа аптеки через тонкий клиент в централизованной базе. В отличие от бутиков одежды, аптеки работают с системой МДЛП (Честный Знак). Проанализируем риски:

При использовании РИБ каждая торговая точка имела свою локальную базу. Если интернет пропадал, кассир мог продолжать отпускать товар (в рамках разрешенных законом процедур офлайн-работы или накопления чеков). В случае работы через тонкий клиент на SQL-сервере, любой обрыв связи с интернетом или сбой на центральном сервере полностью парализует работу 17 аптек одновременно.

Важный совет: Для стабильной работы в такой архитектуре необходимо обеспечить наличие резервного канала связи (например, 4G-модем с автоматическим переключением на роутере) в каждой точке. Также следует настроить библиотеку подключаемого оборудования (БПО) таким образом, чтобы тайм-ауты ожидания ответа от фискального регистратора не приводили к «зависанию» всей сессии пользователя при микроразрывах связи.

Оптимизация SQL-базы после перехода с РИБ

Выясним, почему база могла тормозить в файловом варианте и как не допустить этого в SQL. Файловая база 1С имеет ограничение на размер внутренних таблиц (4 Гб). При активной работе 17 точек это ограничение достигается очень быстро, особенно за счет таблиц итогов и регистров сведений по маркировке.

После миграции на SQL и отключения РИБ выполним следующие шаги по обслуживанию:

  1. Реиндексация и обновление статистик: Это обязательная процедура для SQL-баз, которая позволяет оптимизатору запросов правильно строить планы выполнения.
  2. Очистка неиспользуемых планов обмена: Если вы окончательно решили отказаться от РИБ, удалите сами объекты планов обмена в конфигураторе (если это самописная конфигурация) или просто пометьте на удаление и удалите все «Узлы», кроме «Этот узел» в интерфейсе программы.
  3. Настройка регламентных заданий: Проверьте список регламентных заданий. При работе в РИБ многие задания (например, извлечение текста для поиска или обновление агрегатов) могли выполняться на периферии. В центральной базе их нужно оптимизировать, чтобы они не мешали работе кассиров в пиковые часы.

Таким образом, мы видим, что «выход» из РИБ — это не просто удаление настроек синхронизации, а комплекс мер по перенастройке платформенных параметров узла, коррекции логики нумерации и техническому обслуживанию базы данных на уровне SQL.

← На главную