Администрирование · 10 мин
Идентификатор в 1С: что это и как с ним работать
Что такое идентификатор в 1С: GUID, внутренний идентификатор объекта, идентификаторы конфигурации. Где посмотреть, как получить программно и зачем они нужны.
Под идентификатором в 1С понимают уникальное значение, по которому система отличает один объект от другого: элемент справочника, документ, объект конфигурации или пользователя. Без идентификаторов невозможны ни ссылки между таблицами базы данных, ни обмен данными между конфигурациями, ни синхронизация с внешними системами. Путаница в типах идентификаторов — частая причина ошибок при интеграциях и дублирования данных.
Термин «идентификатор» в контексте 1С неоднозначен. В одних случаях речь идёт о GUID ссылки — глобальном уникальном идентификаторе объекта базы. В других — об имени объекта метаданных (например, «Справочники.Номенклатура»), которое тоже формально является идентификатором на языке конфигуратора. В третьих — об идентификаторе пользователя или идентификаторе базы при регистрации в кластере серверов.
Ниже разобраны основные виды идентификаторов, способы их получения в пользовательском режиме и программно, а также типичные ошибки при работе с ними в обменах данными.
Что такое идентификатор объекта в 1С
Каждый объект данных в информационной базе — контрагент, товар, документ реализации — хранится в таблицах СУБД и имеет ссылку. Внутри ссылки зашит уникальный идентификатор формата GUID (UUID): 32 шестнадцатеричных символа, обычно записываемых через дефисы, например a1b2c3d4-e5f6-7890-abcd-ef1234567890. Вероятность совпадения двух случайно сгенерированных GUID пренебрежимо мала, поэтому они используются как глобальные ключи.
Важное свойство: GUID присваивается объекту один раз при создании и не меняется ни при переименовании, ни при изменении любых реквизитов. Удаление объекта «уничтожает» GUID: если создать аналогичный элемент заново, он получит уже другой идентификатор. Именно поэтому в обменах данными удаление и повторное создание объектов вместо их корректировки приводит к дублям.
Основные виды идентификаторов в 1С
Чтобы не путаться в терминах, полезно разделить идентификаторы по области применения. Одни относятся к данным, другие — к структуре конфигурации, третьи — к инфраструктуре.
| Вид идентификатора | Что идентифицирует | Где применяется |
|---|---|---|
| GUID ссылки | Элемент справочника, документ, запись плана счетов | Связи в базе, обмены, интеграции, веб-сервисы |
| Имя объекта метаданных | Справочник, документ, регистр в конфигурации | Конфигуратор, встроенный язык, запросы |
| Идентификатор пользователя | Учётная запись пользователя ИБ | Разграничение прав, журнал регистрации |
| Идентификатор информационной базы | Конкретная база в кластере серверов | Администрирование, блокировки, сеансы |
| Идентификатор типа | Тип объекта метаданных | Планы обмена, механизмы сопоставления |
На практике чаще всего под «идентификатором 1С» подразумевают именно GUID ссылки. Остальные виды встречаются в специфических задачах: администрировании сервера, разборе журнала регистрации, разработке конфигураций.
Где посмотреть идентификатор объекта
В стандартных формах списков и карточек GUID не отображается — пользователю он не нужен. Но получить его можно несколькими способами без изменения конфигурации.
Через специальную обработку
Самый распространённый способ — внешняя обработка «Получение GUID» или аналогичная. Откройте её через «Файл → Открыть», укажите объект, и обработка покажет идентификатор в разных форматах. Такие обработки широко распространены, но скачивайте их только из источников, которым доверяете: внешняя обработка выполняет код с правами текущего пользователя.
Через встроенные механизмы
В конфигурациях на «Библиотеке стандартных подсистем» GUID часто можно увидеть в функциональности обмена данными: в регистрах сопоставления объектов, в результатах загрузки, в настройках синхронизации. Также идентификатор виден в консоли кода (если она доступна) — достаточно выполнить обращение к объекту.
Как получить идентификатор программно
Во встроенном языке 1С для получения GUID ссылки используется метод УникальныйИдентификатор(). Обратная операция — получение ссылки по известному GUID — выполняется через метод ПолучитьСсылку() менеджера соответствующего объекта.
// Получить GUID существующего объекта
GUIDСтрокой = Строка(СсылкаНаОбъект.УникальныйИдентификатор());
// Получить ссылку по известному GUID
НовыйGUID = Новый УникальныйИдентификатор("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
Ссылка = Справочники.Номенклатура.ПолучитьСсылку(НовыйGUID);
// Проверить, существует ли объект с таким GUID
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Если Запрос.Выполнить().Пустой() Тогда
Сообщить("Объект с таким GUID не найден");
КонецЕсли;Обратите внимание на проверку существования объекта. Метод ПолучитьСсылку() вернёт ссылку даже для GUID, которого нет в базе, — такая ссылка будет «битой». Обращение к реквизитам через неё вызовет ошибку, поэтому перед использованием стоит убедиться, что объект реально существует.
Ещё один нюанс: у строкового представления GUID в 1С порядок байтов отличается от «канонического» представления в некоторых внешних системах. При интеграциях, где GUID передаётся в другую программу, иногда требуется преобразование формата — это решается шаблонными функциями перестановки байтов.
Зачем идентификаторы нужны в обменах и интеграциях
Главная область применения GUID — синхронизация данных между базами. Когда товар выгружается из одной базы в другую, системы сопоставляют объекты именно по идентификаторам: если GUID совпадает, объект считается тем же самым и обновляется, а не создаётся заново.
Отсюда следуют практические правила. При начальной настройке обмена объекты сопоставляются по ключевым полям (наименование, ИНН, код), после чего система запоминает соответствие GUID. Если сопоставление выполнено неверно, дальнейшие обмены будут обновлять «не те» объекты. Поэтому после первой синхронизации обязательно проверяйте регистр соответствий и исправляйте ошибки до запуска регулярного обмена.
В веб-интеграциях (REST, OData, HTTP-сервисы) GUID служит адресом объекта: внешняя система запрашивает или изменяет объект, указывая его идентификатор в URL или теле запроса. Это надёжнее, чем поиск по реквизитам, и быстрее, так как поиск по ссылке — самая эффективная операция в 1С.
Идентификаторы объектов конфигурации
Второй смысл термина — имена объектов метаданных. Каждый справочник, документ, регистр имеет имя, заданное в конфигураторе: Номенклатура, РеализацияТоваровУслуг. Это тоже идентификаторы, по которым система находит объект в структуре конфигурации.
Требования к таким именам: они должны начинаться с буквы, не содержать пробелов и спецсимволов, быть уникальными в пределах вида объектов. Переименование объекта метаданных безопасно для данных (GUID таблиц не меняется), но ломает внешние обработки, расширения и интеграции, которые обращаются к объекту по имени. Перед переименованием проверьте все зависимости через поиск ссылок на объект в конфигураторе.
Как проверить корректность работы с идентификаторами
После настройки обмена или интеграции, где задействованы GUID, полезно пройти контрольные точки. Это занимает немного времени, но позволяет поймать ошибки до того, как они размножатся регулярными обменами.
Как проверить результат
Один объект в первой базе соответствует одному объекту во второй, дублей нет
Один и тот же контрагент или товар существует в двух экземплярах с разными GUID
По переданному GUID объект находится и открывается
Полученная ссылка битая — объект не существует
Объект в базе-приёмнике обновляется, количество элементов не растёт
При каждом обмене создаются новые элементы
Если обнаружены дубли, не спешите удалять лишние элементы вручную: сначала исправьте сопоставление в регистре соответствий, иначе при следующем обмене дубли появятся снова. Помеченные на удаление дубли затем удаляйте штатной обработкой удаления помеченных объектов с контролем ссылочной целостности.
Что важно запомнить
Идентификатор в 1С — чаще всего GUID ссылки, уникальный и неизменный ключ объекта базы. Он назначается при создании, не меняется при редактировании и теряется при удалении. Получить GUID можно обработкой или методом УникальныйИдентификатор(), а использовать — в обменах, интеграциях и поиске объектов. Главные риски — дубли при неверном сопоставлении и битые ссылки.
Частые вопросы
Меняется ли GUID объекта при его переименовании или изменении реквизитов?
Нет. GUID присваивается один раз при создании объекта и остаётся неизменным на протяжении всей его жизни. Любые изменения наименования, кода и прочих реквизитов на идентификатор не влияют. Новый GUID объект получит только если его удалить и создать заново.
Можно ли задать объекту нужный GUID вручную?
Да, программно: через метод УстановитьСсылкуНового() перед записью нового объекта можно назначить ссылку с конкретным идентификатором. Это используют при миграциях данных, чтобы сохранить соответствие между базами. В пользовательском режиме штатной возможности задать GUID нет.
Что такое «битая ссылка» и как её найти?
Битая ссылка — ссылка на объект, который был удалён из базы (физически, а не пометкой). В интерфейсе она отображается как «Объект не найден». Найти такие ссылки можно штатной обработкой удаления помеченных объектов — она показывает места использования — или тестированием и исправлением информационной базы с проверкой ссылочной целостности.
Чем отличается код элемента справочника от его идентификатора?
Код — это реквизит, видимый пользователю: он может редактироваться, повторяться (если отключён контроль уникальности) и иметь смысл только внутри одной базы. GUID — скрытый системный ключ, уникальный глобально и неизменный. Для связей между базами и интеграций всегда используйте GUID, а не код.
Где посмотреть идентификатор пользователя 1С?
В конфигураторе: раздел «Администрирование → Пользователи», в свойствах пользователя есть поле «Уникальный идентификатор». Программно его можно получить через объект ПользовательИнформационнойБазы и его свойство УникальныйИдентификатор. Этот идентификатор фигурирует в журнале регистрации и механизмах разграничения доступа.