|
v7: получение данных запросом в модуле проведения | ☑ | ||
---|---|---|---|---|
0
dbehterev
12.01.12
✎
21:36
|
Всем привет. Столкнулся с тем, что нельзя получить остатки в модуле документа, тогда как в модуле формы без проблем. Я чего-то пропустил?
Т.е. есть вот такой кусок: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с ДатаДок по ДатаДок; |ФирмаЗапроса = Регистр.ПартииОтданные.Фирма; |... |Группировка Товар Без Групп;"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат 1; КонецЕсли; ТЗ = ""; Запрос.Выгрузить(ТЗ,,0); В модуле проведения не работает. Всем спасибо за ответы. |
|||
1
SnarkHunter
12.01.12
✎
21:39
|
Видимо пропустил...
В запросе к регистру обязательно должны присутствовать функции... |
|||
2
dbehterev
12.01.12
✎
21:40
|
Вот полный код:
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с ДатаДок по ДатаДок; |ФирмаЗапроса = Регистр.ПартииОтданные.Фирма; |Товар = Регистр.ПартииОтданные.Товар; |Контрагент = Регистр.ПартииОтданные.Контрагент; |Количество = Регистр.ПартииОтданные.Количество; |Сумма = Регистр.ПартииОтданные.ПродСтоимость; |Функция КонОстС = КонОст(Сумма); |Функция КонОстК = КонОст(Количество); |Условие (ФирмаЗапроса = Фирма); |Условие (Контрагент = Клиент); |Группировка Товар Без Групп;"; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат 1; КонецЕсли; ТЗ = ""; Запрос.Выгрузить(ТЗ,,0); В Модуле проведения имеем пустую ТЗ, в модуле формы - все ОК. |
|||
3
andrewks
12.01.12
✎
21:41
|
неплохо было бы получать не на ДатаДок, а на позицию дока
|
|||
4
Ёпрст
12.01.12
✎
21:42
|
(2)чорный запрос в модуле проведения - это моветон.
А итоги в разы проще получить через методы объекта Регистры |
|||
5
Сияющий Асинхраль
12.01.12
✎
21:43
|
Кроме того обрати внимание ни в одной типовой запросов в модулях проведения нет - из-за их неторопливости это плохой стиль
|
|||
6
ДенисЧ
12.01.12
✎
21:48
|
(5)
"ни в одной типовой запросов в модулях проведения нет" Мягко говоря - неправда, а грубо говоря - враньё,... |
|||
7
dbehterev
12.01.12
✎
21:49
|
(3) тут похоже какое-то еще ограничение, нежели в ДатаДок.
(4), (5) - понял, буду переделывать. Запрос переделаю на регистры, просто интересно, почему не выходит запросом, ясно, что плохой стиль, но все же. |
|||
8
Guk
12.01.12
✎
21:56
|
(7) не слушай никого, привыкай к нормальному программированию на 1С ;) в 8-ке запросы, как способ обращения к данным, это вообще стандарт...
|
|||
9
Джинн
12.01.12
✎
21:58
|
(6) Мягко говоря запрос получает остатки в пять раз медленнее выгрузки итогов.
Поэтому в типовых их действительно практически нет. |
|||
10
dbehterev
12.01.12
✎
22:00
|
(9) вопрос не в том, что медленно, вопрос в том, что нулевые данные...
|
|||
11
Джинн
12.01.12
✎
22:02
|
(10) С периодом запроса разберись. Открой для себя позицию документа.
|
|||
12
dbehterev
12.01.12
✎
22:20
|
(10) открыл для себя позицию документа:
Позиция = СформироватьПозициюДокумента(ТекущийДокумент()); Соответственно в запросе переписал ДатаДок на Позиция. Ситуация не поменялась. В-общем х. с ним, пойду по шаблону. |
|||
13
andrewks
12.01.12
✎
22:25
|
у тебя Запрос.Выполнить(ТекстЗапроса) что возвращает?
|
|||
14
dbehterev
12.01.12
✎
22:26
|
пустую ТЗ
|
|||
15
andrewks
12.01.12
✎
22:27
|
(14) какую ТЗ? он, вообще-то, число возвращает
|
|||
16
dbehterev
12.01.12
✎
22:27
|
сам запрос выполняется успешно, если вы об этом.
|
|||
17
andrewks
12.01.12
✎
22:30
|
Рез=Запрос.Выполнить(ТекстЗапроса);
Сообщить("Результат выполнения запроса = "+Рез); Если Рез = 0 Тогда Возврат 1; КонецЕсли; ТЗ = ""; Рез=Запрос.Выгрузить(ТЗ,,0); Сообщить("Результат выгрузки результата запроса = "+Рез); что появляется в окне сообщений? |
|||
18
dbehterev
12.01.12
✎
22:39
|
Возвращает 1.
|
|||
19
andrewks
12.01.12
✎
22:43
|
там два результата. поточнее, плз, где какое значение возвращает
|
|||
20
dbehterev
12.01.12
✎
22:53
|
Результат выполнения запроса: 1
Результат выгрузки в ТЗ: 1 |
|||
21
Эльниньо
13.01.12
✎
09:56
|
Что за мания - пихать запросы куда надо и не надо?
|
|||
22
nicxxx
13.01.12
✎
10:19
|
(20) Да ты ТЗ просмотри - есть там чего-нибудь или нет, а не результат выгрузки в нее изучай
|
|||
23
nicxxx
13.01.12
✎
10:19
|
любую обработку с инфостарта типа "просмотр значений" можно взять
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |