1с удалить идентификаторы объектов метаданных
Для удаления объекта метаданных необходимо выполнить следующие действия:
· в окне «Конфигурация — Метаданные» выделите объект метаданных, который предполагается удалить;
· нажмите клавишу Del.
В выданном на экран запросе подтвердите необходимость удаления объекта метаданных. После подтверждения указанный объект метаданных будет удален.
Если удаляемый объект метаданных используется другими объектами, на экран будет выдано предупреждение, и выбранный объект метаданных удален не будет.
Такая ситуация может возникать, например, если удаляемый объект метаданных типа «Справочник» указан в качестве типа значения объекта метаданных типа «Реквизит справочника» или «Реквизит шапки документа».
Если действительно необходимо удалить выбранный объект метаданных, следует исключить его использование другими объектами. В нашем примере для этого необходимо найти все реквизиты документов, где в качестве типа значения указан удаляемый справочник, и указать для этих реквизитов использование в качестве типа значения либо другого справочника, либо установить тип значения «Справочник» (вообще).
Следует иметь в виду, что физическое удаление объекта метаданных из структуры метаданных и реорганизация информационной базы происходит при выполнении процедуры сохранения сделанных изменений (см. и. «Сохранение конфигурации» на стр. 32). Поэтому, если эта процедура еще не выполнялась, существует возможность восстановить удаленный объект метаданных.
Для восстановления удаленного объекта метаданных следует закрыть окно «Конфигурация — Метаданные», отказавшись от сохранения сделанных изменений и реорганизации информационной базы, и затем вновь открыть это окно. При этом следует учитывать, что будут утеряны все изменения в метаданных, которые были сделаны с момента предыдущего сохранения.
Внимание! Помните, что перед любыми изменениями в метаданных и в структуре информационной базы необходимо выполнить сохранение архивной копии информационной базы. О том, как это сделать, см. главу «Сохранение и восстановление данных».
Особенности предопределенных элементов объектов метаданных
Для некоторых объектов метаданных в платформе 1С:Предприятие 8 есть возможность задавать в конфигурации предопределенные элементы, для которых в информационной базе будут автоматически создаваться объекты с заданными значениями. В данной статье рассматриваются некоторые особенности их реализации и работы с ними.
Общие принципы реализации
Внутренний идентификатор
Каждый предопределенный элемент имеет внутренний идентификатор, который соответствует идентификатору объекта информационной базы, соответствующего данному предопределенному элементу.
Обновление конфигурации базы данных
При обновлении конфигурации базы данных для вновь созданных предопределенных элементов создаются новые объекты информационной базы. Для удаленных, по сравнению с версией конфигурации, хранящейся в базе данных, элементов, соответствующие объекты информационной базы помечаются на удаление. У этих объектов также снимается признак "Предопределенный". Важно еще раз отметить, что связь между элементом и объектом устанавливается только по внутреннему идентификатору. Следовательно, если в конфигурации присутствовал элемент с именем "А", в процессе редактирования конфигурации мы его удалили и вновь создали элемент с таким же именем, то этим элементам будут соответствовать разные объекты информационной базы. Старый объект будет помечен на удаление и лишится признака "Предопределенный", а новый будет создан. Поскольку в базе данных окажутся два практически одинаковых объекта, будет выдано предупреждение о дублировании кодов.
Поведение идентификаторов предопределенных элементов при копировании и объединении конфигураций
В отличие от идентификаторов объектов метаданных, идентификаторы предопределенных элементов при копировании не изменяются. Таким образом, два различных объекта метаданных могут иметь предопределенные элементы с одинаковыми идентификаторами.
Теперь рассмотрим, как описанные принципы влияют на поведение предопределенных элементов в различных механизмах платформы 1С:Предприятие 8.
Объединение конфигураций
При объединении конфигураций сопоставление между предопределенными элементами выполняется только по идентификатору, а не по имени или коду. Это следует учитывать при выборе правила объединения свойства "Предопределенные данные".
Рассмотрим следующую ситуацию. Вы разрабатываете конфигурацию и устанавливаете ее у заказчика. В процессе настройки возникает необходимость срочной доработки, в частности, добавления предопределенного элемента. Затем в своей основной разрабатываемой конфигурации вы "синхронизируете" изменения, добавляя такой же элемент, осуществляете еще какие-то доработки и приносите новую версию к заказчику.
Если при выполнении объединения конфигураций оставить правило по умолчанию - "Взять из конфигурации поставщика", то в результате останется только "ваша" версия элемента. При выполнении обновления конфигурации информационной базы, как было описано выше, будет создан новый объект, а старый помечен на удаление.
Если ссылок много, а дальнейшие объединения с другой конфигурацией не предполагаются (в описываемом сценарии это не так, но, может, вы просто хотите однократно добавить в конфигурацию некоторые объекты из другой), можно поступить иначе. При объединении для предопределенных данных установить правило "Объединять с приоритетом. " (приоритет будет влиять на порядок и место в иерархии предопределенных элементов с одинаковым идентификатором). После выполнения объединения в конфигурации будут присутствовать оба элемента, и старый и новый. Новый можно удалить (до выполнения обновления конфигурации базы данных). Главное, только их не перепутать. Для этого перед сравнением / объединением можно в основной конфигурации временно переименовать элемент, а потом вернуть обратно. При таком алгоритме, предопределенные элементы конфигурации из файла, которые не имеют аналогов, будут добавлены, а "конфликтные" нет.
Наконец, следует напомнить, что если из файловой конфигурации новых предопределенных данных добавлять не надо, то для свойства "Предопределенные данные" можно отключить пометку (флажок) объединения. При этом объединение конфигураций в целом будет выполнено, а предопределенные данные останутся старыми.
Однако различия в предопределенных данных не всегда приводят к подобным проблемам. Рассмотрим другой возможный сценарий. Вы выгружаете конфигурацию в файл, затем редактируете ее где-то в стороне, например, дома. В процессе редактирования добавляются новые предопределенные элементы и, возможно, удаляются или редактируются существующие. Затем выполняется объединение новой версии с оригинальной конфигурацией. В этом случае можно оставить правило объединения "Взять из файла". Как уже отмечалось, в процессе перемещения между различными конфигурациями идентификаторы элементов не изменяются, и все старые элементы вернуться со своими оригинальными идентификаторами.
Обмен данными
Описанный алгоритм поведения идентификаторов предопределенных элементов был использован для обеспечения корректности работы механизма обмена данными.
Рассмотрим следующий сценарий. В обмене участвуют две информационные базы, имеющие независимые конфигурации. В этих конфигурациях есть справочники, между которыми установлена связь. В одной из конфигураций мы добавляем предопределенный элемент. После обновления конфигурации базы данных создается соответствующий объект, который передается во вторую базу. В ней этот объект, естественно, не имеет признака "Предопределенный".
Затем мы объединяем вторую конфигурацию с первой, и копируем предопределенные данные. Поскольку идентификатор элемента не изменяется, то при последующем обновлении конфигурации базы данных, элемент "найдет" свой объект, и не будет создан новый. В случае, если бы идентификаторы элементов изменялись по тем же правилам что и идентификаторы объектов метаданных, подобный сценарий привел бы к проблемам.
1. Если при изменении структуры метаданных конфигурации планируется удалить объект метаданных (реквизит, измерение, ресурс и пр.), связанный с записями информационной базы, то необходимо принять решение об удалении или переносе данных этого объекта в новые структуры. При переносе данных в другие объекты рекомендуется придерживаться следующих правил:
- Не удалять из конфигурации устаревшие объекты метаданных и реквизиты безвозвратно, а пометить их как устаревшие, добавив к их именам префикс "Удалить". Например: реквизит "ОсновнойДоговор" должен быть переименован в «УдалитьОсновнойДоговор». В синоним устаревшего объекта (реквизита) рекомендуется добавлять префикс "(не используется)", например: "(не используется) Основной договор". Если же устарел стандартный реквизит, то префикс "(не используется)" также добавляется в его синоним.
- После изменения структуры метаданных следует обеспечить перенос данных из устаревших реквизитов в новую структуру метаданных конфигурации. Кроме того, если удаляемый объект метаданных является документом – регистратором движений, а соответствующие регистры с движениями остаются в составе конфигурации, то необходимо обратить внимание на необходимость сохранения движений. Для сохранения движений документов – устаревших объектов метаданных, рекомендуется:
- Запретить генерацию движений при проведении документов этого вида.
- Запретить снятие пометки удаления для документов этого вида.
- Во всех существующих движениях документов этого вида изменить регистратор на один или несколько замещающих документов-регистраторов: существующих универсальных или специально разработанных. Например "Перенос данных","Операция".
- Пометить все документы этого вида на удаление.
- Произвести замену во всей конфигурации обращений к устаревшим реквизитам на обращение к новым данным, поскольку использование устаревших объектов и их реквизитов после изменения структуры метаданных методически неверно
- При сортировке устаревших объектов метаданных и реквизитов в дереве метаданных следует придерживаться общих требований к конфигурации .
Выполнение этих правил позволит отвязать существующие и не допустить возникновения новых записей информационной базы для объектов метаданных.
2. Безвозвратно удалять устаревшие объекты метаданных и реквизиты, помеченные префиксом "Удалить", следует при выпуске очередных версий конфигурации в том случае, если соблюдается одно из условий:
- Переход со "старой" версии конфигурации на новые версии всегда выполняется пользователями последовательно, "через" версию с реализованным переносом данных из "устаревших" объектов метаданных и реквизитов. Например: если в конфигурации версии 1.1 реквизит "ОсновнойДоговор" был помечен как устаревший, то переход с версии 1.0 на версию 2.0 всегда выполняется только последовательно: сначала на версию 1.1 (в которой происходит обработка устаревших данных), а затем на 2.0 (в которой устаревшие данные могут быть удалены безвозвратно). Непосредственный переход с версии 1.0 на 2.0 технически невозможен (запрещен).
- Вероятность того, что "старой" версией конфигурации еще пользуются, стала нулевой или пренебрежимо малой.
Другие материалы по теме:
Нас находят: удалить объект из конфигурации 1с, ОбъектМетаданных СтандартныеРеквизиты Регистратор, 1с удаленный объект метаданных остался, префикс удалить 1с, rfr d fpt 1 c yfqnb lfne ghbyznbz yvf, как удалить реквизит из конфигурации 1с, 1с как удалить индентификаторы объектов метеданных, удаление версий объектов старых данных 1с, 1с удалить объект метаданных, rfr elfkbnm vtnflfyyst 1c8
Очередной раз я за маньячил БСП, сижу смотрю на весь этот беспредел в скриптах и не могу понять накой фиг нужен этот Справочник?
Кто ни будь, киньте в меня ссылкой на подробное описание этого справочника! ЗАЧЕМ ОН НУЖЕН?
Программное создание объектов метаданных
Всем привет! Возможно ли средствами 1С или каким-либо сторонним ПО создать новый объект(документ.
Ошибка Метаданных "не найден идентификатор в справочнике Идентификатор объекта метаданных"
В общем ситуация следующая, только начал разбираться с 1С, скачал с оф сайта учебную версию для.
Подскажите, пожалуйста, для JS полный справочник объектов, свойств, методов
Здравствуйте. Подскажите, пожалуйста, есть ли для JS полный справочник объектов, свойств, методов.
Где можно найти документацию, справочник, описание COM-объектов Excel, Word?
Подскажите где можно найти документацию, справочник, описание COM-объектов Excel, Word? Мой шеф.
Для хранения списка объектов метаданных
как я понял: юзается при сравнении конфигураций (а сравнение юзается при обновлении, обмене+обновлени, совместной разработке конф, итд)
Добавлено через 2 минуты
з.ы. конкретной инфы по справочнику не находил, везде косвенные отсылки к самому явлению "идентификаторы объектов метаданных"
Т.е. конфигуратора для этого НАМ мало.
Добавлено через 33 секунды
Давайте в Регистре Сведений хранить тексты функций?!
Добавлено через 25 минут
Нашел на ИТСе
Использование идентификаторов объектов метаданных
При необходимости хранить в базе данных ссылку на объект метаданных (например, ссылка на объект метаданных Справочник.Организации) рекомендуется вместо строкового реквизита с полным именем объекта метаданных использовать ссылку на соответствующий элемент справочника ИдентификаторыОбъектовМетаданных. Такая потребность возникает, например, в различных подсистемах БСП: для хранения настроек версионирования данных, списка выбранных ролей в профилях групп доступа и т.п.
Такой подход позволяет
● повысить производительность запросов, которые обращаются к реквизитам данного типа;
● снизить размер таблиц в базе данных, в которых используются реквизиты данного типа,
● выводить в пользовательском интерфейсе представление ссылки вместо строкового имени объекта метаданных,
● а также избавиться от разработки обработчиков обновления и первоначального заполнения ИБ для актуализации строковых реквизитов с полными именами объектов метаданных при изменениях метаданных конфигурации.
Программно, ссылку на объект метаданных можно получить с помощью функции ИдентификаторОбъектаМетаданных общего модуля ОбщегоНазначения.
Справочник ИдентификаторыОбъектовМетаданных заполняется автоматически при первом запуске (и каждом обновлении) конфигурации, согласно метаданным конфигурации, а также автоматически актуализируется при каждом обновлении версии конфигурации (учитываются переименованные, добавленные и удаленные объекты метаданных). Полный список объектов метаданных (справочники, документы, регистры, и т.п.), обновление идентификаторов которых выполняется автоматически, см. в комментарии к функции ИдентификаторОбъектаМетадан*ных общего модуля ОбщегоНазначения.
Исключение составляют подсистемы и роли, обновление идентификаторов которых требуется выполнять вручную. Необходимость обновления идентификаторов подсистем и ролей возникает при их переименовании (а для подсистем – также и в случае их перемещения из одной родительской подсистемы в другую). В противном случае, возможно рассогласование идентификаторов объектов метаданных с объектами метаданных конфигурации.
Для обновления идентификаторов необходимо воспользоваться процедурой ЗаполнитьТаблицуПереименованияОбъектовМетаданных общего модуля ОбщегоНазначенияПереопределяемый и увеличить номер версии конфигурации. Например, следующий фрагмент кода описывает, что в версии конфигурации 2.0.1.2 подсистема _ДемоПоставляемыеДанные была перенесена из подсистемы _ДемоРаботаВМоделиСервиса в _ДемоНастройкаИАдминистрирование:
Обновление идентификаторов выполняется последовательно по версиям конфигурации, а в пределах одной версии – в порядке следования строк со сведениями о переименованиях. Обновление идентификаторов для переименованных подсистем выполняется также и для всех их дочерних подсистем (если они есть).
Отдельным случаем, когда обновление идентификаторов происходит автоматически, является переименование объектов метаданных с целью изменения структуры данных с помощью создания новой копии объекта метаданных. Такая необходимость возникает, когда реструктуризация объекта метаданных невозможна. Например, при сокращении длины кода справочника Подразделения с 50 до 11, может потребоваться создать новый справочник, а старый переименовать в УдалитьПодразделения. В этом случае идентификатор справочника будет автоматически назначен новому справочнику с тем же именем.
Однако если при этом новый справочник будет назван иначе, например, СтруктурныеЕдиницы, то потребуется отразить переименование справочника Подразделения в справочник СтруктурныеЕдиницы, как это описано выше.
При активной разработке конфигурации данные справочника ИдентификаторыОбъектовМетаданных можно также обновлять вручную, без увеличения номера версии конфигурации, с помощью команды Обновить данные справочника в форме списка (открыв ее, например, из меню Все функции). Однако, это допустимо только в случае, когда не производилось переименование ролей и/или подсистем. В случае переименования ролей и/или подсистем, перед выполнением команды Обновить данные справочника нужно выполнить переименование полных имен соответствующих элементов справочника. Для этого нужно открыть форму элемента справочника ИдентификаторыОбъектовМетаданных, выполнить команду Включить возможность редактирования в меню Все действия и задать новое полное имя. В противном случае, этот элемент справочника будет помечен на удаление и создан новый, что приведет к рассогласованию идентификаторов объектов метаданных с объектами метаданных конфигурации.
Т.е. конфигуратора для этого НАМ мало.
Добавлено через 33 секунды
Давайте в Регистре Сведений хранить тексты функций?!
Добавлено через 25 минут
Нашел на ИТСе
Использование идентификаторов объектов метаданных
При необходимости хранить в базе данных ссылку на объект метаданных (например, ссылка на объект метаданных Справочник.Организации) рекомендуется вместо строкового реквизита с полным именем объекта метаданных использовать ссылку на соответствующий элемент справочника ИдентификаторыОбъектовМетаданных. Такая потребность возникает, например, в различных подсистемах БСП: для хранения настроек версионирования данных, списка выбранных ролей в профилях групп доступа и т.п.
Такой подход позволяет
● повысить производительность запросов, которые обращаются к реквизитам данного типа;
● снизить размер таблиц в базе данных, в которых используются реквизиты данного типа,
● выводить в пользовательском интерфейсе представление ссылки вместо строкового имени объекта метаданных,
● а также избавиться от разработки обработчиков обновления и первоначального заполнения ИБ для актуализации строковых реквизитов с полными именами объектов метаданных при изменениях метаданных конфигурации.
Программно, ссылку на объект метаданных можно получить с помощью функции ИдентификаторОбъектаМетаданных общего модуля ОбщегоНазначения.
Справочник ИдентификаторыОбъектовМетаданных заполняется автоматически при первом запуске (и каждом обновлении) конфигурации, согласно метаданным конфигурации, а также автоматически актуализируется при каждом обновлении версии конфигурации (учитываются переименованные, добавленные и удаленные объекты метаданных). Полный список объектов метаданных (справочники, документы, регистры, и т.п.), обновление идентификаторов которых выполняется автоматически, см. в комментарии к функции ИдентификаторОбъектаМетадан*ных общего модуля ОбщегоНазначения.
Исключение составляют подсистемы и роли, обновление идентификаторов которых требуется выполнять вручную. Необходимость обновления идентификаторов подсистем и ролей возникает при их переименовании (а для подсистем – также и в случае их перемещения из одной родительской подсистемы в другую). В противном случае, возможно рассогласование идентификаторов объектов метаданных с объектами метаданных конфигурации.
Для обновления идентификаторов необходимо воспользоваться процедурой ЗаполнитьТаблицуПереименованияОбъектовМетаданных общего модуля ОбщегоНазначенияПереопределяемый и увеличить номер версии конфигурации. Например, следующий фрагмент кода описывает, что в версии конфигурации 2.0.1.2 подсистема _ДемоПоставляемыеДанные была перенесена из подсистемы _ДемоРаботаВМоделиСервиса в _ДемоНастройкаИАдминистрирование:
Обновление идентификаторов выполняется последовательно по версиям конфигурации, а в пределах одной версии – в порядке следования строк со сведениями о переименованиях. Обновление идентификаторов для переименованных подсистем выполняется также и для всех их дочерних подсистем (если они есть).
Отдельным случаем, когда обновление идентификаторов происходит автоматически, является переименование объектов метаданных с целью изменения структуры данных с помощью создания новой копии объекта метаданных. Такая необходимость возникает, когда реструктуризация объекта метаданных невозможна. Например, при сокращении длины кода справочника Подразделения с 50 до 11, может потребоваться создать новый справочник, а старый переименовать в УдалитьПодразделения. В этом случае идентификатор справочника будет автоматически назначен новому справочнику с тем же именем.
Однако если при этом новый справочник будет назван иначе, например, СтруктурныеЕдиницы, то потребуется отразить переименование справочника Подразделения в справочник СтруктурныеЕдиницы, как это описано выше.
При активной разработке конфигурации данные справочника ИдентификаторыОбъектовМетаданных можно также обновлять вручную, без увеличения номера версии конфигурации, с помощью команды Обновить данные справочника в форме списка (открыв ее, например, из меню Все функции). Однако, это допустимо только в случае, когда не производилось переименование ролей и/или подсистем. В случае переименования ролей и/или подсистем, перед выполнением команды Обновить данные справочника нужно выполнить переименование полных имен соответствующих элементов справочника. Для этого нужно открыть форму элемента справочника ИдентификаторыОбъектовМетаданных, выполнить команду Включить возможность редактирования в меню Все действия и задать новое полное имя. В противном случае, этот элемент справочника будет помечен на удаление и создан новый, что приведет к рассогласованию идентификаторов объектов метаданных с объектами метаданных конфигурации.
Читайте также: