Имя: Пароль:
1C
1С v8
Отбор с условием
0 Umutbayev
 
20.06.13
15:36
Я в 1С новичек, прошу помечь. 1С 8.2.
Есть обработка, нужно добавить отбор по параметру "СебСумма" при отрицательном варианте:
           Отбор = Новый Структура();
           Отбор.Вставить("ДатаДок", СтрДат.ДатаДок);
           Отбор.Вставить("ТипДок", 8);
           МассивОпераций = ТабОпераций.НайтиСтроки(Отбор);
           СтрокиОперации = ТабОпераций.Скопировать(МассивОпераций);
           СтрокиОперации.Свернуть("Получатель,ПолучательКод,Поставщик,ПоставщикКод,Товар","СебСумма,СебНДС");
1 YF
 
20.06.13
15:37
(0) Что это?
2 Umutbayev
 
20.06.13
15:37
Прошу ПОМОЧЬ
3 Umutbayev
 
20.06.13
15:38
(1) часть обработки
4 Umutbayev
 
20.06.13
15:39
Вторая строка отбирает документы по дате,
а третья строка по типу документа равному 8.

Нужно добавить Отбор.Вставить("СебСумма", <0);
Но это не правльно.
5 Rovan
 
гуру
20.06.13
15:47
НайтиСтроки ищет только на равенство значениям полей
6 zladenuw
 
20.06.13
15:56
запрос со временной таблицей к твоей тз и делай свое сравнение в запросе
7 Serginio1
 
20.06.13
15:56
К сожалению в 1С нет ни лямбд ни делегатов
но есть функция вычислить, которая выполняет текст


+ Code
Функция НайтиПоУсловию(Тз,Условие,Список="",Модуль="")
Массив новый массив;
Для каждого Стр из Тз Цикл
  Если Вычислить(Условие) Тогда
    массив.Добавить(стр)
  КонецЕсли
КонецЦикла;
возврат Тз.Скопировать(массив)
КонецФункции

Рез=НайтиПоУсловию(тз,"стр.ФизЛицо=""Иванов""
   или стр.ФизЛицо=""Сидоров""
   или стр.ФизЛицо=""Петров""");

или
Список=ОбщегоНазначение.РазложитьСтрокуВМассивПодстрок("Иванов,Сидоров,Петров");

Рез=НайтиПоУсловию(тз,"Список.Найти(стр.ФизЛицо)<>Неопределено");

Или

Рез=НайтиПоУсловию(тз,"Найти(Врег(стр.Значение),Врег(""акф""))>0");

Рез=НайтиПоУсловию(тз,"Модуль.ФункцияСравнения(Стр,Список)",ЭтотОбъект);

То есть в модуле обработки должна быть функция
Функция ФункцияСравнения(стр,МассивСтруктур) Экспорт
8 Deon
 
20.06.13
15:59
(7) хитроумно
9 zladenuw
 
20.06.13
16:00
(7) надо запомнить.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший