1С 8.3 Найти набор данных СКД
Данные > Примеры кода 1С > 1С 8.3 Схема компоновки данных (СКД)
Перейти в раздел примеры кода 1С 8.3:
Поиск набора данных СКД в 1С 8.3:
// Ищет набор данных по имени (можно рекурсивно).
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/81
//
// Параметры:
// КоллекцияНаборов - СхемаКомпоновкиДанных
// - НаборыДанныхСхемыКомпоновкиДанных
// - НаборДанныхОбъединениеСхемыКомпоновкиДанных
// ИмяНабораДанных - Строка
// ВключаяПодчиненные - Булево
//
// Возвращаемое значение:
// - НаборДанныхЗапросСхемыКомпоновкиДанных
// - НаборДанныхОбъединениеСхемыКомпоновкиДанных
// - НаборДанныхОбъектСхемыКомпоновкиДанных
//
// Пример:
// НаборДанных = НайтиНаборДанных(СКД, "МойНабор");
//
Функция НайтиНаборДанных(Знач КоллекцияНаборов, Знач ИмяНабораДанных, Знач ВключаяПодчиненные = Истина) Экспорт
ПеребираемаяКоллекцияНаборов = Неопределено;
Если ТипЗнч(КоллекцияНаборов) = Тип("СхемаКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов.НаборыДанных;
ИначеЕсли ТипЗнч(КоллекцияНаборов) = Тип("НаборыДанныхСхемыКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов;
ИначеЕсли ТипЗнч(КоллекцияНаборов) = Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов.Элементы;
Иначе
Возврат Неопределено;
КонецЕсли;
НайденныйНаборДанных = Неопределено;
Для Каждого НаборДанных Из ПеребираемаяКоллекцияНаборов Цикл
Если НаборДанных.Имя = ИмяНабораДанных Тогда
НайденныйНаборДанных = НаборДанных;
ИначеЕсли ВключаяПодчиненные Тогда
НайденныйНаборДанных = НайтиНаборДанных(НаборДанных, ИмяНабораДанных, ВключаяПодчиненные);
КонецЕсли;
Если НЕ НайденныйНаборДанных = Неопределено Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат НайденныйНаборДанных;
КонецФункции
// 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/81
//
// Параметры:
// КоллекцияНаборов - СхемаКомпоновкиДанных
// - НаборыДанныхСхемыКомпоновкиДанных
// - НаборДанныхОбъединениеСхемыКомпоновкиДанных
// ИмяНабораДанных - Строка
// ВключаяПодчиненные - Булево
//
// Возвращаемое значение:
// - НаборДанныхЗапросСхемыКомпоновкиДанных
// - НаборДанныхОбъединениеСхемыКомпоновкиДанных
// - НаборДанныхОбъектСхемыКомпоновкиДанных
//
// Пример:
// НаборДанных = НайтиНаборДанных(СКД, "МойНабор");
//
Функция НайтиНаборДанных(Знач КоллекцияНаборов, Знач ИмяНабораДанных, Знач ВключаяПодчиненные = Истина) Экспорт
ПеребираемаяКоллекцияНаборов = Неопределено;
Если ТипЗнч(КоллекцияНаборов) = Тип("СхемаКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов.НаборыДанных;
ИначеЕсли ТипЗнч(КоллекцияНаборов) = Тип("НаборыДанныхСхемыКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов;
ИначеЕсли ТипЗнч(КоллекцияНаборов) = Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных") Тогда
ПеребираемаяКоллекцияНаборов = КоллекцияНаборов.Элементы;
Иначе
Возврат Неопределено;
КонецЕсли;
НайденныйНаборДанных = Неопределено;
Для Каждого НаборДанных Из ПеребираемаяКоллекцияНаборов Цикл
Если НаборДанных.Имя = ИмяНабораДанных Тогда
НайденныйНаборДанных = НаборДанных;
ИначеЕсли ВключаяПодчиненные Тогда
НайденныйНаборДанных = НайтиНаборДанных(НаборДанных, ИмяНабораДанных, ВключаяПодчиненные);
КонецЕсли;
Если НЕ НайденныйНаборДанных = Неопределено Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат НайденныйНаборДанных;
КонецФункции
// 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
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник