Нельзя организовать обмен данными когда один из узлов обмена имеет пустой код
Возникла необходимость обновить конфигурацию базы данных.
Конфигурация Приемный пункт ювелирного ломбарда, редакция 2.0.5.4, работает на платформе 8.3.8.1652.
Последняя версия 2.1.1.37 требует платформу 8.3.15.2107.
Важный момент - у меня РИБ. В стандартной (от разработчика) конфигурации плана обмена нет, я его сам добавлял.
Так вот, если запустить базу на платформе 8.3.15.2107, то возникает казус - при синхронизации происходит ошибка "Нельзя организовать обмен данными когда один из узлов обмена имеет пустой код! Обмен отменен.".
Ошибка возвращает платформа, т.е. это текст из ОписаниеОшибки().
На 1-м скриншоте работа на платформе 8.3.8.1652 - все хорошо - синхронизация проходит, валидная ссылка на ЭтотУзел, иконка у ЭтогоУзла отличается от остальных.
На 2-м скриншоте эта же база (без обновлений, просто запустил на другой версии платформы), но на платформе 8.3.15.2107 - функция ЭтотУзел() возвращает ссылку на несуществующий объект.
Иконка узла такая же, как у остальных.
Притом узел, который был "этим узлом" на предыдущей версии платформы, остается.
Идентификаторы ссылок разные.
"Бывший" ЭтотУзел имеет установленный флаг ЭтотУзел (оно и понятно, т.к. он был ЭтимУзлом на платформе 8.3.8.1652).
Как решить данную проблему?
Пока сделал следующее: создал объект по ссылке, переименовал старый и новый узел, поменял код, чтобы именование файлов обмена не изменилось.
Сделал это в обоих базах (центральной и узловой - тестовые).
Проверил синхронизацию, всё вроде работает.
Единственное - не могу пометить на удаление "Бывший" ЭтотУзел, т.к. у него установлена флаг ЭтотУзел. Изменить я его никак не могу - ни у бывшего, ни у нового.
Другой вариант - удалить план обмена из конфигурации, обновить, вернуть обратно, и вроде должны быть Ок.
Но не вариант, т.к. придется создавать заново кучу базу, переносить данный за период между обновление рабочей базы, и внедрением нового узла на точке (т.е. придется еще обработку переноса данных делать, что очень не хочется).
На последних платформах не катит запускать, т.к. ошибка при запуске - закодированные модули, что-то там не так с параметрами сеанса. И не факт, что это поможет.
Можно ли избежать этого глюка, либо удалить старые узлы?
Конфигурация Приемный пункт ювелирного ломбарда, редакция 2.0.5.4, работает на платформе 8.3.8.1652.
Последняя версия 2.1.1.37 требует платформу 8.3.15.2107.
Важный момент - у меня РИБ. В стандартной (от разработчика) конфигурации плана обмена нет, я его сам добавлял.
Так вот, если запустить базу на платформе 8.3.15.2107, то возникает казус - при синхронизации происходит ошибка "Нельзя организовать обмен данными когда один из узлов обмена имеет пустой код! Обмен отменен.".
Ошибка возвращает платформа, т.е. это текст из ОписаниеОшибки().
На 1-м скриншоте работа на платформе 8.3.8.1652 - все хорошо - синхронизация проходит, валидная ссылка на ЭтотУзел, иконка у ЭтогоУзла отличается от остальных.
На 2-м скриншоте эта же база (без обновлений, просто запустил на другой версии платформы), но на платформе 8.3.15.2107 - функция ЭтотУзел() возвращает ссылку на несуществующий объект.
Иконка узла такая же, как у остальных.
Притом узел, который был "этим узлом" на предыдущей версии платформы, остается.
Идентификаторы ссылок разные.
"Бывший" ЭтотУзел имеет установленный флаг ЭтотУзел (оно и понятно, т.к. он был ЭтимУзлом на платформе 8.3.8.1652).
Как решить данную проблему?
Пока сделал следующее: создал объект по ссылке, переименовал старый и новый узел, поменял код, чтобы именование файлов обмена не изменилось.
Сделал это в обоих базах (центральной и узловой - тестовые).
Проверил синхронизацию, всё вроде работает.
Единственное - не могу пометить на удаление "Бывший" ЭтотУзел, т.к. у него установлена флаг ЭтотУзел. Изменить я его никак не могу - ни у бывшего, ни у нового.
Другой вариант - удалить план обмена из конфигурации, обновить, вернуть обратно, и вроде должны быть Ок.
Но не вариант, т.к. придется создавать заново кучу базу, переносить данный за период между обновление рабочей базы, и внедрением нового узла на точке (т.е. придется еще обработку переноса данных делать, что очень не хочется).
На последних платформах не катит запускать, т.к. ошибка при запуске - закодированные модули, что-то там не так с параметрами сеанса. И не факт, что это поможет.
Можно ли избежать этого глюка, либо удалить старые узлы?
Прикрепленные файлы:


По теме из базы знаний
- 1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)
- Краткое руководство по внесению изменений в конфигурацию
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- А вот и Шина подъехала! Часть 3. Итоги
- Применение 1С:Аналитики и Дата акселератора, или Как получить в 1С прозрачность и скорость обработки данных для прямого доступа и контроля руководителя
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) У несуществующего объекта?
Повторюсь - на новой платформе ЭтоУзел() возвращает ссылку на несуществующий объект (написал в исходом топике). Т.к. объекта нет, то и все поля у него пустые.
Для примерно, можно сгенерировать любой УИД, из него получить ссылку, по ней получить объект, только реального объекта в базе не будет. У меня также.
Повторюсь - на новой платформе ЭтоУзел() возвращает ссылку на несуществующий объект (написал в исходом топике). Т.к. объекта нет, то и все поля у него пустые.
Для примерно, можно сгенерировать любой УИД, из него получить ссылку, по ней получить объект, только реального объекта в базе не будет. У меня также.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот