Уникальный идентификатор в 1С область и некоторые особенности использования

В самом названии «уникальный идентификатор» содержится два главных качества, которыми должен обладать данный объект:

  1. Он должен был уникальным;
  2. С его помощью можно легко определить, какой объект он идентифицирует.

Уникальность

Разговор про уникальность необходимо начинать с того, что такое GUID (Globally Unique Identifier) и как этот GUID формируется.

Событие, состоящее в выпадение двух абсолютно одинаковых чисел из последовательности, максимальный член которой имеет порядок 10 в 38 степени, очевидно, является маловероятным. Именно на этом и основан принцип глобального уникального идентификатора.

Каждый идентификатор содержит 128 бит информации, записанный в виде шестнадцатиричного числа ( в 1С имеет вид a96ca0cd-b164-11e6-80c2-00155d001fe4). Простенький код (Рис.1) позволяет получить УИ любого элемента базы данных.

Рис.1

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

Идентификация

Воспользовавшись вышесказанными особенностями, статистически маловероятную величину решили использовать в программировании для определения уникальности того или иного объекта. Базы данных 1С также используют эту возможность.

Каждая ссылка в 1С на тот или иной объект данных состоит из двух частей, которые позволяют максимально полно его описать:

  • Уникальный идентификатор (УИ), можно называть его GUID;
  • Типа ссылки (описание объекта метаданных).

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

Важно понимать, что УИ в базах 1С не позволяет идентифицировать элементы необъектного типа, в частности строки табличных частей документов и справочников. В случае возникновения такой необходимости, её придется прописывать самостоятельно.

Область использования уникального идентификатора

Исходя из свойств этого поля, вырисовываются и направления его применения:

  1. Обмен данными между конфигурациями;
  2. Поиск необходимого объекта;
  3. Восстановление неправильно удаленных объектов.

Один интересный факт: до записи объекта в базу данных 1С он имеет идентификатор, состоящий из нолей (00000000-0000-0000-0000-000000000000).

Обмен данными

Если говорить об обмене данными между разными конфигурациями 1С8, то здесь существует регистр сведений Значения свойств объектов, который позволяет хранить практически любую дополнительную информацию. Задав для справочника «Номенклатура» дополнительное свойство «УИ 82», и присвоив ему тип «Строка» (рис.2), мы тем самым можем сохранить в него уникальный идентификатор из другой базы.

Рис.2

Синхронизация подобным образом позволяет без проблем производить выгрузку в обоих направлениях, не опасаясь пересортицы и задвоения элементов.

Поиск объекта

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

Восстановление объектов

Зачастую при формировании отчетов пользователи сталкиваются со строкой (рис.3).

Рис.3

Причин её возникновения может быть несколько, главная – игнорирование ссылочной целостности базы данных при удалении объектов. Рассмотрев строку поближе и зная о GUID и уникальных идентификаторах можно заметить, что она состоит из двух частей:

  1. Несколько цифр до двоеточия;
  2. Шестнадцатеричный код после.

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

  1. В первую очередь необходимо выяснить, какой тип данных у удаленного объекта. Для этого можно: уточнить тип поля у отчета, посмотреть, какие дополнительные отчеты открываются при щелчке по нему, попробовать сформировать подобный отчет на сохраненной копии. В нашем случае это элемент справочника «Номенклатура», в первичных документах у табличных частей будет вид (Рис.4); Рис.4
  2. Проверить в выгрузках, в старых копиях наличие удаленного элемента;
  3. Выгрузить его поля и табличные части в любой удобный для последующей загрузки формат (xml, dbf, xls);
  4. Загрузить данные в базу.

Очень важно понимать, что возможности по использованию уникального ID не ограничиваются этими тремя направлениями.



Контрольные соотношения для расчета по страховым взносам
Контрольные соотношения для расчета по страховым взносам. Письмо ФНС России от 13.12.2017 № ГД-4-11/25417@ ...
Версионирование правил обмена в Git
Статья рассказывает о принципах работы скриптов, позволяющих применять систему контроля версий git и подход gitflow для версионирования правил обмена ...
Должностная инструкция специалиста по 1С
Описание функциональных обязанностей для трёх категорий специалистов 1С: Администратор платформы, Программист, Администратор конфигурации (Методист) ...
Новый релиз Общепит, редакция 2.0
Текущая версия конфигурации "1С:Предприятие 8. Общепит" предназначена для использования с версией системы 1С:Предприятие не ниже 8.3.8.1747 При работе с операционной ...
В России выпустили ОС для отечественных процессоров
Компания «Базальт СПО» разработала линейку операционных систем ОС АЛЬТ, которая поддерживает все российские процессоры «Эльбрус» ...
Реализована возможность отправки отчетности по кредиту из «1С» в Сбербанк
Фирма «1С» совместно со Сбербанком реализовала в программе «1С:Бухгалтерия 3.0» возможность онлайн-отправки финансовой отчетности для заемщиков Сбербанка ...
Продукт «1С:Комбинат ЖБИ» снимается с продаж
Фирма «1С» напоминает, что с 30 апреля 2018 года прекращается продажа отраслевых и специализированных решений, разработанных на базе «1С:УПП» ...
Борис Нуралиев оценил конкурентоспособность отечественных ИТ-специалистов
Борис Нуралиев, генеральный директор компании «1С», принял активное участие в программе первого отраслевого чемпионата в области информационных технологий DigitalSkills ...
Avast открыла разработчикам исходный код декомпилятора RetDec
Компания Avast, специализирующаяся на разработке защитного ПО, открыла доступ к декомпилятору RetDec, позволяющему изучать исходный код и отслеживать действия приложений ...
Тест 1С:Зарплата и управление персоналом 8 (Ред. 3.1)  - 10 вопросов от 15.12.2017
Проверь свои профессиональные навыки по программе "1С:Зарплата и управление персоналом 8 (Ред. 3.1)". Пройди тест! Всего 10 вопросов:Если флажок Используются ...
Тест 1С:Управление производственным предприятием 8  - 7 вопросов от 15.12.2017
Проверь свои профессиональные навыки по программе "1С:Управление производственным предприятием 8". Пройди тест! Всего 7 вопросов:Какие из перечисленных причин могут привести ...
Тест 1С:Бухгалтерия 8.3  - 5 вопросов от 15.12.2017
Проверь свои профессиональные навыки по программе "1С:Бухгалтерия 8.3". Пройди тест! Всего 5 вопросов:В программе 1С:Бухгалтерия 8 документ Поступление доп. расходов ...
Тест Платформа 1С:Предприятия 8  - 7 вопросов от 15.12.2017
Проверь свои профессиональные навыки по программе "Платформа 1С:Предприятия 8". Пройди тест! Всего 7 вопросов:При объединении с приоритетом основной конфигурации значение ...