Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: УПП 1.3 Как перебрать только отобранные строки в табличном поле
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
alexandr_f
Есть отбор в табличном поле.

Процедура РаботникиОрганизацииПриАктивизацииСтроки(Элемент)
    // Вставить содержимое обработчика.
    ТекущаяСтрока = Элемент.ТекущаяСтрока;
    
    Если ТекущаяСтрока = Неопределено Тогда
        мТекущийСотрудник = Неопределено;
        Возврат;
    КонецЕсли;
    
    // запомним текущего сотрудника
    мТекущийСотрудник = ТекущаяСтрока.СотрудникиОрганизаций.ФизЛицо;
    ЭлементыФормы.ВредныеФакторы.ОтборСтрок.ФизическоеЛицо.Использование = Истина;
    ЭлементыФормы.ВредныеФакторы.ОтборСтрок.ФизическоеЛицо.ВидСравнения = ВидСравнения.Равно;
    ЭлементыФормы.ВредныеФакторы.ОтборСтрок.ФизическоеЛицо.Значение = мТекущийСотрудник;

Как теперь перебрать только отобранные строки
sava1
Так просто перебрать - ДляКаждого
alexandr_f
sava1 @ Сегодня, 8:17 необходимо зарегистрироваться для просмотра ссылки,
Берет Тока первую
sava1
Отбор по равно или сложный?
alexandr_f
По мотивам . Нашел ответ
Построитель = Новый ПостроительЗапроса;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭтотОбъект.ВредныеФакторы); //Здесь отбор если нужно
Для Каждого ЭлементОтбора из ЭлементыФормы.ВредныеФакторы.ОтборСтрок Цикл
    Попытка
    ЗаполнитьЗначенияСвойств(Построитель.Отбор.Добавить(ЭлементОтбора.Имя), ЭлементОтбора);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;
    
КонецЦикла;
  
Запрос = Построитель.Результат.Выгрузить();
    Для Каждого  Строка ИЗ Запрос  Цикл
    //    ЗапросНабор.УстановитьПараметр("ВредныйФактор",Строка.ВредныйФактор);    
    //    ЗапросНабор.УстановитьПараметр("Физлицо",Строка.СотрудникиОрганизаций.ФизЛицо);             
    //    Результат = ЗапросНабор.Выполнить().Выгрузить();
    //    Включено=ЭлементыФормы.РаботникиОрганизации1.ТекущиеДанные.Включить;
    ////ЕСЛИ Результат.количество()>0 Тогда
    //ПОКА Строка.Следующий()   Цикл
        ЗапросНабор.УстановитьПараметр("ВредныйФактор",Строка.ВредныйФактор);    
        ЗапросНабор.УстановитьПараметр("Физлицо",Строка.СотрудникиОрганизаций.ФизЛицо);             
        Результат = ЗапросНабор.Выполнить().Выгрузить();
        ЕСЛИ Результат.количество()>0 Тогда
            
            Сообщить(Строка.ФизическоеЛицо);
            Сообщить(Строка.ВредныйФактор);
            Строка.ДатаПоследнегоМедосмотра  = Результат[0].ДатаМедосмотра;
            Строка.Следующий= ДобавитьМесяц(Строка.ДатаПоследнегоМедосмотра,Строка.ПериодМесяц);
            Если ГОД(ЭтотОбъект.Период)<ГОД(Строка.Следующий ) Тогда
                Строка.Включить= ЛОЖЬ;
            Иначе
                Строка.Включить= ИСТИНА;
            КонецЕсли;    
        Иначе
            Строка.ДатаПоследнегоМедосмотра  = NULL;
            Строка.Включить= ИСТИНА;
        КонецЕсли;    
    КонецЦикла;


 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 

Теперь хотя по строка прошел (проверил отладчиком) но изменений в табличном поле нет
sava1
ПроверитьСтроку() у Табличного поля.

Если Отбор простой - выгрузить в ТЗ, пользовать НайтиСтроки(Отбор)
Vofka
alexandr_f,

 ! 

необходимо зарегистрироваться для просмотра ссылки: 5
 

Скажите, почему вы в описании продублировали название темы, если при создании темы в подсказке и ниже поля ввода написано о том, что туда нужно что-то писать только в случае, если нужно дополнить название темы?
alexandr_f
Спасибо. Проблема решена через отбор в массив
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.