|
v7: Запрос не выполняется | ☑ | ||
---|---|---|---|---|
0
Milli
27.12.12
✎
13:38
|
При выполнении запроса выдается ошибка и выкидывает из 1С. В чем может быть причина?
Запрос = СоздатьОбъект("Запрос"); СчетЗаданный = счетпокоду("23.2"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |ОбрабатыватьДокументы Проведенные; |Сч = Документ.РасходМатериалов.СчетЗатрат; |Автомобиль_ = Документ.РасходМатериалов.Субконто4; |Материал = Документ.РасходМатериалов.Товар; |Количество_ = Документ.РасходМатериалов.Количество; |СумМатериал_ = Документ.РасходМатериалов.Сумма;"; ТекстЗапроса = ТекстЗапроса+ " |Группировка Автомобиль_ Без Упорядочивания Без Групп;"; ТекстЗапроса = ТекстЗапроса+ " |Группировка Материал Без Упорядочивания Без Групп; |Функция Количество = Сумма(Количество_); |Функция СумМатериал = Сумма(СумМатериал_); |Условие (сч = СчетЗаданный);"; если ПустоеЗначение(Автомобиль) = 0 тогда ТекстЗапроса = ТекстЗапроса + " |Условие (Автомобиль_ в Автомобиль);"; конецесли; ТекстЗапроса = ТекстЗапроса + " |"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; |
|||
1
ДенисЧ
27.12.12
✎
13:40
|
Я НЕ стану угалывать ошибку с трёх букв...
|
|||
2
KishMish
27.12.12
✎
13:41
|
ну я не телепат конечно, но
1. |Материал = Документ.РасходМатериалов.Товар |
|||
3
Milli
27.12.12
✎
14:01
|
(2) Даже если и пропишешь Товар как Товар.Наименование все равно выдается ошибка. И ошибка указывается вот на этот участок кода:
если ПустоеЗначение(Автомобиль) = 0 тогда ТекстЗапроса = ТекстЗапроса + " |Условие (Автомобиль_ в Автомобиль);"; конецесли; Если ставишь в условии знак "=", все нормально формируется, а если "в", выдается ошибка. |
|||
4
пипец
27.12.12
✎
14:04
|
сделай Автомобиль списком значений
|
|||
5
viktor_vv
27.12.12
✎
14:04
|
А что такое Автомобиль ? Ревизит формы ? Какого типа ?
|
|||
6
Ёпрст
27.12.12
✎
14:21
|
для начала, выкинуть из кода "без упорядочивания"
|
|||
7
Milli
27.12.12
✎
14:38
|
(6)"без упорядочивания" убрала.
(4) сделала Автомобиль СЗ. ничего не помогло. (5) Реквизит расположен на форме. Тип "Справочник.Автомобили" Может это все из-за того, что "Автомобиль_ = Документ.РасходМатериалов.Субконто4", а Автомобиль напрямую связан со справочником Автомобили? |
|||
8
Ёпрст
27.12.12
✎
14:41
|
(7) без условия, работает ?
и "не работает" в чем именно заключается ? Выборка пустая ? |
|||
9
Milli
27.12.12
✎
14:45
|
Дело не в условии. В это условие попадает, смотрела в отладчике. А вот группировка пустая по Автомобилям и соответственно не попадает в группировку.
|
|||
10
Ёпрст
27.12.12
✎
14:47
|
(9) дык всё же запрос то рабочий, просто условия не верные, не так ли ?
|
|||
11
Ёпрст
27.12.12
✎
14:47
|
и это, закрой жуколов.
|
|||
12
Milli
27.12.12
✎
14:48
|
При выборке отдельного автомобиля, отчет формируется при условии "Условие ((Автомобиль_ = Автомобиль) или(Автомобиль_ в Автомобиль))". А еще нужно чтобы и по всей группе отчет формировался.
(11) что имеете ввиду под "закрой жуколов"? |
|||
13
Ёпрст
27.12.12
✎
14:50
|
(12) отладчик закрой
|
|||
14
Ёпрст
27.12.12
✎
14:51
|
И это, перем Автомобиль нет в коде случаем ?
|
|||
15
Ganiev
27.12.12
✎
14:52
|
Автомобиль = СоздатьОбъект("СписокЗначений");
Автомобиль.ДобавитьЗначения(//Суеш сюда свои автомобили) СчетЗаданный = счетпокоду("23.2"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |ОбрабатыватьДокументы Проведенные; |Сч = Документ.РасходМатериалов.СчетЗатрат; |Автомобиль_ = Документ.РасходМатериалов.//ТУТ ИМЯ РЕКВИЗИТА КАК ОН У ТЕБЯ НАЗЫВАЕТСЯ; |Материал = Документ.РасходМатериалов.Товар; |Количество_ = Документ.РасходМатериалов.Количество; |СумМатериал_ = Документ.РасходМатериалов.Сумма;"; // ТекстЗапроса = ТекстЗапроса+ //" //|Группировка Автомобиль_ Без Упорядочивания Без Групп;"; //Зачем тебе 2 раза одна и таже группировка????? ТекстЗапроса = ТекстЗапроса+ " |Группировка Материал Без Упорядочивания Без Групп; |Функция Количество = Сумма(Количество_); |Функция СумМатериал = Сумма(СумМатериал_); |Условие (сч = СчетЗаданный);"; если АвтомобильРазмерСписка() > 0 тогда ТекстЗапроса = ТекстЗапроса + " |Условие (Автомобиль_ в Автомобиль);"; конецесли; |
|||
16
Milli
27.12.12
✎
14:59
|
(15)
По списку значений я сделала так: если Автомобиль.ЭтоГруппа()=1 Тогда спр = создатьобъект("справочник.автомобили"); спр.ИспользоватьРодителя(Автомобиль,); спр.выбратьэлементы(); пока спр.получитьэлемент()<>0 цикл СЗ = создатьобъект("списокзначений"); сз.добавитьзначение(спр.текущийэлемент()); конеццикла; ТекстЗапроса = ТекстЗапроса + " |Условие (Автомобиль_ в сз);"; иначе ТекстЗапроса = ТекстЗапроса + " |Условие ((Автомобиль_ = Автомобиль) или(Автомобиль_ в Автомобиль));"; конецесли; Говорю же, не помогает. "|Автомобиль_ = Документ.РасходМатериалов.//ТУТ ИМЯ РЕКВИЗИТА КАК ОН У ТЕБЯ НАЗЫВАЕТСЯ;" - на счете 23.2 Субконто4 и есть справочник Автомобили. Здесь все правильно. "Зачем тебе 2 раза одна и таже группировка?????" - что-то я не вижу второй группировки по автомобилям? |
|||
17
Milli
27.12.12
✎
14:59
|
(14) такой переменной в модуле нет.
|
|||
18
Ёпрст
27.12.12
✎
15:01
|
без условия что выдает ?
|
|||
19
ЧеловекДуши
27.12.12
✎
15:04
|
По счетам лучше писать на Бух.Запросах. :)
|
|||
20
Milli
27.12.12
✎
15:05
|
(18)
если просто пишешь: спр = создатьобъект("справочник.автомобили"); спр.ИспользоватьРодителя(Автомобиль,); спр.выбратьэлементы(); пока спр.получитьэлемент()<>0 цикл СЗ = создатьобъект("списокзначений"); сз.добавитьзначение(спр.текущийэлемент()); конеццикла; ТекстЗапроса = ТекстЗапроса + " |Условие (Автомобиль_ в сз);"; ничего не выводит если пишешь: ТекстЗапроса = ТекстЗапроса + " |Условие ((Автомобиль_ = Автомобиль) или(Автомобиль_ в Автомобиль));"; выводит отчет только по отдельному автомобилю, по группе пусто. |
|||
21
Milli
27.12.12
✎
15:08
|
(19) наверно так и сделаю, если не получится через такие запросы сделать.
|
|||
22
Ёпрст
27.12.12
✎
15:10
|
Еще раз, выкини нахрен условие на автомобиль, что есть в выборке ?
Там есть то, что ты потом пытаешься в фильтр запихнуть, или нет ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |