При администрировании и разработке в системе 1С:Предприятие специалисты часто сталкиваются со специфическим поведением интерфейса Конфигуратора, а также со сложностями при синхронизации распределенных информационных баз (РИБ). В этой статье мы подробно разберем две взаимосвязанные проблемы: почему в Конфигураторе может быть недоступна кнопка «Загрузить конфигурацию из файла» для расширения и как бороться с популярной ошибкой обмена «Данные принимаются от узла с другим набором расширений».
Представим ситуацию: мы открыли список расширений через меню Конфигурация — Расширения конфигурации, выбрали нужное нам расширение, нажали на него правой кнопкой мыши, но кнопка «Загрузить конфигурацию из файла» (для импорта файла формата .cfe) горит серым цветом и недоступна для нажатия. Рассмотрим основные причины такого поведения платформы и разберем по шагам, как вернуть кнопке активность.
Способ 1. Открытие дерева объектов расширения (Основное решение)
Самая распространенная причина кроется в особенности интерфейса Конфигуратора 1С. Платформа не позволяет загружать файл в «закрытое» расширение. Чтобы активировать команду загрузки, выполним следующие действия:
Расширения конфигурации найдем нужное нам расширение.Способ 2. Проверка подключения к Хранилищу конфигурации
Если расширение (или вся база) подключено к Хранилищу 1С, то любые операции по изменению структуры и загрузке метаданных блокируются до тех пор, пока объект не будет захвачен пользователем. Проанализируем состояние подключения к хранилищу. Если рядом с именем расширения отображается синий значок замка, нам необходимо:
Хранилище..cfe станет доступной.Способ 3. Проверка режима РИБ (Подчиненный узел)
Если наша база является периферийным (подчиненным) узлом распределенной информационной базы, платформа 1С накладывает жесткие ограничения на редактирование конфигурации и расширений. В этом режиме кнопка загрузки будет заблокирована. Чтобы обойти это ограничение для проведения разовых технических работ, базу временно отвязывают от главного узла.
Для этого в режиме 1С:Предприятие запускают обработку со следующим кодом:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После выполнения этого кода база становится автономной, и в Конфигураторе разблокируются возможности редактирования расширений. По завершении работ связь с главным узлом восстанавливают программно:
ГлавныйУзел = ПланыОбмена.НайтиПоКоду("ЦБ"); // Где "ЦБ" - код центральной базы
Если ЗначениеЗаполнено(ГлавныйУзел) Тогда
ПланыОбмена.УстановитьГлавныйУзел(ГлавныйУзел);
КонецЕсли;
Способ 4. Недостаточные права доступа
Убедимся, что учетная запись, под которой осуществлен вход в Конфигуратор, обладает достаточными административными правами. Пользователь должен иметь роли АдминистраторСистемы (Администратор системы) и ПолныеПрава (Полные права). Без этих ролей операции с расширениями будут заблокированы на уровне прав платформы.
---
Часто ручная загрузка файлов расширений в периферийные базы производится ради решения проблем с обменом данными. Однако даже после того, как мы вручную загрузили абсолютно идентичные файлы .cfe во все узлы РИБ, при попытке синхронизации мы можем снова увидеть ошибку: «Данные принимаются от узла с другим набором расширений». Выясним причину этой проблемы и рассмотрим эффективные методы её решения.
При обмене данными в РИБ платформа 1С сверяет не только версию основной конфигурации, но и контрольные суммы (так называемый Digest) всех установленных расширений. Когда мы загружаем файл расширения вручную в периферийную базу, платформа может назначить внутренним объектам метаданных новые внутренние идентификаторы (UUID). В результате, несмотря на полную внешнюю идентичность кода и структуры, контрольные суммы баз будут различаться, и платформа заблокирует обмен во избежание десинхронизации данных.
1. Настройка штатной миграции расширений через План обмена
Самый надежный и правильный способ работы с расширениями в РИБ — это делегирование их обновления самой платформе 1С. Нам не нужно вручную загружать файлы в подчиненные узлы. Настроим автоматическую миграцию по шагам:
ПланОбмена.При таких настройках во время очередного сеанса выгрузки из центральной базы платформа сама упакует расширение в XML-файл обмена и корректно применит его на подчиненном узле с сохранением всех контрольных сумм.
2. Выравнивание версий платформы 1С на всех серверах и клиентах
Алгоритмы расчета контрольной суммы (Digest) расширений могут незначительно меняться от релиза к релизу платформы 1С. Если на центральном сервере установлена платформа версии 8.3.22.ХХХХ, а на торговой точке (периферийном узле) используется версия 8.3.21.ХХХХ, обмен гарантированно завершится ошибкой из-за разницы в расчете хэш-сумм.
Правило: Версии платформы 1С:Предприятие на всех узлах распределенной базы должны совпадать до последнего знака сборки.
3. Очистка локального и серверного кэша расширений
Иногда физическая структура расширений на узлах уже идентична, но платформа продолжает считывать старые хэши из кэш-файлов. Проанализируем поведение системы после полной очистки кэша на проблемном узле:
%AppData%\Local\1C\1Cv8\ и %AppData%\Roaming\1C\1Cv8\ на рабочих станциях.4. Обход ошибки через запуск сценария обмена
В некоторых релизах платформы 1С присутствует зарегистрированная ошибка: при интерактивном запуске синхронизации по кнопке «Синхронизировать» в режиме Предприятия система ложно рапортует о разном наборе расширений. При этом, если запустить обмен в автоматическом режиме через регламентные задания или использовать команду «Выполнить сценарий обмена», синхронизация проходит успешно. Рекомендуется настроить расписание обмена и проверить его выполнение в фоновом режиме.
5. Пересоздание начального образа подчиненного узла
Если конфигурация расширений претерпела значительные изменения, затронувшие структуру хранения данных (были добавлены новые реквизиты, справочники или регистры в расширении), и штатные механизмы синхронизации выдают неустранимую ошибку, наиболее быстрым решением будет создание нового начального образа периферийной базы.
Для этого в центральной базе мы заходим в режим 1С:Предприятие, находим нужный узел в плане обмена и вызываем команду «Создать начальный образ». Полученная база-клон гарантированно будет содержать верные идентификаторы метаданных и абсолютно идентичный набор расширений, что позволит сразу возобновить двусторонний обмен без ошибок.