|
v7: Запрос в документе и во внешней обработки возвращает разный результат | ☑ | ||
---|---|---|---|---|
0
zhenyat
27.04.12
✎
11:28
|
Здравствуйте
Помогите пожалуйста разобраться. Имеется следующий запрос: + Code Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с (ДатаНачалаРаботы) по (ДатаДок); |ТекущийДокумент=Документ.ПоступлениеБрака.ТекущийДокумент; |Товар = Документ.ПоступлениеБрака.Товар,Регистр.БракСторонний.ТМЦ, Регистр.БракОтремонтированный.ТМЦ,Регистр.БракОкончательный.ТМЦ; |СерийныйНомер = Документ.ПоступлениеБрака.СерийныйНомер,Регистр.БракСторонний.СерийныйНомер, Регистр.БракОтремонтированный.СерийныйНомер,Регистр.БракОкончательный.СерийныйНомер; |КолДок = Документ.ПоступлениеБрака.Количество; |КолОт = Регистр.БракОтремонтированный.Количество; |КолСт = Регистр.БракСторонний.Количество; |КолОк = Регистр.БракОкончательный.Количество; |Функция КолДокОст = КонОст(КолДок); |Функция КолОтОст = КонОст(КолОт); |Функция КолСтОст = КонОст(КолСт); |Функция КолОкПрих = Приход(КолОк); |Группировка Товар без групп; |Группировка СерийныйНомер; |Условие(Товар В СписокТоваров); |Условие(СерийныйНомер В СписокСН); |Условие(ТекущийДокумент = (ВыбТекущийДокумент)); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Почему то этот запрос по разному работает, если его запускать в модуле формы документа или из внешней обработки. Запущенный во внешней обработки он возвращает результаты функций, а в документе - функции почти всегда возвращают 0! И я не могу понять - почему? |
|||
1
Zmich
27.04.12
✎
11:32
|
ДатаДок - одинаковые в документе и внешней обработке?
|
|||
2
zhenyat
27.04.12
✎
11:46
|
Да, все переменные одинаковые
Проверяю на одном и том-же документе - во внешней обработке есть поле для выбора документа |
|||
3
ALoHA
27.04.12
✎
12:13
|
Документ расчитывает итоги по свою позицию, а отчет за целый день. Попробуй к дате дока прибавить 1 день, а в обработке оставить старую дату.
|
|||
4
Подводный Таракан
27.04.12
✎
12:17
|
ВыбТекущийДокумент - в документе правильно задан?
|
|||
5
zhenyat
27.04.12
✎
12:31
|
(4) Да, в документе вместо ВыбТекущийДокумент стоит ТекущийДокумент()
Специально в документ вставила вывод таблицы, такой же как и в обработке 0 обработка показывает остатки и приходы по регистрам, а документ - нет :( Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Проверка"); Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Таб.ВывестиСекцию("СерийныйНомер"); КонецЦикла; КонецЦикла; Таб.ВывестиСекцию("Итого"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); (3) Это не так, да и не имеет значения - документ составлен специально таким образом, чтобы некоторая продукция, внесенная в него гарантированно уже находилась на складах, и соответственно остатки и движения по регистрам, должны бы вычисляться и показываться... |
|||
6
zhenyat
28.04.12
✎
10:35
|
Сама разобралась
Если делать запрос в документе, то строки |ТекущийДокумент=Документ.ПоступлениеБрака.ТекущийДокумент; ... |Условие(ТекущийДокумент = (ВыбТекущийДокумент)); - лишние, убрав их из запроса - получила искомый результат |
|||
7
vladko
28.04.12
✎
10:39
|
конечно условие лишнее было на текущий документ в модуле формы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |