|
v7: Документы: ВыбратьПоЗначению | ☑ | ||
---|---|---|---|---|
0
vadim777
13.01.17
✎
12:50
|
Нужно обработать документы определенного вида для нескольких фирм, заданных списком. Как это сделать?
PS: Пробую след. образом: Для Инд = 1 По спФирмы.РазмерСписка() Цикл Доки = СоздатьОбъект("Документ.ПриходныеНакладные"); Доки.ВыбратьПоЗначению(Дата1,Дата2,"Фирма",спФирмы.ПолучитьЗначение(Инд)); .... На последней строке - сообщение об ошибке: .... Объект - документ определенного вида! Понятно, что нужно так: Доки = СоздатьОбъект("Документ") Но тогда для меня теряется смысл отбора по значению, если после этого в цикле нужно дополнительно проверять вид документа. Можно конечно выбрать документа заданного вида, и в цикле проверять на вхождение реквизита Фирма документа в спФирмы. А вот так чтобы сразу - выбрать документы определенного вида по значению его реквизита? А еще лучше - по вхождению значения реквизита в список значений? |
|||
1
Zmich
13.01.17
✎
12:54
|
(0). Используй запрос
|
|||
2
Builder
13.01.17
✎
12:55
|
Запрос не предлагать?
|
|||
3
vadim777
13.01.17
✎
12:55
|
(1)(2) А о запросе и не подумал. Спасибо.
|
|||
4
Рэйв
13.01.17
✎
12:59
|
ВыбратьПоЗначению только для "Документ"
|
|||
5
vadim777
13.01.17
✎
13:46
|
Сделал запросом:
Запрос = СоздатьОбъект("Запрос"); ТекстЗ = " |Период с Дата1 по Дата2; |ОбрабатыватьДокументы Проведенные; |ПН = Документ.ПриходнаяНакладная.ТекущийДокумент; |Фирма = Документ.ПриходнаяНакладная.Фирма; |Группировка ПН Упорядочить по ПН.ДатаДок; |Условие(Фирма в спФирмы); |"; Если Запрос.Выполнить(ТекстЗ) = 0 Тогда Сообщить("Не выполнился запрос по ПН.","!!"); Возврат; КонецЕсли; ТекДок = СоздатьОбъект("Документ.ПриходнаяНакладная"); Пока Запрос.Группировка() = 1 Цикл ТекДок.НайтиДокумент(Запрос.ПН); СформироватьЦены(); КонецЦикла; Под условие попадает один документ, а цикл по запросу идет на второй шаг, при этом поле ПН - пустое, Фирма - заполненное. В чем тут дело? |
|||
6
Ёпрст
13.01.17
✎
14:11
|
(0) можешь ограничить выборку конкретным видом, если напишешь ИспользоватьЖурнал перед этим
|
|||
7
Ёпрст
13.01.17
✎
14:14
|
(5)
//|ОбрабатыватьДокументы Проведенные; .... //|Группировка ПН Упорядочить по ПН.ДатаДок; Пока Запрос.Группировка() = 1 Цикл ЗЫ: выкинь лишнее и воткни параметр в метод группировка, ты же не используешь БезИтогов в запросе. |
|||
8
Ёпрст
13.01.17
✎
14:15
|
Писать ОбрабатыватьДокументы не нужно, запрос и так по-умолчанию выбирает только проведенные и сам упорядочивает по дате
|
|||
9
vadim777
13.01.17
✎
14:28
|
(7)(8) Все получилось. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |