Всем привет. Хочу создать новое расширение на основании уже имеющегося, т.к. большинство объектов в нем уже создано и спроектировано как нужно. Для этого создаю новое расширение, в него загружаю старое и глобальным поиском заменяю префикс расширения, ну и плюс несколько ручных переименований. При попытке запуска конфигурации с обоими расширениями естественно выходит ошибка Конфликт внутренних идентификаторов у объекта такого-то. Собственно вопрос - как решить данную проблему? Люди советуют выгрузить расширение в файлы, заменить идентификаторы и загрузить обратно. Легче сказать чем сделать. Может есть какие то обработки для этих целей? Поиском в инете я почему-то таковой не нашел. Или может какой то др. способ обхода проблемы? Заранее спасибо!
1. Выгрузить конфигурацию расширения в cfe
2. Удалить расширение
3. Создать новое пустое расширение
4. Загрузить сохраненное ранее в пункте 1 расширение в новое ЧЕРЕЗ режим "Сравнить, объединить с конфигурацией из файла..."
5. В открывшемся окне "Сравнение, объединение..." зайти в Действия -> Параметры
6. Галочка "Режим копирования объектов (не сохраняются внутренние идентификаторы объектов)"
7. Выполнить
(2) Не помогло. Эх, если бы было все так просто... Я пошел дальше - написал обработку которая меняет все uuid во всех файлах - не помогло. Потом я заметил, что все uuid всех файлов прописаны в id атрибутах элементов файла ConfigDumpInfo.xml. Тогда я синхронизировал все измененные uuid с этим файлов - не помогло :( Возможно что-то еще не учел, а возможно где-то ошибка в алгоритме, но на вид все норм и без проблем загружается, но при запуске ошибка та же. Кеш чистил и пробовал все сделать сначала - не помогло...
Следующим шагом здесь нужно в файле Configuration.xml найти версию конфигурации и изменить ее. Одновременно с этим нужно в файле ConfigDumpInfo.xml отметить, что элемент конфигурации изменился. Для этого в соответствующем элементе (у которого в поле name значится Configuration.ИмяКонфигурации) нужно изменить аттрибут configVersion. Изменение версии у нас делится на два возможных варианта. В случае исправительного обновления без реструктуризации выпускается новая версия — меняется последнее число из четырех. В случае выхода нового релиза увеличивается третье число, а четвертое меняется на единицу — 1.
//--------
Реализована возможность частичной выгрузки редактируемой конфигурации в файлы XML. Под частичной выгрузкой понимается выгрузка только тех объектов, которые были изменены с момента последней выгрузки. При этом формируется файл с информацией о каждом выгружаемом объекте конфигурации (файл ConfigDumpInfo.xml). В данном файле (среди прочей информации) хранится внутренняя версия каждого выгруженного объекта. Повторная выгрузка объекта будет осуществляться в тех случаях, когда версия объекта в конфигураторе станет отличаться от версии объекта в файле ConfigDumpInfo.xml.
Также во время выгрузки может быть сформирован файл, содержащий информацию о тех изменениях, которые произошли в завершившейся выгрузке.
При загрузке конфигурации из файлов XML имеется возможность указать необходимость обновления файла с информацией о выгружаемых объектах конфигурации. В этом случае в файл вносится информация, соответствующая состоянию конфигурации после завершения загрузки.
Господи, да о каких я вообще внутренних идентификаторах говорю! Система расширений в штатном то режиме наладом дышит! Я пол дня промучился, что бы у меня 2 расширения одновременно заработало - плюнул на идентификаторы, создал новое расширение и покопировал объекты с одного в другое, после чего, при запуске предприятия платформа падала в ошибку, что не может найти реквизит метаданных. Думал, что что то с новым расширением, а как оказалось отвалилось первое расширение, которое до этого годами работало и помогло только полное удаление расширения, с предварительной выгрузкой cfe, добавление нового и загрузки в него предварительно выгруженного cfe и все опять работает, только вот все данные расширения полностью удаляются при этом и нет возможности сделать выгрузку данных из расширения, потому как предприятие не запускается и средств платформы тоже нет для выгрузки данных из расширения, и не помогают никакие тестирования и исправления. Мало того такая ошибка уже была, когда было подключено всего одно расширение, и хорошо, что это была тестовая база. Я теперь молюсь по вечерам, что бы у клиентов не сдохло расширение. Кроме того, тот же конструктор запросов нормально не работает если его вызывать из шаблонов, да вообще все что из шаблонов через Ctrl+Q вызывается - все работает не правильно - все конструкторы видят объекты и типы основной конфигурации, а не расширения. Сколько еще веков должно пройти, что бы расширения нормально работали? И ведь я не так долго и не так часто работаю с расширения и уже столкнулся просто горой ошибок! Неужели никто кроме меня не сталкивается с ними? Какие там новые объекты они добавляют в механизм расширений? Лучше бы исправили то что есть. И главное, что ошибку нормально не оформишь, потому что для этого придется высылать всю выгрузку базы с микроскопическим расширением, а данные ты никак не можешь отдать 3-м лицам. Короче, Боже упаси еще расширениями пользоваться. Задумка хорошая, но реализация как всегда... Лично мое мнение, что расширения просто напросто опасно пользоваться, т.к. я уже несколько раз я терял данные и это при том, что пользуемся одним из последних стабильных релизов.
Сохраните расширение, с которым видит дубль, потом удалите его, создайте новое и загрузите туда сохраненное и ошибка уйдет. Если не поможет, сделайте это со всеми расширениями. Мне помогло.
Столкнулся с такой же проблемой. Выгрузил все расширения в cfe, удалил все расширения, обновил конфигурацию, добавлял расширения по порядку по одному обновляя конфигурацию после каждого добавления. Ошибок не было
1. Выгрузить конфигурацию расширения в cfe
2. Удалить расширение
3. Создать новое пустое расширение
4. Загрузить сохраненное ранее в пункте 1 расширение в новое ЧЕРЕЗ режим "Сравнить, объединить с конфигурацией из файла..."
5. В открывшемся окне "Сравнение, объединение..." зайти в Действия -> Параметры
6. Галочка "Режим копирования объектов (не сохраняются внутренние идентификаторы объектов)"
7. Выполнить