Общие правила обмена объектами метаданных между конфигурациями
В процессе разработки часто возникает необходимость переноса объектов метаданных между конфигурациями. Платформа 1С:Предприятие 8 предоставляет несколько механизмов, которые в той или иной степени позволяют решать данную задачу. К ним относятся:
- Копирование объектов метаданных через буфер обмена
- Объединение конфигурации с файлом
- Загрузка конфигурации из файла
- Хранилище конфигурации
- Обновление конфигурации, находящейся на поддержке
- Обновление конфигурации базы данных
В данной статье рассматриваются некоторые особенности работы этих механизмов, которые позволяют прогнозировать результат перемещений объектов по «цепочкам» конфигураций и правильно выбирать соответствующий механизм. Следует заметить, что статья не является подробным руководством по использованию данных механизмов.
Сопоставление объектов. Имя и идентификатор объекта метаданных
При перемещении объектов между конфигурациями важную роль играет вопрос их сопоставления. Необходимо иметь возможность определить, являются ли два данных объекта разными объектами или копиями одного и того же объекта. Предположим, что мы тем или иным способом скопировали объект из одной конфигурации в другую, а затем выполнили объединение этих конфигураций. Естественно ожидать, что платформа определит соответствие двух объектов, а не будет считать их разными объектами с одинаковыми именами. Для сопоставления объектов используются имя и внутренний идентификатор объекта. И если имя в процессе перемещения объекта, как правило, не изменяется (в любом случае мы можем его контролировать и, при необходимости, модифицировать), то внутренний идентификатор объекта ведет себя по-разному в зависимости от используемого механизма. В приведенной ниже таблице описываются способы сопоставления объектов и поведение внутренних идентификаторов при использовании разных механизмов.
При отключенной возможности изменений – сопоставление по идентификаторам. При включенной возможности изменений – сопоставление по идентификаторам, которые в некоторых случаях могут отличаться. В некоторых ситуациях возможна ручная установка соответствия.
Три уровня работы механизмов
Таким образом, механизмы переноса объектов можно разделить по трем уровням:
- Механизмы которые требуют и обеспечивают строгое соответствие идентификаторов. К ним относятся сохранение / загрузка конфигурации, работа с хранилищем конфигурации, обновление конфигурации базы данных и обновление конфигурации, находящейся на поддержке при отключенной возможности изменений.
- Механизмы, которые используют соответствие по идентификаторам, но не гарантируют их неизменность. К ним относится обновление конфигурации, находящейся на поддержке при включенной возможности изменений.
- Механизмы, которые не используют и не обеспечивают неизменность идентификаторов. К ним относятся копирование через буфер обмена и объединение конфигурации.
Можно определить следующее правило:
Для обеспечения корректного сопоставления объектов уровень механизмов нельзя понижать.
Например, имеются две конфигурации: одна, в которой ведется разработка и вторая — в «рабочей» базе. Новые версии разрабатываемой конфигурации переносятся при помощи механизма загрузки конфигурации с последующим обновлением конфигурации базы данных. Используемый механизм переноса объектов относится к первому уровню, и идентификаторы при переносе не изменяются. Предположим, что для очередного обновления был использован механизм объединения конфигураций. Проблемы при этом не возникнет, поскольку для «старых» объектов, присутствовавших в предыдущих версиях, идентификаторы не изменились. Однако новые объекты попали в «рабочую» базу с измененными идентификаторами. Для дальнейших переносов новых версий нужно будет использовать только механизм объединения конфигураций, поскольку при выполнении загрузки (то есть при понижении уровня механизма со второго на первый), идентификаторы некоторых объектов «восстановятся» с точки зрения конфигурации разработки, но изменятся с точки зрения «рабочей» конфигурации. В этом случае при обновлении конфигурации базы данных произойдет потеря данных.
Примеры
Параллельное создание объектов
Используется одна конфигурация в двух разных базах: в базе разработки и в базе заказчика. При обновлении конфигурации заказчика, была на месте произведена доработка, в результате которой в базу был добавлен новый объект. Затем в конфигурации разработки этот объект был добавлен вручную. Фактически мы воспользовались механизмом третьего уровня (поскольку идентификаторы у объектов получились разные). Для дальнейшей синхронизации конфигураций без потери данных можно применять только объединение (механизм третьего уровня). Для того, что бы избежать подобных проблем, следует после доработки у заказчика сохранить конфигурацию в файл, а затем загрузить ее в базу разработки.
Восстановление автоматической поддержки конфигурации поставщика
Конфигурация находится на поддержке в полностью автоматическом режиме (с отключенной возможностью изменений). Предположим, что в какой-то момент возможность изменений была включена. Например, это понадобилось для срочного исправления ошибки. После исправления ошибки поставщиком, возникла необходимость отключить возможность изменений для облегчения последующих обновлений. Но это приведет к понижению уровня механизма, а следовательно гарантированного сохранения данных информационной базы при этом добиться будет невозможно. Следует создать новую базу из дистрибутива конфигурации поставщика (с выключенной возможностью изменений) и программно перенести в нее данные.
Примеры анализа цепочки изменений конфигурации
Приведем несколько примеров анализа цепочки изменений конфигурации с точки зрения возможности потери данных.
Например, конфигурация хранилища была сохранена в файл. Это механизм первого уровня. В другой базе было выполнено объединение конфигурации с этим файлом. Уровень повысился до третьего. Затем возникла необходимость подключить эту базу к хранилищу. Механизм хранилища работает на первом уровне, поэтому при этом будет возможна потеря данных.
Другой пример. Мы ведем разработку конфигурации в некоторой базе и готовим в ней файлы поставки. Кроме того, у нас есть подготовленная демонстрационная база, которую мы поставляем пользователям. После создания файла поставки очередной версии мы загружаем его в демонстрационной базе. Все использованные механизмы работают на первом уровне, поэтому расхождения идентификаторов и потери данных не произойдет.
Для получения более подробной информации по поведению идентификаторов и сопоставлению объектов, мы рекомендуем ознакомиться с циклом статей «Поставка и поддержка конфигураций».
FAQ и советы по 1С
Если вам потребовалось обновить идентификаторы объектов метаданных в 1С, то сапое простое это запустить базу с ключом:
/c ЗапуститьОбновлениеИнформационнойБазы
Обратите внимание ключ «с» должен быть на латинице.
Количество показов: 119235
Картинка дня 😉
Новая конфигурация 1С:Кадры, деньги, два ствола
Подпишитесь:
Последние 10 подписчиков:
Всего подписчиков: 417
Сайт посвящен конфигурации 1C:Управление торговлей 11 и CMS Битрикс. Все статьи являются авторскими, копирование и распространение запрещено.
Идентификаторы объектов метаданных как обновить
Справочник.Константы — добавлен в расширение
Попробовал взять обработку ИР из соответствующей версии БСП и напустить на базу — результатов не дало
Что получаю, запустив конфигурацию с ключом «/С ЗапуститьОбновлениеИнформационнойБазы»:
: Ошибки при выполнении функции ОбщегоНазначения.ИдентификаторыОбъектаМетаданных().
Для объекта метаданных «Справочник.Константы»
не найден идентификатор в справочнике «Идентификаторы объектов метаданных» и
регистре сведений «Идентификаторы объектов версий расширений».
Для разработчика: возможно требуется обновить вспомогательные данные,
которые влияют на работу программы. Для выполнения обновления можно:
— воспользоваться внешней обработкой
«Инструменты разработчика: Обновление вспомогательных данных»,
— либо запустить программу с параметром командной строки 1С:Предприятия 8
«/С ЗапуститьОбновлениеИнформационнойБазы»,
— либо увеличить номер версии конфигурации, чтобы при очередном запуске
выполнились процедуры обновления данных информационной базы.
ладно с обработкой ИР, может она нужна от более поздней БСП, но почему ключ запуска отрабатывает не так, как мне надо? чяднт?
Идентификаторы объектов метаданных в 1С
В конфигурациях системы 1С Предприятие, поддерживающих БСП, есть справочник «Идентификаторы объектов метаданных».
Данный справочник является служебным. Рядовой пользователь с ним, как правило, не сталкивается, разве что, при неудачных обновлениях, когда получает ошибку вида «Для объекта метаданных … не найден идентификатор в справочнике «Идентификаторы объектов метаданных». Основные действия со справочником выполняются БСП автоматически, поэтому и разработчики с этим справочником тоже встречается нечасто.
Разберемся, зачем же он нужен и что с ним делать.
1. Назначение справочника «Идентификаторы объектов метаданных»

Основной причиной использование такого справочника является, вероятно, то, что на уровне платформы системы 1С Предприятие нет прямых способов получения уникального идентификатора объекта метаданных конфигурации, т.е. нельзя обратиться к ссылке на этот объект.
Максимально, до чего можно добраться – это до строкового представления «ПолноеИмя().
Например, метод Метаданные.Справочник.СтатьиДвиженияДенежныхСредств.ПолноеИмя() вернет строку «Справочник. СтатьиДвиженияДенежныхСредств».
А к самой ссылке «c18aed98-9a38-4a4f-bee4-1b6977344491» никак не обратиться.
Поэтому нельзя построить производительные (с использованием запросов по ссылкам) программные механизмы по работе с объектами метаданных 1С. Чтобы обойти это ограничение и создали справочник «Идентификаторы объектов метаданных».
Смысл простой: в 1С заполнить справочник элементами, соответствующими объектам метаданных 1С конфигурации, и использовать ссылки на элементы этого справочника в качестве «ссылок» на объекты метаданных 1С.
Основное направление использования – автоматизация процедур обновления конфигурации 1С Предприятие в части добавление, переименования и удаления объектов метаданных 1С. Можно выбрать объекты, по которым изменилась структура метаданных и как-то их обработать при обновлении.
БСП использует этот справочник еще и для хранения настроек версионирования данных, хранения списка выбранных ролей в профилях групп доступа и т.п.
2. Работа со справочником 1С: Идентификаторы объектов метаданных

Работа со справочником 1С: Идентификаторы объектов метаданных, сводится в основном к поддержанию актуальности соответствия состава этого справочника и структуры объектов метаданных 1С.
В последних редакциях конфигураций 1С на БСП обновление этого справочника (идентификаторов объектов метаданных) производится полностью автоматически, даже если разработчик добавил свои (нетиповые) объекты метаданных 1С. Исключение составляют добавленные роли и подсистемы – их идентификаторы нужно обновлять вручную.
К необходимости ручного обновления приводят также различные «сбои» в процедурах обновления, когда нарушается соответствие между содержимым справочника и структурой метаданных.
Информации о том, как вручную запустить обновления идентификаторов, очень много на просторах сети. Один из простых способов: запустить программу с параметром командной строки программы 1С: Предприятия 8 «/С ЗапуститьОбновлениеИнформационнойБазы»: · В режиме Конфигуратора в 1С:

· В режиме Предприятия системы 1С:

Специалист компании «Кодерлайн» Игорь Борисенко
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —>
Вас могут заинтересовать следующие вебинары:
1С: Конвертация данных [1] => Конвертация данных [2] => Программирование в 1С [3] => Как сделать в 1С [4] => 1С:Бухгалтерия [5] => Отчеты в 1С [6] => Обмен между базами [7] => Закрытие месяца [8] => 1С:Управление производственным предприятием [9] => 1С: Розница [10] => 1С: CRM [11] => Оценка задач [12] => СКД [13] => РСБУ [14] => Администрирование 1С [15] => Оптимизация [16] => 1С: ERP [17] => Моделирование [18] => Продажи [19] => 1С: Управление торговлей [20] => Бюджетирование [21] => HTTP [22] => Управление проектами [23] => MS SQL Server [24] => МСФО [25] => БУ [26] => Внедрение ERP [27] => com-объекты [28] => 1С: WMS Управление складом [29] => Перенос данных [30] => Торговое оборудование [31] => 1С: Сценарное тестирование [32] => 1С: Колледж [33] => Запросы 1С [34] => LINUX [35] => WEB [36] => Лицензии 1С [37] => 1С:Зарплата и Управление Персоналом [38] => 1С: Документооборот [39] => Excel [40] => ADO [41] => Транспортная логистика [42] => Внедрение [43] => Техническое задание [44] => Отчетность [45] => Ценообразование [46] => 1С:Комплексная автоматизация [47] => Производство [48] => Интеграция 1С [49] => Планирование [50] => Налоги [51] => Отпуск [52] => Полезные обработки [53] => Расширение конфигурации [54] => XML [55] => Word [56] => WEB-сервисы 1С [57] => Лизинг [58] => 1С:Управление нашей фирмой [59] => 1С:Управление корпоративными финансами [60] => 1С: Аренда и управление недвижимостью [61] => Правила обмена [62] => 1С: Платформа [63] => Финансовый учет ) —>