Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)
Написал некую обработку.
Создал для нее форму с табличной частью "Детально" и командной панелью с классическими действиями по фильтрам "Установить отбор и сортировку списка"
Одним словом всё работает и придраться вроде не к чему, но...
Есть у меня в этой табличной части поле "Да" (булево). Это булево отвечает за дальнейшие действия под данной обработке, типа если в этой строке есть "Да" = истина, то выполнять нужно.
Так же есть кнопка, которая делает поле "да" = истина программно.
Для каждого СтрокаТабличнойЧасти Из Детально Цикл
СтрокаТабличнойЧасти.Да = Истина;
КонецЦикла;
НайтиСтроки()
НакладываеТЕ такой-же фильтр, как ив программе, перебираеТЕ и меняеТЕ.
! | http://pro1c.org.ua/index.php?act=announce&id=2: 1 |
Constantus @ Сегодня, 9:45
,
Получить отфильтрованные строки можно так:
&НаКлиенте
Процедура Команда1(Команда)
ИдентификаторыВыбраныхСтрок= Новый Массив;
Для Каждого СтрокаТаблицыФормы Из Объект.ТабличнаяЧасть1 Цикл
ИдентификаторСтроки = СтрокаТаблицыФормы.ПолучитьИдентификатор();
Если Элементы.ТабличнаяЧасть1.ПроверитьСтроку(ИдентификаторСтроки) Тогда
ИдентификаторыВыбраныхСтрок.Добавить(ИдентификаторСтроки);
КонецЕсли;
КонецЦикла;
ОбработатьСтрокиТаблицыНаСервере(ИдентификаторыВыбраныхСтрок);
КонецПроцедуры
&НаСервере
Процедура ОбработатьСтрокиТаблицыНаСервере(ИдентификаторыВыбраныхСтрок)
ВыбраныеСтроки = Новый Массив;
Для Каждого ИдентификаторСтроки Из ИдентификаторыВыбраныхСтрок Цикл
ОтфильтрованнаяСтрока = Объект.ТабличнаяЧасть1.НайтиПоИдентификатору(ИдентификаторСтроки);
ОтфильтрованнаяСтрока.Реквизит1 = "Некая строка";
КонецЦикла;
КонецПроцедуры
Valerka @ Сегодня, 17:08
,
Вот написал код с предложенным
Отбор = Новый Структура;
Отбор.Вставить("Наименование", "Кредит 3 дн.");
НайденныеСтроки = Детально.НайтиСтроки(Отбор);
Для Каждого Стр из НайденныеСтроки Цикл
Стр.ДА = Истина;
КонецЦикла;
Constantus @ Сегодня, 14:48
,
Сделайте как я предложил выше и не надо будет играться с накладыванием фильтра =) Сразу получите идентификаторы уже отобранных строк, дальше по ним получаете строку и делаете с ней что хотите
Bernet @ Сегодня, 17:43
,
У меня обычные формы. Попробовал переделать код, не помогло...
Bernet @ Сегодня, 17:53
,
Для Каждого СтрокаТаблицыФормы Из ЭлементыФормы.Детально Цикл
{Обработка.МассоваяПометкаНаУдалениеДоговоров.Форма.Форма.Форма(200)}: Итератор для значения не определен
Для Каждого СтрокаТаблицыФормы Из ЭлементыФормы.Детально Цикл
Constantus @ Сегодня, 15:09
,
извиняюсь проморгал - мне казалось вы раньше по упр формам вопросы задавали)
вот такой изврат для обычных форм сработает:
ТЗ = ЭлементыФормы.ТабличнаяЧасть1;
ДанныеТаблицы = Неопределено;
Выполнить("ДанныеТаблицы="+ТЗ.Данные);
Для Каждого СтрокаТЗ ИЗ ДанныеТаблицы Цикл
ТЗ.ТекущаяСтрока = СтрокаТЗ;
Если ТЗ.ТекущаяСтрока = СтрокаТЗ Тогда // попали в отбор
СтрокаТЗ.Реквизит1 = "Некое значение";
КонецЕсли;
КонецЦикла;
Bernet @ Сегодня, 18:26
,
Благодарю, сработало...
Что это такое:
Выполнить("ДанныеТаблицы="+ТЗ.Данные);
?
Constantus @ Сегодня, 15:31
,
Команда на запуск фонового задания - в данном контексте это одна строка кода, которая вычитывает данные таблицы формы и запихивает результат в локальную переменную.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua