ВОССТАНОВЛЕНИЕ УЗЛА РИБ в Розница 2.3 после очередного обновления.
На днях необходимо было обновить базу РИБ у клиентов (конфигурация Розница 2.2) до последней Розница 2.3.4.33.
При обновлении столкнулся со следующей проблемой: после обновления центрального узла и выгрузки обмена на подчиненный узел, и загрузки обмена на подчиненный узел база обновилась но при загрузке и принятии изменений стала выскакивать ошибка предлагающая либо закрыть либо перезагрузить 1С.
Первую ошибку которую нашел просматривая журнал - это то что в справочнике "Виды контактной информации" в Предопределенный данных появилась новая запись "ТелефонПользователя" при этом старая запись переименовалась в "ТелефонПользователя1" пришлось удалять новую запись и старую переименовывать (удалить цифру "1").
После этого запустил заново 1с база удачно закончила обновление. Нооо, перестал работать обмен.
Обратившись снова к журналу, увидел описание что "В данной транзакции происходили ошибки." и до свидание обмен.
Начитавшись форумов почистил все что можно было почистить без вреда основным данным, и о чудо ничего не помогло. Все гуру советы не сработали.
Тогда вычитав в очередных советах что необходимо выгрузить конфигурацию основного Узла и загрузить ее в подчиненный и все заработает.
Открываем Центральную базу (Главный узел) в режиме конфигуратора и через меню "Конфигурация" выбираем "Сохранить конфигурацию в файл".
И вот тут встает вопрос как обновить подчиненный узел выгруженным файлом конфигурации? Ну понятно что нужно для начала отвязать базу от РИБ. В сети множество статей о том как это сделать.
1. Первый способ пописать в дополнительных параметрах запуска ключ /ResetMasterNode, но очень часто сталкиваются с проблемой что он не срабатывает. У меня не сработал.
2. Второй способ это после загрузки базы запустить любую обработку на тему "Установка Главного Узла РИБ" таких обработок в сети множество. Но нет толкового описания что с ней делать. Для того чтобы отвязать базу необходимо выбрать "Узел распределенной информационной базы по магазину", далее откроется окно выбора Узла РИБ, ничего не выбираем просто закрываем окно и нажимаем кнопку на форме обработки "Установить" (на разных обработках это кнопка обозначается по разному, но чаще всего именно "Установить"). Все база почти отвязана от РИБ, почему почти потому что для окончательного отключения от РИБ необходимо перезапустить 1с и на вопрос о восстановлении подчиненного узла ответить "Отменить". Все база окончательно отвязана от РИБ.
3. Третий способ можно использовать когда зайти в 1с не получается, т.к. при запуске 1с запускается применение обновления в базе которое в итоге заканчивается ошибкой и соответственно не дает зайти в 1с для запуска обработки чтобы отвязать базу от РИБ. Не спешите нажимать кнопку "Завершить" или "Перезапустить". Вы можете нажав кнопку "Ещё" либо кнопку "Все действия" выбрать открыть Файл. После выбрав приготовленную ранее обработку "Установка Главного Узла РИБ" осуществить отключение данной базы от РИБ.
4. Есть и еще четвертый способ когда обработка отключения запускается сразу после запуска 1с. Для этого необходимо в дополнительных параметрах запуска прописать следующее /Execute "путь до вашей обработки, предположим что она лежит на диске D:" D:\УстановкаГлавногоУзла.epf , в конечном итоге у Вас получится /Execute D:\УстановкаГлавногоУзла.epf ... После запуска 1с обработка откроется поверх всех открытых форм в 1с. Далее выполняем отключение описанное во втором пункте.
Ну вот мы отключили базу от РИБ. Запускаем базу в режиме Конфигуратора. Далее через меню "Конфигурация" выбираем "Загрузить конфигурацию из файла", выбираем ранее выгруженный файл из Центральной базы и далее стандартно соглашаемся с загрузкой конфигурации и принятия изменений. Порою при обновлении выскакивает ошибка "Недостаточно памяти" и Конфигуратор закрывается, поможет проверка базы штатной утилитой 1С chdbfl.exe.
После загрузки файла конфигурации закрываем конфигуратор и запускаем 1с в режиме Предприятие. При загрузке отвечаем "Да" на вопрос об обновлении. Вот теперь начинается самое интересное.
Для подключения данной базы в РИБ во многих статьях пишут воспользоваться той же обработкой УстановкаГлавногоУзла или похожей. Пробовал фигня получается обмен не стартует. После применения данных обработок и привязке к главному узлу 1С настойчиво предлагает создать Синхронизацию и в момент создания пишет что префикс не верный. Я нашел где он не верно указывается но исправить там нельзя не повредив весь обмен. Поэтому после нескольких попыток привязать Подчиненный узел к Главному выработал следующие шаги для обратной привязки к Главному узлу.
1. После того как обновили базу и открыли ее в режиме Предприятия заходим в меню "Все функции" (если что напомню этот пункт можно включить в Настройках - Параметрах - поставив галочку "Включить отображение меню "Все функции") открываем ветку Константы ищем константу "Главный узел" открываем ее нажимаем кнопку выбора "..." откроется список "Выбор типа данных" находим пункт Узел распределенной информационной базы по магазину" в открывшемся окне нажимаем кнопку Создать. Откроется окно создания Узла РИБ, в окне настройка фильтров указываем магазин этого подчиненного узла данные которого будут выгружаться в Главный узел, укажите дату сверки такую же что стоит в настройке обмена на Главном узле. Далее переходим во вкладку "Служебная информация и указываем название Главного узла и указываем префикс базы Главного узла (для того чтобы не ошибиться лучше скопировать его имя из настройки синхронизации на Главном узле). Указав все это нажимаем Записать (синяя дискетка), далее открываем меню Параметры синхронизации данных и выбираем "Настройки подключения", и указываем тип подключения и расположение папки обмена. Нажимаем "Записать закрыть" два раза. В окне Узлы РИБ выбираем только что созданный узел и нажимаем "Записать и закрыть". Закрываем 1С.
2. После того как закрыли 1С, заново запускаем ее. После запуска программа предложить восстановить связь с главным узлом, нажимаем "Восстановить", дожидаемся окончания процедуры восстановления. После окончания процесса восстановления откроется окно настройки Синхронизации РИБ по магазину. Ничего не делаем, а просто закрываем данное окно. После открываем меню "Все функции" и снова разворачиваем ветку Константы, ищем константу "Настройка подчиненного узла РИБ Завершена" и открываем её. Устанавливаем галочку в Настройка подчиненного узла РИБ Завершена, нажимаем Записать закрыть. Перезагружаем 1С. Если все сделано верно то после запуска 1С не будет предлагать настроить Синхронизацию. После этого зайдите в Настройки синхронизации данных, у вас появиться настройка обмена, кликните по ней правой кнопкой мыши и выберите Сценарии синхронизации данных, нажмите добавить в открывшемся окне отключите Автоматически по расписанию, его включите после того как успешно осуществите несколько раз вручную обмен.
После выполненных действий выполните обмен сначала на главном узле после на подчиненном.
При необходимости, если какие-то данные не выгружаются, воспользуйтесь настройкой "Регистрация изменений для обмена", зарегистрируйте те данные, что необходимо выгрузить из базы.
Также если в процессе обмена выскочить ошибка "В данной транзакции уже происходили ошибки!". То откройте журнал регистрации и посмотрите ошибку перед этим сообщением. Как правило там сообщение следующего содержания: "Обмен данными.Проведение документа "Ввод начальных остатков узла". В этом случае откройте через меню "Все функции" Документ "Ввод начальных остатков" установите пометку на удаление всех документов. Как правило напрямую в этом списке документы не помечаются. Тогда поменяйте через стандартную обработку в Разделе Администрирование - Обслуживание - Корректировка данных - Групповое изменение реквизитов ( в ней через кнопку Дополнительные параметры - Специальные возможности, установите галочку "Показывать служебные реквизиты", далее установите у реквизита Пометка на Удаление - значение "Да". Следующим действием выполните Удаление помеченных объектов. В ЦБ так же удалите данный документ.
После всех этих действий заново выгрузите обмен с ЦБ. Предварительно указав в настройках обмена ЦБ и Подчиненного узла более раннюю дату начальных остатков.
На этом всё.