0
Umutbayev
20.06.13
✎
15:36
|
Я в 1С новичек, прошу помечь. 1С 8.2.
Есть обработка, нужно добавить отбор по параметру "СебСумма" при отрицательном варианте:
Отбор = Новый Структура();
Отбор.Вставить("ДатаДок", СтрДат.ДатаДок);
Отбор.Вставить("ТипДок", 8);
МассивОпераций = ТабОпераций.НайтиСтроки(Отбор);
СтрокиОперации = ТабОпераций.Скопировать(МассивОпераций);
СтрокиОперации.Свернуть("Получатель,ПолучательКод,Поставщик,ПоставщикКод,Товар","СебСумма,СебНДС");
|
|
7
Serginio1
20.06.13
✎
15:56
|
К сожалению в 1С нет ни лямбд ни делегатов
но есть функция вычислить, которая выполняет текст
+ Code
Функция НайтиПоУсловию(Тз,Условие,Список="",Модуль="")
Массив новый массив;
Для каждого Стр из Тз Цикл
Если Вычислить(Условие) Тогда
массив.Добавить(стр)
КонецЕсли
КонецЦикла;
возврат Тз.Скопировать(массив)
КонецФункции
Рез=НайтиПоУсловию(тз,"стр.ФизЛицо=""Иванов""
или стр.ФизЛицо=""Сидоров""
или стр.ФизЛицо=""Петров""");
или
Список=ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок("Иванов,Сидоров,Петров");
Рез=НайтиПоУсловию(тз,"Список.Найти(стр.ФизЛицо)<>Неопределено");
Или
Рез=НайтиПоУсловию(тз,"Найти(Врег(стр.Значение),Врег(""акф""))>0");
Рез=НайтиПоУсловию(тз,"Модуль.ФункцияСравнения(Стр,Список)",ЭтотОбъект);
То есть в модуле обработки должна быть функция
Функция ФункцияСравнения(стр,МассивСтруктур) Экспорт
|
|