|
v7: Запрос и список | ☑ | ||
---|---|---|---|---|
0
Zhuravlik
18.08.11
✎
15:44
|
Здравствуйте. Подскажите пожалуйста такую вещь. Собираю в запросе документы за период в таблицу значений.
Код: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с выбДата по выбДата; |ОбрабатыватьДокументы Проведенные; |Без Итогов; |МЛ = Документ.МаршрутныйЛист.ТекущийДокумент; |Функция ЧтобыБыло = Счётчик(); |Группировка МЛ; |"; А потом хочу ее же обновлять, то есть включать в нее все документы, кроме найденных. Для этого делаю такую добавку: Если тзМаршрутныхЛистов.КоличествоСтрок() > 0 Тогда спПолученныхМаршрутов = СоздатьОбъект("СписокЗначений"); тзМаршрутныхЛистов.Выгрузить(спПолученныхМаршрутов,,,1); ТекстЗапроса = ТекстЗапроса +" |Условие (НЕ (МЛ в спПолученныхМаршрутов)); |"; КонецЕсли; Дальше заполняю таблицу. Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка() = 1 Цикл текДок = Запрос.МЛ; тзМаршрутныхЛистов.НоваяСтрока(); тзМаршрутныхЛистов.Документ = текДок; тзМаршрутныхЛистов.Водитель = Запрос.МЛ.Водитель; тзМаршрутныхЛистов.ТипТовара = ПроверкаПропускаПоСкладу(текДок); КонецЦикла; У меня условие не работает. То есть запрос должен брать все документы, кроме тех, которые есть в списке, а он берет те же самые. Я уже понял, что конструкцией НЕ просто отменяю действие условия. А как сделать такую выборку, без внешних функций? И еще вопрос, можно ли в запросе присвоить переменной значение, вычисляемое во внешней функции? (как в моем запросе сделать ТипТовара = ПроверкаПропускаПоСкладу(текДок)?) |
|||
1
andrewks
18.08.11
✎
15:46
|
|Условие (спПолученныхМаршрутов.НайтиЗначение(МЛ)=0);
|
|||
2
andrewks
18.08.11
✎
15:47
|
но лучше уж тогда в ТЗ загнать, если большие количество
|
|||
3
Zhuravlik
18.08.11
✎
15:49
|
(2) Количества не большие, до 200 значений)) Спасибо, вы как всегда помогли)
А со вторым вопросом подскажете? |
|||
4
Zhuravlik
18.08.11
✎
15:51
|
(2) А с ТЗ как проверять? Также? И в ТЗ должна быть оджна колонка?
|
|||
5
Sj
18.08.11
✎
15:55
|
текДок = Запрос.МЛ;
ну попробуй текДок = Запрос.МЛ.ТекущийДокумент(); |
|||
6
Sj
18.08.11
✎
15:55
|
Если тзМаршрутныхЛистов.КоличествоСтрок() > 0 Тогда
условие можно убрать |
|||
7
andrewks
18.08.11
✎
15:56
|
(4)
|Условие (тзПолученныхМаршрутов.НайтиЗначение(МЛ,0,1)=0); |
|||
8
Sj
18.08.11
✎
15:58
|
по 2-му вряд ли возможно, да и не имеет смысла. присваивай в переборе запроса.
|
|||
9
Zhuravlik
18.08.11
✎
15:58
|
(7) Спасибо)
А можно в запросе присвоить переменной значение, вычисляемое во внешней функции? (как в моем запросе сделать ТипТовара = ПроверкаПропускаПоСкладу(текДок)?) |
|||
10
Zhuravlik
18.08.11
✎
15:59
|
(8) Понял, спасибо вам всем огромное)
|
|||
11
andrewks
18.08.11
✎
15:59
|
(9) в условие запихни
|
|||
12
Zhuravlik
18.08.11
✎
16:02
|
(11) Уже, все летает) Класс)
|
|||
13
Zhuravlik
18.08.11
✎
16:03
|
(12) Ой, вы имеете в виду внешнюю функцию? Сейчас попробую...
|
|||
14
andrewks
18.08.11
✎
16:03
|
(13) ага
|
|||
15
andrewks
18.08.11
✎
16:03
|
+(14) только учти, что это существенно затормозит запрос
|
|||
16
Zhuravlik
18.08.11
✎
16:08
|
(15)
Я тоже об этом только что подумал, и решил что не буду ее туда вставлять, спасибо вам за вашу помощь) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |