1С 8.3 Ключ менеджера записи регистра сведений
Данные > Примеры кода 1С > 1С 8.3 Регистры сведений
Перейти в раздел примеры кода 1С 8.3:
Пример кода №1: Возврат ключа менеджера записи регистра сведений в 1С 8.3:
Функция КлючМенеджераЗаписиРС(ДанныеЗаписи, ИмяРС = "") Экспорт
// Параметры:
// ДанныеЗаписи - МенеджерЗаписи, Структура, Произвольный - коллекция с данными записи
// ИмяРС - Строка - Имя регистра. Если не передано,
// то метаданные регистра берутся из ДанныеЗаписи
Если ПустаяСтрока(ИмяРС) Тогда
РС_Метаданные = Метаданные.НайтиПоТипу(ТипЗнч(ДанныеЗаписи));
Иначе
РС_Метаданные = Метаданные.РегистрыСведений[ИмяРС];
КонецЕсли;
Значения_ключа = Новый Структура("Период");
Для Каждого Измерение Из РС_Метаданные.Измерения Цикл
Значения_ключа.Вставить(Измерение.Имя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(Значения_ключа, ДанныеЗаписи);
//Возвращает ключ менеджера записи регистра сведений
Возврат РегистрыСведений[РС_Метаданные.Имя].СоздатьКлючЗаписи(Значения_ключа);//Ключ записи регистра
КонецФункции
// Параметры:
// ДанныеЗаписи - МенеджерЗаписи, Структура, Произвольный - коллекция с данными записи
// ИмяРС - Строка - Имя регистра. Если не передано,
// то метаданные регистра берутся из ДанныеЗаписи
Если ПустаяСтрока(ИмяРС) Тогда
РС_Метаданные = Метаданные.НайтиПоТипу(ТипЗнч(ДанныеЗаписи));
Иначе
РС_Метаданные = Метаданные.РегистрыСведений[ИмяРС];
КонецЕсли;
Значения_ключа = Новый Структура("Период");
Для Каждого Измерение Из РС_Метаданные.Измерения Цикл
Значения_ключа.Вставить(Измерение.Имя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(Значения_ключа, ДанныеЗаписи);
//Возвращает ключ менеджера записи регистра сведений
Возврат РегистрыСведений[РС_Метаданные.Имя].СоздатьКлючЗаписи(Значения_ключа);//Ключ записи регистра
КонецФункции
Пример кода №2: Возвращает ключ менеджера записи регистра сведений на основе данных измерений в 1С 8.3:
// Возвращает ключ менеджера записи регистра сведений на основе данных измерений
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/33
//
// Параметры:
// ДанныеЗаписи - РегистрСведенийМенеджерЗаписи, Структура, Произвольный - коллекция с данными записи
// ИмяРегистра - Строка - Имя регистра. Если не передано, то метаданные регистра берутся из ДанныеЗаписи
//
// Возвращаемое значение:
// РегистрСведенийКлючЗаписи
//
// Пример:
//
// ДанныеЗаписи = Новый Структура;
// ДанныеЗаписи.Вставить("Измерение", "Тест");
//
// Результат = КлючМенеджераЗаписиРегистраСведений(
// ДанныеЗаписи, Метаданные.РегистрыСведений.ЖЧТ_РегистрСведений.Имя);
//
Функция КлючМенеджераЗаписиРегистраСведений(Знач ДанныеЗаписи, Знач ИмяРегистра = "") Экспорт
Если ПустаяСтрока(ИмяРегистра) Тогда
МетаданныеРегистра = Метаданные.НайтиПоТипу(ТипЗнч(ДанныеЗаписи));
Иначе
МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];
КонецЕсли;
ЗначенияКлюча = Новый Структура("Период", '00010101');
Для Каждого ОписаниеИзмерения Из МетаданныеРегистра.Измерения Цикл
ЗначенияКлюча.Вставить(ОписаниеИзмерения.Имя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(ЗначенияКлюча, ДанныеЗаписи);
Возврат РегистрыСведений[МетаданныеРегистра.Имя].СоздатьКлючЗаписи(ЗначенияКлюча);
КонецФункции
// MIT License
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/33
//
// Параметры:
// ДанныеЗаписи - РегистрСведенийМенеджерЗаписи, Структура, Произвольный - коллекция с данными записи
// ИмяРегистра - Строка - Имя регистра. Если не передано, то метаданные регистра берутся из ДанныеЗаписи
//
// Возвращаемое значение:
// РегистрСведенийКлючЗаписи
//
// Пример:
//
// ДанныеЗаписи = Новый Структура;
// ДанныеЗаписи.Вставить("Измерение", "Тест");
//
// Результат = КлючМенеджераЗаписиРегистраСведений(
// ДанныеЗаписи, Метаданные.РегистрыСведений.ЖЧТ_РегистрСведений.Имя);
//
Функция КлючМенеджераЗаписиРегистраСведений(Знач ДанныеЗаписи, Знач ИмяРегистра = "") Экспорт
Если ПустаяСтрока(ИмяРегистра) Тогда
МетаданныеРегистра = Метаданные.НайтиПоТипу(ТипЗнч(ДанныеЗаписи));
Иначе
МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];
КонецЕсли;
ЗначенияКлюча = Новый Структура("Период", '00010101');
Для Каждого ОписаниеИзмерения Из МетаданныеРегистра.Измерения Цикл
ЗначенияКлюча.Вставить(ОписаниеИзмерения.Имя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(ЗначенияКлюча, ДанныеЗаписи);
Возврат РегистрыСведений[МетаданныеРегистра.Имя].СоздатьКлючЗаписи(ЗначенияКлюча);
КонецФункции
// MIT License
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник