Уникальный идентификатор в 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 не ограничиваются этими тремя направлениями.



Росстандарт опубликовал ГОСТ для интернет-магазинов
Федеральное агентство по техническому регулированию опубликовало «Руководство по добросовестной продаже товаров через интернет» ...
Google представит облачный сервис для квантовых вычислений
ИТ-гигант собирается открыть онлайн-доступ к своим квантовым машинам для исследователей проблем искусственного интеллекта. Этим ходом компания хочет «подстегнуть» разработку новых ...
«1С:Лекторий» обновил свое расписание на сентябрь
В расписание «1С:Лектория» добавились мероприятия, которые пройдут в сентябре и начале октября 2017 года ...
Искусственный интеллект от Microsoft научился распознавать эмоции в тексте
Инструмент компании Microsoft Text Analytics API может проанализировать эмоциональную окраску повествования от очень негативной до очень позитивной по шкале от ...
Свертка ЗУП, ЗБУ
В жизни любой организации рано или поздно обязательно наступает момент, когда свертка информационной базы становится просто необходимой. И причин для ...
Автоматическое отключение неактивных веб клиентов
У вас организован доступ в базу через веб-клиент для посторонних лиц (веб-портал, веб-витрина, и т.д.), и вы испытываете проблему нехватки ...
Настройка веб сервера Apache + 1С (Пошаговое руководство)
Пошаговое руководство настройки Web сервера Apache на Windows. Не секрет, что файловые базы через веб-сервер будут работать намного шустрее, чем ...
После обновления на Розницы 2.2.6.22 в центр.узле перестала проходить регистрация объектов
Вопрос: После обновления на Розницы 2.2.6.22 в центр.узле перестала проходить регистрация объектов к обмену (в частности, Установка цен номенклатуры). Перенастройка ...
Начисление возмещения расходов на приобретение медикаментов сотруднику
Организация может возмещать работникам, их супругам, родителям и детям (в том числе усыновленным), подопечным (в возрасте до 18 лет), бывшим ...
Правка ресурсной спецификации по которой запущенно производство
Вопрос: ERP 2.2.3.231, используется управление производством версии 2.2 Мне программа грозит тяжкими последствиями, если я залезу в ресурсную спецификацию, разблокирую, ...
Переход доли в уставном капитале обществу (позиция ООО)
Если доля в уставном капитале общества оплачена не полностью, то с момента истечения срока оплаты доли неоплаченная часть переходит к ...
Не переносятся начальные остатки из УТ в БП
Вопрос: Конфигурация: Управление торговлей, редакция 11.2 (11.2.2.94) . В фирме 10000 позиций вбито в документ начальных остатков (собственные товары), но ...
Расчет по страховым взносам - корректировка
Вопрос: Возникла необходимость сдать уточненный вариант Расчета по страховым взносам (сотруднику при увольнении начислили с минусом компенсацию отпуска, что повлекло ...
Новый релиз Бухгалтерия предприятия, редакция 3.0
Текущая версия конфигурации "Бухгалтерия предприятия" предназначена для использования с версией системы 1С:Предприятие 8.3 не ниже 8.3.10.2466. Обновление предназначено для следующих ...