Справочники и Данные · 10 мин
Ключевые поля в 1С: назначение, виды и практика использования
Ключевые поля в 1С: что это такое, как работают код, наименование и уникальный идентификатор, где применяются ключи при обмене данными и как избежать дублей.
Ключевые поля в 1С — это реквизиты, по которым платформа однозначно определяет и различает объекты информационной базы: элементы справочников, документы, записи регистров. Без ключевых полей система не смогла бы связать строку документа с товаром, а проводку — с контрагентом, и любой обмен данными превратился бы в набор дублей и потерянных ссылок.
Понимание ключевых полей критично в трёх практических ситуациях: при настройке обмена между базами (например, 1С:Управление торговлей и 1С:Бухгалтерия), при загрузке данных из Excel или внешних систем и при разработке собственных конфигураций. Именно по ключевым полям механизмы синхронизации решают, создать новый элемент или обновить существующий.
Ошибки с ключами проявляются типичным образом: задвоенные контрагенты и номенклатура после обмена, «битые» ссылки вида «Объект не найден», невозможность провести документ из-за неуникального номера. Все эти проблемы диагностируются и устраняются, если понимать, какие поля в 1С играют роль ключей и как они работают.
Что такое ключевое поле в терминах платформы 1С
В реляционной теории ключ — это поле или набор полей, уникально идентифицирующих запись в таблице. Платформа 1С скрывает прямую работу с таблицами базы данных, но концепция сохраняется: у каждого объекта есть набор реквизитов, совокупность которых делает его уникальным внутри своего типа.
При этом в 1С ключи бывают двух уровней. Первый — внутренний, технический: каждый объект ссылочного типа получает уникальный идентификатор (GUID), который никогда не меняется и не виден пользователю в обычном режиме. Второй — прикладной: код, наименование, номер документа, дата, измерения регистра. Именно прикладные ключи видит и редактирует пользователь, и именно с ними связано большинство проблем.
Ключевые поля основных объектов метаданных
Разные типы объектов в 1С имеют разные ключевые поля. У справочников это код и наименование, причём код может быть числовым или строковым, с автонумерацией или без. У документов ключевая пара — номер и дата: платформа контролирует уникальность номера в пределах заданного периода (обычно года) и, при необходимости, в разрезе префиксов или организаций.
У регистров сведений ключом служит набор измерений. Например, в регистре «Курсы валют» ключевым является сочетание измерения «Валюта» и периода записи: двух записей с одинаковой валютой на одну и ту же дату существовать не может. В подчинённом регистре сведений в ключ дополнительно входит регистратор. У регистров накопления и бухгалтерии записи уникальны в рамках регистратора и номера строки.
| Тип объекта | Ключевые поля | Контроль уникальности |
|---|---|---|
| Справочник | Код, наименование, GUID | Код — при включённой проверке, GUID — всегда |
| Документ | Номер + дата, GUID | Номер в пределах периода и префикса |
| Регистр сведений | Измерения (+ период, регистратор) | Комбинация измерений всегда уникальна |
| План обмена | Код, наименование, GUID | Код узла обязателен для обмена |
| Перечисление | Имя значения (в конфигурации) | Задаётся разработчиком, неизменно в режиме предприятия |
Внутренний ключ: уникальный идентификатор объекта
GUID — единственный по-настоящему надёжный ключ объекта. Код справочника можно изменить, наименование — переименовать, номер документа — перенумеровать, а GUID останется прежним. Все ссылки в базе хранятся именно как GUID: когда в документе указан контрагент, в поле записан его внутренний идентификатор, а не название.
Отсюда следует важное практическое следствие: «битая ссылка» возникает, когда объект физически удалён из базы, а ссылки на его GUID остались. Платформа не может найти объект по идентификатору и показывает «Объект не найден». Восстановить такую ссылку можно только переносом объекта с тем же GUID из копии базы либо заменой ссылки на другой объект.
Получить GUID объекта программно можно методом УникальныйИдентификатор() у ссылки, а найти объект по известному идентификатору — через ПолучитьСсылку(Новый УникальныйИдентификатор(...)). Эти приёмы используются при интеграциях, когда внешняя система хранит идентификаторы объектов 1С.
Роль ключевых полей при обмене и синхронизации данных
При обмене между базами система должна решить: пришедший объект — это новый элемент или уже существующий, который нужно обновить. В типовых механизмах синхронизации (например, через универсальный формат EnterpriseData) поиск выполняется в два этапа: сначала по GUID, затем, если объект с таким идентификатором не найден, по полям поиска — комбинации ключевых реквизитов, заданной в правилах конвертации.
Поля поиска для справочника «Контрагенты» обычно включают ИНН и КПП, для «Номенклатуры» — артикул или наименование. Если поля поиска настроены неверно или в данных эти поля не заполнены, синхронизация начнёт создавать дубли: один и тот же контрагент появится в базе-приёмнике несколько раз с разными GUID.
Отдельная ситуация — первоначальное объединение двух независимо ведшихся баз. В них один и тот же реальный контрагент имеет разные GUID, и без сопоставления по ключевым полям (ИНН, наименование) обмен создаст массовые дубли. Для этого в типовых синхронизациях предусмотрен этап сопоставления объектов, который нельзя пропускать.
- 1Откройте настройку синхронизации и перейдите к правилам загрузки данных для проблемного справочника
- 2Проверьте, какие поля указаны как поля поиска (ИНН/КПП, артикул, наименование)
- 3Убедитесь, что эти поля заполнены в данных обеих баз — пустое поле поиска гарантированно даст дубль
- 4Выполните тестовый обмен на копии базы и проверьте количество созданных новых элементов
- 5При обнаружении дублей используйте обработку поиска и замены дублей, затем скорректируйте правила
Ключи поиска при загрузке данных из внешних источников
При загрузке из Excel, CSV или через COM-соединение разработчик сам определяет, по каким полям искать существующий элемент. Типовая обработка «Загрузка данных из табличного документа» (в конфигурациях на БСП) позволяет явно указать ключевые колонки: например, искать номенклатуру по артикулу, а если не найдена — создавать новую.
Выбор ключа поиска — компромисс между надёжностью и заполненностью данных. Наименование как ключ ненадёжно: «Молоко 3,2%» и «Молоко 3,2 %» с пробелом — разные строки, и поиск создаст дубль. Артикул или штрихкод надёжнее, но только если они заполнены у всех элементов. На практике используют цепочку ключей: сначала поиск по штрихкоду, затем по артикулу, затем по наименованию.
Как настроить контроль уникальности и проверить данные
В конфигураторе для справочника можно задать длину кода, тип (число или строка), автонумерацию и контроль уникальности. Для документов аналогично настраиваются нумерация, периодичность и контроль уникальности номера. Менять эти свойства в работающей базе следует осторожно: сужение длины кода или смена типа может потребовать преобразования существующих данных.
Для проверки уже накопленных данных полезны штатные инструменты: обработка «Поиск и удаление дублей» (в конфигурациях на БСП) ищет дубли справочников по выбранным реквизитам и выполняет замену ссылок, а «Групповое изменение реквизитов» позволяет массово заполнить ключевые поля (ИНН, артикулы) перед настройкой обмена.
Как проверить результат
Попытка записать элемент с существующим кодом вызывает сообщение об ошибке
Элементы с одинаковым кодом записываются без предупреждений
Тестирование и исправление не находит битых ссылок
В документах и отчётах встречается «Объект не найден»
После обмена количество новых элементов минимально, сопоставленные объекты обновляются
При каждом обмене массово создаются новые контрагенты или номенклатура
Частые вопросы о ключевых полях в 1С
Чем код справочника отличается от уникального идентификатора?
Код — прикладной реквизит, который видит пользователь; он может меняться, дублироваться (если контроль отключён) и различаться между базами. GUID — внутренний технический ключ, присваивается один раз при создании объекта, не меняется никогда и именно по нему строятся все ссылки в базе.
Почему после обмена появились дубли контрагентов?
Наиболее частая причина — объект не найден ни по GUID, ни по полям поиска: например, ИНН в одной из баз не заполнен или записан с пробелами. Проверьте заполненность полей поиска в обеих базах и настройки правил конвертации, затем устраните дубли обработкой поиска и замены.
Можно ли использовать наименование как ключ синхронизации?
Технически можно, но это ненадёжно: любые различия в пробелах, регистре букв или сокращениях дадут дубль. Наименование допустимо только как последний резервный ключ после артикула, штрихкода, ИНН и других формализованных полей.
Что делать, если в документах появилась ссылка «Объект не найден»?
Объект был физически удалён, а ссылки на его GUID остались. Варианты: восстановить объект из резервной копии с тем же GUID либо заменить битую ссылку на существующий аналог во всех местах использования. Впредь удаляйте объекты только через пометку удаления с контролем ссылочной целостности.
Как узнать GUID элемента справочника без программирования?
Во многих конфигурациях GUID виден в адресной строке браузера при работе через веб-клиент, а также его можно вывести через консоль запросов или произвольный отчёт. Программно используется метод УникальныйИдентификатор() у объекта ссылки.
Влияет ли смена префикса нумерации документов на ключевые поля?
Префикс входит в состав номера документа, а номер вместе с датой образует прикладной ключ. Смена префикса не ломает существующие ссылки (они хранят GUID), но влияет на контроль уникальности новых номеров и на сопоставление документов при обмене, если номер используется в полях поиска.
Что важно запомнить
Настоящий ключ объекта в 1С — неизменный GUID; код, номер и измерения регистров — прикладные ключи, которые видит пользователь. При обмене и загрузке данных всегда определяйте надёжные поля поиска (ИНН, артикул, штрихкод), тестируйте правила на копии базы и удаляйте объекты только с контролем ссылочной целостности.