1С 8.3 Ключ менеджера записи регистра сведений - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 10.07.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому