Ключ записи
Совокупность полей записи, по которой контролируется уникальность записей в регистре.
В регистре не может быть двух записей с одинаковыми значениями полей, входящих в ключ записи.
Также используется для идентификации записей, например, чтобы спозиционироваться на строку в списке.
Полезные ссылки:
- ИТС — Особенности использования типов, предназначенных для манипулирования необъектными данными,
- ИТС — Работа с прикладными объектами средствами встроенного языка,
- ИТС — Организация выбора из произвольной формы (на примере выбора из списка регистра сведений),
- ИТС — Периодические регистры сведений
1С 8.3 Ключ менеджера записи регистра сведений — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Перейти в раздел примеры кода 1С 8.3:

Пример кода от JuniorOneS: Возврат ключа менеджера записи регистра сведений в 1С 8.3:
Функция КлючМенеджераЗаписиРС ( ДанныеЗаписи , ИмяРС = «» ) Экспорт
// Параметры:
// ДанныеЗаписи — МенеджерЗаписи, Структура, Произвольный — коллекция с данными записи
// ИмяРС — Строка — Имя регистра. Если не передано,
// то метаданные регистра берутся из ДанныеЗаписи
Если ПустаяСтрока ( ИмяРС ) Тогда
РС_Метаданные = Метаданные . НайтиПоТипу ( ТипЗнч ( ДанныеЗаписи ));
Иначе
РС_Метаданные = Метаданные . РегистрыСведений [ ИмяРС ];
КонецЕсли;
Значения_ключа = Новый Структура ( «Период» );
Для Каждого Измерение Из РС_Метаданные . Измерения Цикл
Значения_ключа . Вставить ( Измерение . Имя );
КонецЦикла;
ЗаполнитьЗначенияСвойств ( Значения_ключа , ДанныеЗаписи );
//Возвращает ключ менеджера записи регистра сведений
Возврат РегистрыСведений [ РС_Метаданные . Имя ]. СоздатьКлючЗаписи ( Значения_ключа ); //Ключ записи регистра
Ключ записи регистра сведений для открытия ее формы
Для того, чтобы открыть существующую запись регистра сведений в управляемых формах необходимо:
- Знать значения всех измерений
- Вызов производится с клиентской процедуры через конструктор Новый с использованием обертки в виде массива
- Либо через вспомогательную функцию, которая создаст ключ на сервере
- Первый пример кода открытия записи регистра сведений
- Второй вариант открытия — с использованием серверного вызова
- Особенности использования
Первый пример кода открытия записи регистра сведений
МассивКонструктораКлюча = Новый Массив;
МассивКонструктораКлюча.Добавить(Новый Структура(«ГрафикРаботы,Дата,НачалоИнтервала»,Расшифровка.ГрафикРаботы,НачалоДня(Расшифровка.Дата),Расшифровка.Дата));
КлючЗаписиРегистра = Новый («РегистрСведенийКлючЗаписи.ТабельРаботы», МассивКонструктораКлюча);
ОткрытьФорму(«РегистрСведений.ТабельРаботы.Форма.ФормаНазначенияПериода», Новый Структура(«Ключ», КлючЗаписиРегистра));
Второй вариант открытия — с использованием серверного вызова
КлючЗаписиРегистра = ПолучитьКлючЗаписи(Новый Структура(«ГрафикРаботы,Дата,НачалоИнтервала», Расшифровка.ГрафикРаботы,НачалоДня(Расшифровка.Дата),Расшифровка.Дата));
ОткрытьФорму(«РегистрСведений.ТабельРаботы.Форма.ФормаНазначенияПериода», Новый Структура(«Ключ», КлючЗаписиРегистра));
Особенности использования
В случае отсутствия записи, когда указаны не действительные измерения регистра, выйдет ошибка «Объект не найден»:

- Вариант1: Используйте попытку исключение
- Вариант2: При серверном вызове, возможно не просто создавать ключ, но и добавить проверку наличия
Запись = РегистрыСведений.ТабельРаботы.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись,Структура);
Запись.Прочитать();
Если Запись.Выбран() = Ложь
Возврат Неопределено;
КонецЕсли;
Реклама — искусство превращения полуправды в полную ложь.
— Эдгар Шоф
Ключ записи регистра сведений 1с как использовать
Всем добрый день.
Пол гугла облазил, не могу найти ни где, может кто знает?
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЖурналБизнесПроцессы);
Выборка = ПостроительЗапроса.Результат.Выбрать();
Если Выборка.Следующий() Тогда
Набор = РегистрыСведений.CRM_БизнесПроцессы.СоздатьНаборЗаписей();
Набор.Отбор.БизнесПроцесс.Установить(Выборка.БизнесПроцесс);
Строка = Набор.Прочитать();
Суть в том, что нужно установить первую строку текущей, но тип данных табличного поля — список регистра сведений. Получается, что текущая строка — это ключ записи. Подскажите пожалуйста, как мне получить этот ключ записи, отбором строку нашел, но таких реквизитов у нее нету.:(
Буду очень благодарен.
Нажми ctrl-F1 на слове «Прочитать»
РегистрСведенийМенеджер. <Имя регистра сведений>(InformationRegisterManager.<Имя регистра сведений>)
СоздатьКлючЗаписи (CreateRecordKey)
Синтаксис:
Имя>
Тип: Структура.
Структура, содержащая значения для заполнения свойств ключа записи.
Имена элементов структуры должны соответствовать именам ключевых полей.
Возвращаемое значение:
Создает ключ записи по переданной структуре.
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:
Отбор = Новый Структура;
Отбор.Вставить(«Подразделение», ВыбПодразделение);
Отбор.Вставить(«Должность», ВыбДолжность);
Рег = РегистрыСведений.СведенияОШтатныхЕдиницах;
КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);
// ШтатныеЕдиницы — табличное поле для отображения списка
// записей регистра сведений
ЭлементыФормы.ШтатныеЕдиницы.ТекущаяСтрока = КлючЗаписи;