Уникальный идентификатор GUID (Globally Unique Identifier) в 1С:Предприятие — это 32-символьный код, который система присваивает каждому объекту метаданных, справочнику, документу или записи. Он используется для однозначной идентификации элементов при обмене данными, интеграциях и программной работе. Без GUID невозможно корректно настроить синхронизацию между базами, создать внешние обработки или отладить обмен с другими системами (например, BI-системами или CRM).

Пользователи часто сталкиваются с необходимостью узнать GUID при настройке правил обмена, отладке ошибок типа "Объект не найден по ссылке" или при работе с УниверсальнымиФормами. Разработчики же используют его для прямого обращения к объектам через ПолучитьОбъектПоСсылке или при работе с REST API. В этой статье мы разберём все актуальные способы получения GUID — от ручных методов для новичков до программных решений для опытных специалистов.

Почему GUID важен в 1С: 3 ключевые задачи

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

Во-первых, идентификатор гарантирует уникальность объекта даже при клонировании базы или переносе данных между разными информационными системами. Например, если вы переносите справочник контрагентов из 1С:УТ 11 в 1С:БП 3.0, именно GUID позволяет избежать дублирования записей с одинаковыми наименованиями, но разными внутренними кодами.

Во-вторых, GUID используется в правилах обмена данными. Без него невозможно настроить синхронизацию между узлами распределённой информационной базы (РИБ) или интеграцию с внешними сервисами. Например, при настройке обмена с МойСклад или Диадок система требует указать GUID справочников и документов для корректного сопоставления.

В-третьих, разработчики активно применяют GUID в коде на встроенном языке. Например, для быстрого доступа к объекту по ссылке:

Ссылка = Новый УникальныйИдентификатор("7d4f3cc9-7a8d-4e2c-8f1d-5a3e7b2c1d4f");

Объект = Ссылка.ПолучитьОбъект;

📊 Для чего вам чаще всего нужен GUID в 1С?
Настройка обмена данными
Отладка ошибок
Разработка внешних обработок
Интеграция с другими системами
Другое

Способ 1: Получение GUID через конфигуратор (для администраторов)

Этот метод подходит пользователям с правами администратора или разработчика, так как требует доступа к конфигуратору 1С:Предприятие.

Чтобы узнать GUID объекта метаданных (справочника, документа, регистра и т.д.):

  1. Откройте базу в режиме Конфигуратор (запуск с ключом /Config или через меню пуска).
  2. В дереве метаданных найдите нужный объект (например, справочник Контрагенты).
  3. Кликните по нему правой кнопкой и выберите Свойства.
  4. В открывшемся окне перейдите на вкладку Прочее — там будет поле Уникальный идентификатор.

Для конкретной записи (например, элемента справочника) алгоритм другой:

  1. В режиме 1С:Предприятие откройте нужный справочник.
  2. Выделите запись и нажмите Ctrl+Shift+F1 (или через меню Все действия → Информация об объекте).
  3. В открывшемся окне будет строка Уникальный идентификатор.

☑️ Подготовка к работе в конфигураторе

Выполнено: 0 / 4
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ERP) поле с GUID может быть скрыто. В этом случае используйте способ через запрос (см. раздел 3).

Способ 2: Глобальный поиск по GUID в базе

Если вам известен фрагмент GUID (например, первые 8 символов), но нужно найти объект, к которому он относится, воспользуйтесь встроенным поиском.

В режиме Конфигуратор:

  1. Нажмите Ctrl+Shift+F (или меню Правка → Найти).
  2. В поле поиска введите известную часть GUID (например, 7d4f3cc9).
  3. Установите галочки:
    • 📄 По всем модулям
    • 🔍 По строкам
    • 📋 По метаданным
  • Запустите поиск. Система покажет все объекты, где встречается этот идентификатор.
  • Этот метод полезен, если вы отлаживаете чужой код и нужно найти, где используется конкретный GUID. Например, при ошибке типа "Не найден объект с идентификатором X" в логах обмена.

    Что делать, если поиск не находит GUID?

    Если глобальный поиск не даёт результатов, проверьте:

    - Правильность введённого идентификатора (регистр не важен, но дефисы обязательны).

    - Возможность, что объект был удалён, но ссылки на него остались в коде.

    - Наличие внешних обработок или расширений, где может храниться GUID.

    Способ 3: Запрос к базе для получения GUID (универсальный метод)

    Для опытных пользователей и разработчиков самый надёжный способ — запрос на встроенном языке. Он работает в любых конфигурациях, включая 1С:УТ 11, 1С:БП 3.0 и 1С:ERP.

    Пример кода для получения GUID справочника Контрагенты:

    Запрос = Новый Запрос;
    

    Запрос.Текст =

    "ВЫБРАТЬ

    | Ссылка.УникальныйИдентификатор КАК GUID,

    | Ссылка.Наименование КАК Наименование

    |ИЗ

    | Справочник.Контрагенты КАК Ссылка

    |ГДЕ

    | Ссылка.Наименование = &Наименование";

    Запрос.УстановитьПараметр("Наименование","ООО Ромашка");

    Результат = Запрос.Выполнить;

    Выборка = Результат.Выбрать;

    Пока Выборка.Следующий Цикл

    Сообщить("GUID:" + Выборка.GUID +" | Наименование:" + Выборка.Наименование);

    КонецЦикла;

    Для документов (например, РеализацияТоваровУслуг) запрос аналогичен:

    Запрос.Текст =
    

    "ВЫБРАТЬ

    | Ссылка.УникальныйИдентификатор КАК GUID,

    | Ссылка.Номер КАК Номер

    |ИЗ

    | Документ.РеализацияТоваровУслуг КАК Ссылка

    |ГДЕ

    | Ссылка.Номер = &Номер";

    - Правильность имени объекта (например, Справочник.Номенклатура, а не просто Номенклатура).

    - Наличие прав у текущего пользователя на чтение данных.

    - Возможность, что объект архивный (добавьте в запрос условие Ссылка.ПометкаУдаления = ЛОЖЬ).-->

    Тип объекта Пример запроса Примечание
    Справочник Справочник.Контрагенты Работает для любых справочников
    Документ Документ.ПоступлениеТоваров Укажите точный тип документа
    Регистр сведений РегистрСведений.ЦеныНоменклатуры Требует указания измерений
    План видов характеристик ПланВидовХарактеристик.ДополнительныеРеквизиты Редко используется, но поддерживается

    Способ 4: Использование отладчика и выражения

    Если вы работаете в отладчике (например, при написании обработки), можно быстро получить GUID любого объекта через окно вычисления выражения.

    Алгоритм:

    1. Поставьте точку останова (F9) в нужном месте кода.
    2. Запустите отладку (F5).
    3. Когда выполнение остановится, откройте окно выражения (Ctrl+Alt+Q).
    4. Введите команду:
      • 🔹 Для справочника: Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка").УникальныйИдентификатор
      • 🔹 Для документа: Документы.РеализацияТоваровУслуг.НайтиПоНомеру("РТ-000123").УникальныйИдентификатор
  • Нажмите Вычислить — в результате отобразится GUID.
  • Этот метод удобен, когда нужно быстро проверить идентификатор без написания полноценного запроса. Например, при отладке правил обмена или внешних печатных форм.

    ⚠️ Внимание: Метод НайтиПоНаименованию может вернуть Неопределён, если в базе есть несколько объектов с одинаковым названием. В этом случае используйте НайтиПоРеквизиту с уточнением (например, по ИНН для контрагентов).

    Способ 5: Получение GUID через внешние обработки

    Для пользователей без доступа к конфигуратору или тем, кто работает с управляемыми формами, подойдёт способ с использованием внешней обработки.

    Скачайте готовую обработку (например, "Просмотр GUID объектов" из каталога Инфостарт) и выполните шаги:

    1. Откройте базу в режиме 1С:Предприятие.
    2. Перейдите в Файл → Открыть и выберите скачанную обработку.
    3. В интерфейсе обработки укажите:
      • 📌 Тип объекта (справочник, документ и т.д.).
      • 📌 Наименование или номер объекта.
    4. Нажмите Получить GUID — результат отобразится в отдельном поле.
    5. Преимущество этого метода — не требует прав администратора и работает даже в облачных версиях (например, 1С:Фреш). Однако будьте осторожны: скачивайте обработки только из проверенных источников, чтобы избежать вирусов или некорректного кода.

      💡

      Внешние обработки удобны для разовых задач, но не подходят для автоматизации. Для регулярной работы лучше использовать запросы или программный код.

      Способ 6: GUID в обмене данными и форматах (XML, JSON)

      При настройке обмена данными (например, через Универсальный формат обмена или EnterpriseData) GUID играет ключевую роль. Его можно извлечь из файлов обмена.

      Если у вас есть XML-файл с данными (например, выгрузка из 1С:УТ в МойСклад), откройте его в любом текстовом редакторе и найдите теги вида:

      <Справочник.Контрагенты Ссылка="7d4f3cc9-7a8d-4e2c-8f1d-5a3e7b2c1d4f">
      

      <Наименование>ООО Ромашка</Наименование>

      <ИНН>1234567890</ИНН>

      </Справочник.Контрагенты>

      Атрибут Ссылка содержит искомый GUID. Аналогично в JSON-формате (например, при работе с REST API 1С:Предприятие):

      {
      

      "ref":"7d4f3cc9-7a8d-4e2c-8f1d-5a3e7b2c1d4f",

      "name":"ООО Ромашка",

      "inn":"1234567890"

      }

      Здесь GUID хранится в поле ref. Этот метод полезен, если вам нужно сопоставить объекты между разными системами или отладить ошибки при импорте данных.

      ⚠️ Внимание: В форматах обмена иногда использует сокращённые GUID (без дефисов). Например, 7d4f3cc97a8d4e2c8f1d5a3e7b2c1d4f вместо 7d4f3cc9-7a8d-4e2c-8f1d-5a3e7b2c1d4f. Учитывайте это при поиске.

      Частые ошибки при работе с GUID и как их избежать

      Даже опытные пользователи иногда сталкиваются с проблемами, связанными с GUID. Вот самые критичные ошибки и способы их решения:

      1. "Объект не найден по ссылке" — возникает, если в коде или правилах обмена указан неверный GUID. Проверьте:

      - Правильность идентификатора (часто копируются лишние символы).

      - Существование объекта в базе (возможно, он удалён).

      - Права доступа текущего пользователя.

      2. Дублирование GUID при переносе данных — если вы клонировали базу, некоторые объекты могут иметь одинаковые идентификаторы. Решение:

      - Используйте обработку "Замена GUID" (доступна на Инфостарт).

      - При обмене данных настройте правило "Игнорировать дубли по GUID".

      3. GUID не отображается в свойствах объекта — в некоторых конфигурациях (например, 1С:ЗУП 3.1) поле скрыто. Решение:

      - Используйте запрос (способ 3).

      - Проверьте настройки видимости в конфигураторе (Сервис → Параметры → Показывать служебные реквизиты).

      • 🚫 Нельзя: Вручную редактировать GUID в базе — это приведёт к нарушению ссылочной целостности.
      • ⚠️ Осторожно: При обмене между разными версиями (например, 8.2 и 8.3) формат GUID может отличаться.
      • Можно: Использовать GUID для создания универсальных ссылок между базами.

    FAQ: Ответы на частые вопросы о GUID в 1С

    Можно ли изменить GUID объекта в 1С?

    Нет, GUID присваивается системой при создании объекта и не подлежит ручному изменению. Если требуется замена (например, при слиянии баз), используйте специализированные обработки, которые создают новые объекты с корректными ссылками.

    Как узнать GUID для объекта, который ещё не сохранён?

    У несозданных объектов (например, новой записи справочника) GUID ещё нет. Он генерируется только после сохранения (Записать). Для временных объектов используйте метод ПолучитьНовыйУникальныйИдентификатор.

    Почему в логах обмена вижу GUID без дефисов?

    Это нормально — иногда записывает GUID в компактном формате (32 символа подряд). Чтобы привести его к стандартному виду, используйте функцию:

    Функция ФорматироватьGUID(СтрокаGUID)
    

    Возврат СтрЗнач(СтрокаGUID,"-", 8, 4, 4, 4, 12);

    КонецФункции

    Можно ли использовать GUID для доступа к объекту из другой базы?

    Да, но только если базы связаны через распределённую информационную систему (РИБ) или настроен обмен с сопоставлением объектов по GUID. В изолированных базах прямой доступ по идентификатору невозможен.

    Как найти объект, если известен только GUID?

    Используйте запрос:

    Запрос = Новый Запрос;
    

    Запрос.Текст ="ВЫБРАТЬ Ссылка КАК Объект ИЗ Справочник.Контрагенты КАК Ссылка ГДЕ Ссылка.УникальныйИдентификатор = &GUID";

    Запрос.УстановитьПараметр("GUID", Новый УникальныйИдентификатор("7d4f3cc9-7a8d-4e2c-8f1d-5a3e7b2c1d4f"));

    Результат = Запрос.Выполнить.Выбрать.Ссылка;

    Для универсального поиска по всем типам объектов потребуется более сложный запрос с объединением таблиц.