К статье
Практический материал

Администрирование · 11 мин

Как обновить 1С в распределённой информационной базе (РИБ)

Порядок обновления конфигурации в распределённой информационной базе 1С: обновление центрального узла, обмен сообщениями, обновление периферийных баз, типичные ошибки и их решение.

Распределённая информационная база (РИБ) — это механизм 1С, при котором несколько баз обмениваются данными через планы обмена: есть главный (центральный) узел и один или несколько периферийных. Обновление конфигурации в такой схеме отличается от обновления обычной базы: нельзя просто обновить каждый узел по отдельности, потому что изменения конфигурации распространяются только от главного узла к подчинённым вместе с сообщениями обмена.

Ключевое правило: конфигурацию обновляют только в главном узле, а периферийные базы получают новую версию автоматически при очередном обмене. Если попытаться обновить периферийный узел напрямую через конфигуратор, система откажет — база находится в подчинении, и изменение конфигурации в ней заблокировано.

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

Подготовка: что проверить до начала обновления

Первый шаг — убедиться, что обмен между узлами работает штатно. Выполните полный цикл обмена: выгрузку из главного узла и загрузку в каждом периферийном, затем обратно. Если в журнале регистрации есть ошибки обмена, неотправленные сообщения или коллизии, сначала устраните их. Обновлять конфигурацию при неработающем обмене нельзя — изменения просто не дойдут до периферийных баз.

Второй шаг — резервные копии. Сделайте выгрузку информационной базы (файл .dt) главного узла и каждого периферийного узла. Для файловых баз дополнительно можно скопировать каталог с файлом 1Cv8.1CD. Копии должны быть сделаны до начала любых действий с конфигурацией, а не «потом, если что-то пойдёт не так».

Третий шаг — проверьте, что все пользователи завершили работу. Обновление конфигурации базы данных требует монопольного доступа. В клиент-серверном варианте заблокируйте сеансы через консоль кластера, в файловом — попросите пользователей выйти и проверьте отсутствие активных соединений.

Обновление конфигурации главного узла

Обновление центральной базы выполняется стандартным способом — так же, как для обычной, не распределённой базы. Откройте конфигуратор главного узла, сделайте выгрузку .dt ещё раз непосредственно перед обновлением и запустите обновление через «Конфигурация → Поддержка → Обновить конфигурацию» или через загрузку файла обновления (.cfu) / полной конфигурации (.cf).

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

После загрузки обновления выполните «Обновление конфигурации базы данных» (клавиша F7 в конфигураторе). Если релиз содержит обработчики обновления данных, запустите базу в режиме предприятия под пользователем с полными правами — отработает процедура обновления информационной базы. Дождитесь её завершения: в типовых конфигурациях ход выполнения виден в окне «Результаты обновления программы».

Порядок обновления главного узла
  1. 1
    Выполнить полный обмен со всеми периферийными узлами и убедиться в отсутствии ошибок
  2. 2
    Сделать выгрузку .dt главного и всех периферийных узлов
  3. 3
    Завершить сеансы пользователей в главной базе
  4. 4
    Открыть конфигуратор главного узла и загрузить обновление конфигурации
  5. 5
    Выполнить обновление конфигурации базы данных (F7)
  6. 6
    Запустить режим предприятия и дождаться завершения обработчиков обновления данных
  7. 7
    Выполнить выгрузку сообщения обмена в периферийные узлы

Передача обновления в периферийные узлы

После обновления главного узла изменения конфигурации автоматически регистрируются в плане обмена и включаются в очередное сообщение обмена. Выполните выгрузку данных в каждый периферийный узел привычным способом: через настройку синхронизации, обработку обмена или сценарий по расписанию.

При загрузке такого сообщения в периферийной базе платформа обнаружит, что вместе с данными пришла новая конфигурация. В зависимости от настроек и способа обмена возможны два сценария: конфигурация периферийного узла обновляется автоматически в процессе загрузки, либо система сообщит о необходимости обновления и предложит выполнить его.

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

Обновление периферийного узла при загрузке сообщения

Автоматическое обновление при обмене

В типовых конфигурациях при загрузке сообщения, содержащего изменения конфигурации, периферийная база обычно обновляется автоматически: пользователю выводится предупреждение, сеанс может быть перезапущен, а обработчики обновления выполнятся при следующем запуске. Убедитесь, что обмен выполняется под пользователем с правами на обновление конфигурации.

Ручное обновление через конфигуратор

Если автоматическое обновление не сработало, откройте конфигуратор периферийного узла. В меню «Конфигурация» появится пункт «Обновить конфигурацию базы данных» — изменения уже загружены в конфигурацию базы и ждут применения. Выполните обновление (F7), затем запустите режим предприятия и дождитесь завершения обработчиков обновления данных.

Проверить, что конфигурация периферийного узла соответствует главному, можно по номеру версии: откройте сведения о конфигурации («Справка → О программе» или информация о конфигурации в конфигураторе) и сравните версии в обоих узлах. Они должны совпадать.

Контрольные точки

Как проверить результат

Версия конфигурации в главном и периферийном узлах
Норма

Версии совпадают

Тревожный признак

Версии различаются — обновление узла не завершено

Журнал регистрации при обмене
Норма

Нет ошибок загрузки и выгрузки

Тревожный признак

Ошибки о несоответствии конфигураций или отказе приёма сообщения

Запуск периферийной базы в режиме предприятия
Норма

База открывается, обработчики обновления завершены

Тревожный признак

Появляется требование обновить конфигурацию базы данных

Повторный обмен после обновления
Норма

Сообщения выгружаются и загружаются штатно

Тревожный признак

Сообщения не принимаются, растёт номер незагруженного сообщения

Типичные проблемы и способы их решения

Ошибка «конфигурация узла распределённой базы не соответствует ожидаемой»

Эта ошибка возникает, когда в периферийный узел загружается сообщение, сформированное для другой версии конфигурации, либо когда главный узел обновлён, а периферийный — ещё нет, и обмен выполняется в обратную сторону. Решение: загрузите в периферийный узел первое сообщение, содержащее изменения конфигурации, дождитесь обновления и только потом продолжайте обычный обмен.

Сообщение не загружается из-за нарушения нумерации

Если файл сообщения потерян или загружены сообщения не по порядку, обмен встаёт. В типовых конфигурациях номера принятых и отправленных сообщений можно скорректировать в настройках узла плана обмена (изменить номер принятого/отправленного сообщения), но делать это следует только при понимании последствий: можно потерять или задвоить данные.

Периферийный узел долго не выходил на связь

Если узел не участвовал в обмене длительное время и за это время в главном узле прошло несколько обновлений, проще и надёжнее создать новый образ периферийной базы (начальный образ узла) уже на актуальной версии конфигурации, чем накатывать цепочку старых сообщений. Перед пересозданием узла выгрузите из него все непереданные данные.

Типичные ошибки
01
Обновление периферийного узла напрямую через .cf — конфигурация подчинённого узла заблокирована для изменений, а попытки обойти ограничение ломают механизм РИБ
02
Обновление главного узла без предварительного обмена — в периферийных базах остаются непереданные данные, которые потом конфликтуют с новой версией
03
Отсутствие копии .dt перед обновлением — при сбое откат распределённой базы становится крайне трудоёмким
04
Загрузка сообщений не по порядку или удаление файлов обмена — нарушается нумерация, обмен останавливается
05
Продолжение работы пользователей в периферийной базе до завершения обновления конфигурации — ошибки при записи данных и в журнале регистрации

Особые сценарии: много узлов, автоматический обмен, нетиповая конфигурация

При большом количестве периферийных узлов планируйте обновление волнами: сначала обновите главный узел и один контрольный периферийный, убедитесь в корректности работы, затем распространяйте обновление на остальные. Это снижает риск массовой остановки обмена, если в релизе обнаружится проблема.

Если обмен выполняется по расписанию регламентным заданием, на время обновления отключите автоматический обмен, чтобы сообщения не формировались в середине процесса. После завершения обновления главного узла выполните обмен вручную, проконтролируйте результат и снова включите расписание.

Для нетиповых (доработанных) конфигураций порядок тот же, но обновление главного узла выполняется с объединением изменений. Особое внимание уделите тестированию: доработки, затрагивающие состав плана обмена (новые объекты в подписках, изменённые реквизиты), могут привести к ошибкам при загрузке в ещё не обновлённые периферийные узлы.

Перед обновлением рабочих узлов полезно развернуть тестовую копию пары «главный — периферийный» из актуальных выгрузок и прогнать весь цикл обновления на ней. Это занимает время, но позволяет заранее увидеть ошибки обработчиков обновления и проблемы обмена без риска для рабочих данных.
ПЗ
Практическое замечание

Частые вопросы об обновлении РИБ

Можно ли обновить периферийную базу напрямую через конфигуратор?

Нет. Конфигурация подчинённого узла РИБ находится в состоянии, запрещающем изменения: она может быть изменена только через сообщение обмена от главного узла. Прямая загрузка .cf в периферийную базу заблокирована платформой.

Что делать, если после обновления главного узла периферийный отказывается принимать сообщения?

Чаще всего причина в том, что загружается сообщение, не содержащее изменений конфигурации, либо нарушена нумерация. Найдите первое сообщение, сформированное после обновления главного узла, и загрузите именно его. Если файлы утеряны — сформируйте сообщение обмена заново из главного узла.

Нужно ли обновлять платформу 1С на всех узлах одновременно?

Желательно приводить версии платформы к одной на всех узлах, но не обязательно в один момент. Важно, чтобы версия платформы на каждом узле соответствовала требованиям нового релиза конфигурации — иначе база может не запуститься после обновления.

Как откатить обновление, если что-то пошло не так?

Единственный надёжный способ — восстановить базы из выгрузок .dt, сделанных до обновления, на всех затронутых узлах. Поэтому копии делаются до начала работ. После восстановления проверьте номера сообщений обмена, чтобы узлы продолжили обмен с корректной точки.

Периферийный узел не выходил на связь несколько месяцев — как его обновить?

Практичнее создать новый начальный образ узла из обновлённой главной базы и развернуть его вместо старой периферийной. Перед этим выгрузите из старого узла все данные, которые не успели уйти в центральную базу.

Влияет ли обновление конфигурации на данные, которые уже в пути между узлами?

Сообщения, сформированные до обновления, содержат данные в формате старой конфигурации. Их следует загрузить до обновления либо быть готовым к ошибкам несоответствия. Поэтому полный обмен до обновления — обязательный шаг подготовки.

Итог

Что важно запомнить

Обновляется только главный узел РИБ, периферийные получают новую конфигурацию через сообщение обмена. Перед обновлением — полный обмен и копии всех баз, после — контроль версий и журнала регистрации. При долгом простое узла надёжнее пересоздать его из начального образа.