|
Туплю с запросом. Ткните пальцем. | ☑ | ||
---|---|---|---|---|
0
Balabass
14.10.11
✎
10:43
|
Написал запрос - в консоле работает, в обработке нет.
ЗапросЗатраты = Новый Запрос; ЗапросЗатраты.Текст = "ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто |ГДЕ | ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &ДатаНач И &ДатаКон | И ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&СчетДт) | И ХозрасчетныйДвиженияССубконто.Активность = &Активность"; Активность = Истина; СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_; ЗапросЗатраты.УстановитьПараметр("ДатаНач", ДатаНач); - 01.01.11 ЗапросЗатраты.УстановитьПараметр("ДатаКон", ДатаКон); - 31.01.11 ЗапросЗатраты.УстановитьПараметр("СчетДт", СчетДт); - по 20(20.01 02) ЗапросЗатраты.УстановитьПараметр("Активность", Активность); - Истина В консоле Все ништяк, в обработке пустой. Че за дела? |
|||
1
asady
14.10.11
✎
10:49
|
(0) проверь датанач и датакон - скорее всего местами попутаны
|
|||
2
Balabass
14.10.11
✎
10:52
|
С датами порядок.
|
|||
3
Reset
14.10.11
✎
10:54
|
Ну другие параметры сверяй. Не бывает чудес
|
|||
4
Homer
14.10.11
✎
10:55
|
СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_;
что это за счет такой |
|||
5
Balabass
14.10.11
✎
10:56
|
(4)ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_ = 20.
ПланыСчетов.Хозрасчетный.ОсновноеПроизводство = 20.01 |
|||
6
butterbean
14.10.11
✎
10:57
|
показывай как дальше выводишь
|
|||
7
zbv
14.10.11
✎
10:57
|
(0) а как проверяешь, что пустой ?
|
|||
8
Balabass
14.10.11
✎
10:58
|
Прчием если убрать отбор по счету - то все проходит.
Но в консоле я делаю: |И ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&СчетДт) - работает В обработке |И ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&СчетДт) - не работает. А вывожу просто в ТЗ. При отладке ЗАпрос.Выполнить().Пустой() - говорит что истина |
|||
9
Balabass
14.10.11
✎
10:59
|
Смотрите - нужно отобрать проводки из хозрасчетного, чтобы Дт = 20(20.01 20.02 и т.д) а Кт = *
|
|||
10
Balabass
14.10.11
✎
11:00
|
Мож я че не так делаю?
До этого написал 3 запроса - этот 4 по аналогии. Но пустой зараза... |
|||
11
Balabass
14.10.11
✎
11:02
|
делал еще так
СписокОтбораПоСчетам = Новый СписокЗначений; СписокОтбораПоСчетам.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_ ); и в запрос ставил |И ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&СписокОтбораПоСчетам) - в консоле работает, а в обработке нет. |
|||
12
Balabass
14.10.11
✎
11:04
|
По идее должен хватать все счета, которые относятся к 20 счету.
Ведь условие иерархии как раз таки отбирает значения, удовлетворяющие условию из списка. Так? |
|||
13
Reset
14.10.11
✎
11:04
|
Не морочь голову, ты разный счет выбираешь в консоли и обработки.
|
|||
14
Alex S D
14.10.11
✎
11:05
|
Ну поставь условие счетДт = 20.01. и посмотри.. раз уж ты так грешишь на иерархию, конецдня(Датанок) делаешь?
|
|||
15
Reset
14.10.11
✎
11:07
|
В ИЕРАРХИИ(&СчетДт)
Замени на В ИЕРАРХИИ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство_ )) и убедись |
|||
16
Balabass
14.10.11
✎
11:11
|
(14)Да тут не особо важно - но делаю руками пока. 310111235959)))
(13) - где разный? Там ты имеешь введу 20 стоит - в консоле, а обработке ссылка на счет? |
|||
17
Reset
14.10.11
✎
11:14
|
310111235959
хоспаде что эта |
|||
18
Balabass
14.10.11
✎
11:14
|
ДДММГГГГЧЧММСС
|
|||
19
Balabass
14.10.11
✎
11:15
|
(15)Не. не взлетело.
Для 23 счета работает. А для 20 нет, хотя обороты есть по 20.01 |
|||
20
izekia
14.10.11
✎
11:16
|
(18) это ДДММГГЧЧММСС
|
|||
21
Reset
14.10.11
✎
11:16
|
(19) Да уже понятно из "310111235959" что не в счете дело.
|
|||
22
Reset
14.10.11
✎
11:17
|
Иди в СП и читай описание функции Дата
|
|||
23
asady
14.10.11
✎
11:18
|
(16) пятнично!!!
спасибо повеселил - жалко ветка только до 20 поста дошла.... |
|||
24
Homer
14.10.11
✎
11:18
|
какой красивый год ))
|
|||
25
Balabass
14.10.11
✎
11:19
|
(20)я заикаюсь сеггггодня)
|
|||
26
Alex S D
14.10.11
✎
11:21
|
А датаНач у тебя какая интересно?
|
|||
27
izekia
14.10.11
✎
11:22
|
(26) да, кстати, проблема в дата нач похоже)
|
|||
28
НЕА123
14.10.11
✎
11:23
|
(16)
310111235959 - а как такую дату можно ввести? в табло ругается. |
|||
29
байт
14.10.11
✎
11:23
|
(0) вместо ХозрасчетныйДвиженияССубконто.Активность = &Активность, пиши просто ХозрасчетныйДвиженияССубконто.Активность
|
|||
30
izekia
14.10.11
✎
11:26
|
(29) спорим не будет работать?
|
|||
31
Balabass
14.10.11
✎
11:28
|
(28) Нормально все
|
|||
32
байт
14.10.11
✎
11:28
|
(30) я знаю просто в гласа бросается)))
|
|||
33
izekia
14.10.11
✎
11:29
|
(32) я к тому, что если даже значение булево, то все равно нужно сравнение ... или это уже пофиксили?
|
|||
34
YF
14.10.11
✎
11:30
|
(0) Я бы условие накладывал на виртуальную таблицу + вместо дат взял бы границы с конец, Начало Дня ...
|
|||
35
Balabass
14.10.11
✎
11:30
|
(33)хз. через сранение стопудово будет работать...
|
|||
36
Alex S D
14.10.11
✎
11:30
|
давай текст обработки полностью
|
|||
37
НЕА123
14.10.11
✎
11:32
|
(31)
'310111235959' {(1,1)}: Неправильная константа типа Дата |
|||
38
LLIaMaH
14.10.11
✎
11:33
|
Вопрос: А почему параметры и условия применяются после ГДЕ, а не в качества параметров таблицы ОстаткиИОбороты?
|
|||
39
Balabass
14.10.11
✎
11:35
|
(36)
//.... апросЗатраты = Новый Запрос; ЗапросЗатраты.Текст = "ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор, | ХозрасчетныйДвиженияССубконто.СчетДт КАК СчетДт, | ХозрасчетныйДвиженияССубконто.СубконтоДт1.Код КАК Дт1, | ХозрасчетныйДвиженияССубконто.СубконтоДт2.Код КАК Дт2, | ХозрасчетныйДвиженияССубконто.СубконтоДт3.Код КАК Дт3, | ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКТ, | ХозрасчетныйДвиженияССубконто.Организация.ИНН КАК Организация, | ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма, | ХозрасчетныйДвиженияССубконто.Активность |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто |ГДЕ | ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &ДатаНач И &ДатаКон | И ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&СчетДт) | И ХозрасчетныйДвиженияССубконто.Активность"; Активность = Истина; СчетДт = Новый СписокЗначений; СчетДт.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_); ЗапросЗатраты.УстановитьПараметр("ДатаНач", ДатаНач); ЗапросЗатраты.УстановитьПараметр("ДатаКон", ДатаКон); ЗапросЗатраты.УстановитьПараметр("СчетДт", СчетДт); ЗапросЗатраты.УстановитьПараметр("Активность", Активность); ТЗОбщая = Новый ТаблицаЗначений; ТЗОбщая = ЗапросЗатраты.Выполнить().Выгрузить(); //... |
|||
40
Balabass
14.10.11
✎
11:36
|
(33)Работает)
|
|||
41
YF
14.10.11
✎
11:37
|
(39) Нафига вот это:
СчетДт = Новый СписокЗначений; СчетДт.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_); Че бы сразу не сделать: ЗапросЗатраты.УстановитьПараметр("СчетДт", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_); |
|||
42
Balabass
14.10.11
✎
11:38
|
(41)Потом мне скажут..А давай те как помимо 20 еще и 23 25 и 26 возьмем.
А я раз - и добавил их в Список. |
|||
43
Balabass
14.10.11
✎
11:43
|
(38)А как предлагаешь? Мне интересно как еще можно.
|
|||
44
байт
14.10.11
✎
12:04
|
(40) и в чем прикол?
|
|||
45
LLIaMaH
14.10.11
✎
12:08
|
(43) ну вот так. Хотя я наверно не так понял твою задачу. Смотря что тебе нада получить и из чего.
ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Счет, ХозрасчетныйОстаткиИОбороты.Субконто1 ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Нач, &Кон, , , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты |
|||
46
Balabass
14.10.11
✎
12:31
|
(45)А какая разница между
Из РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Нач, &Кон, , , Счет В ИЕРАРХИИ (&Счет), , ) и Из РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты Где Условия. ? Я не знаю - не особо прошеарен в запросах еще. |
|||
47
Balabass
14.10.11
✎
12:32
|
(44)Я не знал что значение типа булево можно проверять на истину не задавая условия.
|
|||
48
байт
14.10.11
✎
12:33
|
(30) а ты говоришь не будет)))
|
|||
49
izekia
14.10.11
✎
12:45
|
(48) проверил, действительно работает
|
|||
50
izekia
14.10.11
✎
12:46
|
(49) + как-то натыкался, что подобная конструкция не работала, с тех пор обычно писал через проверку на истину
|
|||
51
YF
14.10.11
✎
12:58
|
(46) Ты книжки читал про запросы и виртуальные таблицы 1С?
|
|||
52
YF
14.10.11
✎
13:01
|
+(51) Если не читал, то:
Виртуальная таблица - это запрос из одной или нескольких реальных таблиц, поэтому, когда ты обращаешься к виртуальной таблице сначала формируется этот запрос на формирование вирт. таблицы, а потом уже твой запрос сусловием ... Если условие на виртуальную таблицу наложить, то при ее формированиии в нее попадут записи уже отобранные по условию Если условие в запросе по ГДЕ, то виртуальная таблица сформируется полностью без отборов, а потом ты будешь из нее отбирать ... Второй вариант будет медленнее и жрать больше памяти ... |
|||
53
LLIaMaH
14.10.11
✎
13:42
|
+52 Вобщем если будеш сдавать на специалиста и напишешь запрос с ГДЕ, то тебя тут же выгонят, как мне объяснили сдававшие для них это красня тряпка :)
|
|||
54
Balabass
15.10.11
✎
01:13
|
(52)Понятно. Книжек еще не читал, но прикупил. Но ты объяснил доступно и понятно - за это спасибо тебе большое.
|
|||
55
Санта
15.10.11
✎
01:15
|
ХозрасчетныйДвиженияССубконто.Активность - достаточно так, параметр не нужен
|
|||
56
Balabass
15.10.11
✎
01:20
|
(52)Охренеть - сделал как ты посоветовал! Разобюрался с настройками виртуальной таблицы - ШИКАРНО!
Теперь запрос вместо 20 минут работает 2 секунды) Крутота!!! |
|||
57
Balabass
15.10.11
✎
01:21
|
(55)Этот момент уже разобрали
|
|||
58
Balabass
15.10.11
✎
01:21
|
(55) :)
|
|||
59
Пришел в тапках
15.10.11
✎
10:20
|
(56) Жестокий человек )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |