Имя: Пароль:
1C
1С v8
Сделать цикл по отобранным записям
,
0 qazokm
 
20.03.15
05:22
Есть внешняя обработка с УФ, на ней реквизит рф_Список тип ТЗ с колонками, она заполняется данными из справочника, далее нажимаю иконку найти и делаю фильтр по наименованию "ХХХ", потом нажимаю кнопку с процедурой

  Для Каждого Строка из  рф_Список цикл
        сообщить(Строка.наименование)
  конеццикла

но выводятся все записи, а мне надо только отобранные, как надо Сделать цикл по отобранным записям?
1 patria0muerte
 
20.03.15
05:29
если Рф_Список - ТаблицаЗначений, то можешь так:

НайденныеСтроки = рф_Список.НайтиСтроки(Новый Структура("ИмяРеквизита", ЗначениеРеквизита));

Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
//Действия
КонецЦикла;
2 qazokm
 
20.03.15
05:35
Спасибо, но в этом коде надо задавать условия отбора(может неправильно понимаю..)
Структура("Наименование", "Рога")
А у меня уже на форме строки выбранны...
3 patria0muerte
 
20.03.15
05:43
С формы ты отобранные строки не получишь, если мне память не изменяет. Т.к. фильтруешь ты представление объекта на форме, сама ТЗ у тебя не меняется.
Так что можно в НайтиСтроки() класть то, что ты кладешь в отбор, либо, если отбор сложный (не на равенсто) - делай нужный отбор прямо в цикле, типа:

Для Каждого Строка из  рф_Список цикл
Если "ТутУсловие" Тогда
   сообщить(Строка.наименование)
КонецЕсли
конеццикла
4 patria0muerte
 
20.03.15
05:44
А в чем суть задачи то? Чего реализуешь?
5 qazokm
 
20.03.15
05:51
ну если тут не заклюют, то попробую объяснить..:-)
в внешней обработке выбираю всех партнеров в ТЗ, выбираю одинаковые по наименованию, остаются две-три записи, далее начинаю их визуально сравнивать в таблице(она не стандартная, с какими то своими реквизитами), если чего-то не хватает в одной, копи-пастом в другую запись, после этого надо сохранить изменения... Визуальное сравнение в виде закладок, мне показалось неудобным, прыгать с одного окна в другое...
Как-то страшно отправлять.... ну ладно..
6 Dilgorp
 
20.03.15
05:57
(5) а чего сразу дубли не показывать? и искать их еще до открытия формы на клиенте запросом, а не отбором?
7 qazokm
 
20.03.15
06:04
Можно попробовать как-то добраться до объекта Найти, и посмотреть в свойствах его параметр наименование поиска...
8 Dilgorp
 
20.03.15
06:09
(7) у тебя есть две таблицы, если у записей наименование совпадает, то и остальные поля тоже должны совпадать, так?
9 anaed
 
20.03.15
06:13
(0)
Функция ОтборПостроителем (Таблица,Отбор) экспорт
    ПостроительЗапроса = Новый ПостроительЗапроса;
    ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Таблица);
    Для каждого Показатель из Отбор Цикл
        НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(Показатель.Имя);
        НовыйОтбор.ВидСравнения = Показатель.ВидСравнения;  
        НовыйОтбор.Значение = Показатель.Значение ;
        НовыйОтбор.Использование = Показатель.Использование;
    КонецЦикла;    
    Результат = ПостроительЗапроса.Результат;    
    
    Возврат Результат.Выгрузить();
КонецФункции


где Таблица - твоя ТЗ рф_Список, А Отбор - ОтборСтрок элемента формы который связан с твоей ТЗ.
10 qazokm
 
20.03.15
06:14
спасибо, сейчас буду разбираться...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн