Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обращение к подгруппам

Обращение к подгруппам
Я
   HelpMePlz
 
05.01.21 - 10:19
Добры день, такой вопрос у меня. у меня есть справочник "Номенклатура" в нем хранятся группы. В свою очередь в группах хранятся еще группы и элементы.
На этот момент я получаю с помощью запроса только те элементы которые находятся на первом уровне группы, а мне надо что бы если в первом уровне групп если есть еще группы
то и элементы которые в них находятся тоже читать.
Код {
Функция НаименованиеАвтомобилей()
    
    Массив = Новый Массив;
    Массив.Добавить("BMW");
    Массив.Добавить("CHEVROLET");
    Массив.Добавить("CHRYSLER");
    Массив.Добавить("CITROEN-PEUGEOT");
    Массив.Добавить("DAEWOO");
    Массив.Добавить("FIAT");
    Массив.Добавить("FORD");
    Массив.Добавить("HONDA");
    Возврат Массив;
    
КонецФункции

Функция ПолучитьВыборкуИзНоменклатуры() Экспорт
    
    
    Результат = Неопределено;    
    Массив = Новый Массив;
    Автомобиль = НаименованиеАвтомобилей();    

    Для Индекс = 0 По Автомобиль.Количество()-1 Цикл
        Выполнено = Ложь;
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК номенклатура
        |ГДЕ
        |    Номенклатура.Родитель.Наименование = &Автомобиль
        |    И Номенклатура.ТипНоменклатуры = &ТипНоменклатуры";
        Запрос.УстановитьПараметр("Автомобиль", Автомобиль[Индекс]);
        Запрос.УстановитьПараметр("ТипНоменклатуры", ТипНоменклатуры);
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            Структура = Новый Структура;
            Структура.Вставить("Марка", Автомобиль[Индекс]);
            Структура.Вставить("Ссылка", Выборка.Ссылка);
            Массив.Добавить(Структура);
            Выполнено = Истина;
                КонецЦикла;
        КонецЦикла;
    Если Массив.Количество() <> 0 Тогда
         Результат = Массив;
         Возврат Результат
    КонецЕсли;
    
    Возврат Результат;
    
КонецФункции
} Код
Если вар как то продолжить без изменения структуры кода подскажите в какую сторону искать.
(Почему я создал массив из наименований групп?
Потому что в номенклатуре есть еще группы первого
уровня в которые я заходить не хочу)
   rphosts
 
1 - 05.01.21 - 10:31
Делать за тебя не буду, но подсказку дам:   "ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ (&Группа1)" выберет вообще всё с любой глубиной вложения папки Группа1.
Вторая подсказка: сделай пакетный запрос указав вместо Группа1 выборку из временной таблицы
   acht
 
2 - 05.01.21 - 10:31
Что такое "вар"?
   acht
 
3 - 05.01.21 - 10:32
"без изменения структуры кода" - Это как?
   HelpMePlz
 
4 - 05.01.21 - 10:32
(2) вариант
   HelpMePlz
 
5 - 05.01.21 - 10:34
(1) спасибо
   HelpMePlz
 
6 - 05.01.21 - 10:35
(3) Ну то есть код который есть его не изменять а просто дописать к этому коду дополнение. Или просто не много изменить, но что бы суть логики осталась та же.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.