Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 янв 2022, 08:05

Запуталась с Элементами и Объектами

Автор Николямба, 16 дек 2021, 19:25

0 Пользователей и 1 гость просматривают эту тему.

Николямба

Суть такова:
Есть справочник (СИЗ), в котором иерархический список(Родитель), в котором есть список номенклатуры(реквизита наименования нет)
Есть Документ, в котором есть строка, где я выбираю группу справочника(УсловияОкружающейСреды)
Также в документе есть таблица(СИЗ), которая должна выводить все значения(Наименование и количество) выбранной группы по кнопке
Наработки кода прилагаю, возможно, я где-то попутала значения и все пошло не так

&НаКлиенте
Процедура Команда3(Команда)
ЗаполнениеТ3();

КонецПроцедуры
&НаСервере
Процедура ЗаполнениеТ3()
Для Каждого Элемент из Объект.Ссылка.СИЗ.Родитель Цикл

    ПоискЗначе(Элемент.УсловияОкружающейСреды, "СИЗ");   
       КонецЦикла;
    КонецПроцедуры 
   

    &НаСервере
Процедура ПоискЗначе(Родитель, СправочникПоиска)

 Если СправочникПоиска="СИЗ" тогда
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Родитель", Родитель);
    Запрос.Текст = "ВЫБРАТЬ
                |СИЗ.Ссылка КАК Ссылка                      
            |ИЗ
                        |Справочник.СИЗ КАК СИЗ
                       |ГДЕ
                         |СИЗ.Родитель =   &Родитель";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
      Если Объект.СИЗ.Количество()=0 тогда
         НоваяСтрока = Объект.СИЗ.Добавить();
         НоваяСтрока.Наименование = Выборка.Ссылка;
          НоваяСтрока.Количество = 1;           
         Продолжить;
       КонецЕсли;
      Для Каждого Элемент из Объект.СИЗ Цикл
         Если не Элемент.Наименование = Выборка.Ссылка тогда
             Запись = Истина;
         иначе

             Запись = Ложь;
             Прервать;
          КонецЕсли;
      КонецЦикла;
       Если Запись = Истина тогда
          НоваяСтрока = Объект.СИЗ.Добавить();
          НоваяСтрока.Наименование = Выборка.Ссылка;
          НоваяСтрока.Количество = 1;
       КонецЕсли;      
   КонецЦикла;   
   Объект.СИЗ.Сортировать("Наименование");
КонецЕсли;
           КонецПроцедуры

alexandr_ll


Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск