Меню

Ошибка чтения файла сообщения обмена искажены изменения конфигурации

Показывать по
10
20
40
сообщений

Новая тема

Ответить

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

Была РИБ на 8.1 (2.0.22.2). Нужно, чтобы две базы («Центр» и «Склад») работали на 8.2 (2.0.23.9)<br> <br>Сделал так:<br>1) Конвертировал БД «Центр» в формат 8.2<br>2) Конвертировал БД «Склад» в формат 8.2<br>3) Выполнил обмен данными между ними, проверил — все ОК<br>4) Выполнил обновление БД «Центр» до версии 2.0.23.9<br> <br>5) Попытался выполнить обмена с БД «Склад» получил диагностику<br>Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Данные принимаются от узла, для которого зарегистрированы изменения конфигурации.Необходимо произвести перенос изменений конфигурации в узел.Чтение данных из файла обмена завершено с ошибками!<br> Запись изменений текущей информационной базы в файл обмена завершилась успешно.<br> т.е. файл изменениями для БД «Склад» сформировался успешно<br><br>6) Попытался выполнить обмен данными в БД «Склад» с этим файлом. Получил ошибку<br>Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Конфигурация узла распределенной ИБ не соответствует ожидаемой!Чтение данных из файла обмена завершено с ошибками!<br><br> <br>Что я делаю не верно? И как должно быть сделано правильно?

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20834

Нужно на БД «Склад» зайти конфигуратором и применить изменения конфигурации.

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

А поподробнее можно?<br>Я в Бух 8.1 делал так:<br>выбирал в меню «Конфигурация» пункт «Обновить конфигурацию базы данных»<br>Если под словами <br>> применить изменения конфигурации<br>именно это имеется ввиду, то у меня этот пункт почему-то в Бух 8.2 недоступен :(

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20834

Зайти конфигуратором и нажать F5, потом опять сделать обмен. Вроде так, пишу на память.

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

Попробовал. F5 — начать отладку — запустилась программа — выполнил обмен — результат тот же.<br>Завтра буду пробовать еще что-то сделать. Пока нахожусь в полном недоумении:<br>почему в 8.1 у меня «Склад» легко обновлялся таким способом, а в 8.2 нет???

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

Еще раз прошел по тому же пути — результат тот же.<br>»Центр» обновляется — передать выполненное обновление в БД «Склад» не получается.<br>Пункт меню «Обновить конфигурацию базы данных» в конфигураторе не доступен.<br> <br>Пошлите меня куда-нибудь. :)<br>(Где прочитать про различия при обновлении РИБ в 8.1 и 8.2?)

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20834

— Сделать обмен в «Центре»<br> — Сделать обмен в «Склад»<br> — Зайти в конфигуратор «Склад»<br> — Если не открыто дерево конфигурации, то открыть его<br> — Посмотреть стоит ли знак вопроса на конфигурации<br> — Нажать F5<br> — Еще раз сделать обмен в «Склад» (не надо приэтом делать обмен в «Центр»)

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

Prikum, если коротко, то я все так и делал. Эту механику освоил еще на 8.1. Попробую запротоколировать все, что я делаю при переходе на 8.2.<br> <br>1. Устанавливаю платформу 8.2. Отказываюсь от переустановки драйвера.<br> <br>2. Копирую каталог «Центр» 8.1 в каталог «Центр» 8.2<br> <br>3. Запускаю «Центр» 8.2 в режиме «Конфигуратор». Получаю вопрос:<br>Формат файла информационной базы не соответствует версии «1С:Предприятия». Выполнить преобразование?<br>Отвечаю «Да», получаю еще один вопрос:<br>Структура информационной базы несовместима с текущей версией программы.Произвести конвертацию информационной базы?<br> Отвечаю «Да». Получаю «Конвертация информационной базы завершена»<br> <br>4. Нажимаю «Конфигурация-Поддержка-Обновить конфигурацию».<br>Выбираю 2.0.23.9 (обновление) — Продолжить обновление<br>Обновление завершается сообщением:<br>После изменения режима совместимости рекомендуется выполнить перезапуск конфигуратора.<br> <br>5. Перезапускаю конфигуратор. Выбираю пункт меню «Конфигурация — Обновить конфигурацию базы данных»<br>При нажатии на кнопку «Принять» получаю вопрос:<br>При обработке данных выдано 2 предупреждений! Принять изменения?<br> Поскольку я не понимаю о каких предупреждениях идет речь, нажимаю кнопку «Да»<br>Пропадает <!> рядом со словом «Конфигурация»<br> <br>6. Нажимаю F5. Идут запросы от Firewall на обращение к сайтам 1С. Я все разрешаю и подтверждаю легальность получения обновления. Получаю сообщения:<br>Выполнено обновление информационной базы с версии 2.0.22.2 на версию 2.0.22.1<br>Выполнено обновление информационной базы с версии 2.0.22.1 на версию 2.0.23.9<br> <br>7. Выполняю настроенную еще в 8.1 процедуру «Выполнить обмен с узлам РИБ по организации». Получаю сообщения:<br>Не найден входящий файл обмена данными.<br>Запись изменений текущей информационной базы в файл обмена завершилась успешно.<br> <br>8. Повторяю пункты 2 и 3 с БД «Склад». Нажимаю F5 и пробую «Выполнить обмен с узлам РИБ по организации». Получаю сообщения:<br>Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): <br>Конфигурация узла распределенной ИБ не соответствует ожидаемой!<br>Чтение данных из файла обмена завершено с ошибками!<br>Запись изменений текущей информационной базы в файл обмена завершилась успешно.<br> <br>ЗДЕСЬ НЕТ ТРЕБОВАНИЯ ПЕРЕЙТИ В КОНФИГУРАТОР И ЗАВЕРШИТЬ ОБНОВЛЕНИЕ,<br>которое я видел в 8.1…<br> <br>9. Вхожу в конфигуратор. Убеждаюсь, что в БД «Склад» стоит версия 2.0.22.2<br>Открываю окошки «Конфигурация» и «Конфигурация базы данных» и вижу, что пункты меню<br>»Обновить конфигурацию» и «Обновить конфигурацию базы данных» заблокированы.<br> <br>10. Перехожу к пункту 1 и повторяю эти развлекательные циклические упражнения 3 раза подряд. :)<br> <br>В каком месте я ошибаюсь и не могу выйти из этого цикла? :)))

SVGS

Дата регистрации: 23.12.2010
Сообщений: 276

С задачей справился. Источник информации: http://infostart.ru/public/65456/<br>К сожалению, на этой конференции я нужной информации не получил. :(

Показывать по
10
20
40
сообщений

Распределенная база (РИБ) – часто используемый вариант работы.

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

И в таких базах также могут использоваться расширения. А с ними возникают нюансы

Проблема с распространением расширений в распределенных информационных базах

До выпуска 8.3.12 на уровне платформы не было обмена расширениями в РИБ.

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

Для этого приходилось изобретать свои решения, например, веб-серверы во всех магазинах, обмен через веб-сервисы и т.п.

Что изменилось в 8.3.12?

В редакции 8.3.12 обмен расширениями в территориально распределенных базах реализован на уровне платформы.

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

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

Видео – как передать расширения в периферийные узлы распределенной базы начиная с версии платформы 8.3.12

Мы подготовили для вас 10-минутное видео. Посмотрев его, вы узнаете:

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

Для тех, кто хочет идти в ногу со временем

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

Наш курс поможет освоить все возможности расширений буквально за пару месяцев.

Более того – его можно купить в рассрочку (оплатить по частям), в том числе без лишних процентов.

Конфигурация узла распределенной ИБ не соответствует ожидаемой. Одна из самых популярных ошибок РИБ. Приведены стандартная методика устранения (уже публиковалась ранее) и расширенная (для сложных случаев).

Для начала привожу список используемых мной сокращений:

  • РИБ — распределенная информационная база
  • ЦБ — центральная база, корневой узел РИБ
  • УБ — удаленная база, БД удаленного узла РИБ

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

  1. во время приёма файла сообщения в УБ «упала» база, в связи с чем, видимо, и произошла разсинхронизация между конф. ЦБ и УБ;
  2. под MSSQL клиент загрузил копию рабочей базы и не выключил в копии регл. задания автообмена, в результате часть сообщений в удаленные узлы формировалась из рабочей БД, а часть из копии, что и привело рассинхронизации конфигураций

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

Для исправления использую 2 методики, в зависимости от ситуации.

ПЕРВАЯ МЕТОДИКА

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

Последовательность действий:

  1. выгружаем из ЦБ cf-файл;
  2. отвязываем УБ от РИБ (метод УстановитьГлавныйУзел, готовую обработку можно найти в приложении или в других публикациях);
  3. заменяем конф. УБ на выгруженный в первом шаге cf-файл, для этого пользуемся меню «Загрузить конфигурацию из файла» (а не сравнением-объединением!!!);
  4. восстанавливем признак РИБ для УБ.

В большинстве случаев этих действий более чем достаточно, что восстановить обмен, но не всегда…

ВТОРАЯ МЕТОДИКА

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

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

Пришла мысль попробовать подменить хэши файлов конфигураций непосредственно в XML-файлах обмена. Описание структуры файла обмена из книги «Профессиональная разработка в системе 1С:Предприятие 8» дало слабое представление о формировании цифровых подписей конфигураций и изменений в них, но определило направление поиска: значения Digest1 и Digest2. Всё остальное выяснял чисто эмпирическим путём (то бишь методом проб и ошибок), но закономерность установить таки получилось.

Тестовые эксперименты прошли удачно. На рабочих базах тоже всё прошло благополучно.

Итак, последовательность действий: 

  1. выполняем действия 1 — 4 первой методики;
  2. выгружаем из УБ файл обмена, но не загружаем его в ЦБ;
  3. выгружаем из ЦБ файл обмена, но не загружаем его в УБ;
  4. в файле обмена из ЦБ заменяем блок, содержащий информацию об изменениях конфигурации и хэши (Digest1 и Digest2), на блок хэшей из файла УБ (пример см. ниже)
  5. производим загрузку файла из 4-го пункта в УБ;
  6. обязательно перезаписываем файл обмена из УБ (2-й пункт)! этот файл не должен быть загружен при обмене в ЦБ!
  7. для проверки делаем несколько последовательных обменов.

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

Блок файла обмена из ЦБ

            <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">
               <v8de:Version>106.0</v8de:Version>
               ...здесь идут блоки описания изменений конфигурации...
               <v8de:Digest1>1cf680807e97a5dc0d1ed7f901b07392</v8de:Digest1>
               <v8de:Digest2>038211651cf680807e97a5dc0d1ed7f9</v8de:Digest2>
           </v8de:Config>

нужно заменить на блок файла обмена из УБ (обратите внимание Digest1 у файла из УБ всегда равен «00000000000000000000000000000000»!!!)

            <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">
<v8de:Version>106.0</v8de:Version>
<v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
<v8de:Digest2>11651cf680807e97a5dc0d1ed7f901b0</v8de:Digest2>
</v8de:Config>

Перечисленные действия необходимо выполнять с предельной осторожностью, некорректная последовательность чревата полной неработоспособностью РИБ. Поэтому перед этими действиям создание резервных копий ОБЯЗАТЕЛЬНО!

В остальном могу только пожелать удачи!

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка чтения файла сообщения обмена значение не является значением объектного типа ссылка
  • Ошибка чтения файла про100