Имя: Пароль:
1C
1C 7.7
v7: запрос выполняется не правильно. есть советы?
, ,
0 Ilya45
 
06.12.11
07:53
сделал запрос на выборку ТМЦ на складах в отдельной функции, и передаю в эту функцию список значений, который состоит из ТМЦ,(список добавлял так, СписокТМЦ.ДобавитьЗначение(ТМЦ);) и в запросе пишу

|условие (ТЦМ в СписокТМЦ);

запрос вообще выберет те ТМЦ которые есть в списке значений???
база самописная, регистр остатков.
1 Нуф-Нуф
 
06.12.11
07:54
да
2 Ilya45
 
06.12.11
07:54
запрос в конце выгружается в таблицуЗначений, и потом из нее делатеся выборка. потомуже спискуТМЦ, но почему-то не все ТМЦ в запрос попали
3 povar
 
06.12.11
07:54
телепатирую
СписокТМЦ.ДобавитьЗначение(ТМЦ.ТекущийЭлемент())
4 GROOVY
 
06.12.11
07:54
Это же условие... Значение фильтра, а не то что выбирается.
5 Ilya45
 
06.12.11
07:56
так если есть остаток по этому ТМЦ он же должен в любом случае попасть в выборку запроса, так ведь
6 Ilya45
 
06.12.11
08:00
условие говорит о том, что. в выборку запроса должны попасть те ТМЦ, которые оговорены условием, т.е. входят в список значений. а я уже после выгрузки в таблицу, делаю перебор спискаТМЦ, и таблица.найтизначение, и нифига не все находит почему-то (. вот как то так
7 Ilya45
 
06.12.11
08:06
может лучше не списокзнаений в условие передавать???что еще туда можно передать
8 Ilya45
 
06.12.11
08:08
(3) я тебя не понял. добавляется естественно текущийЭлемент(), так как выборка идет из группы
9 Evgenchik
 
06.12.11
08:09
(2)"почему-то не все ТМЦ в запрос попали" - ну значит не по всем ТМЦ есть остатки
10 Ilya45
 
06.12.11
08:11
вот именно что есть, я проверил
11 povar
 
06.12.11
08:12
ну тогда, пора уже показать текст запроса
12 Ilya45
 
06.12.11
08:13
если я сделаю функцию,
| Функция КонОстВсего = КонОст(Количество);

Это ведь будет общая сумма по всем складам, так ведь?
сейчас нарисую )))
13 1Сергей
 
06.12.11
08:14
(12) смотря что за группы и на каком уровне проверяешь.
И это. Список значений свой просмотреть не судьба?
14 Ilya45
 
06.12.11
08:16
запрос большой
//{{ЗАПРОС(Сформировать)
Без итогов;
Деталь = Регистр.ОстаткиДеталей.Деталь,Регистр.ОстаткиУзлов.Узел;
Маршрут = Регистр.ОстаткиДеталей.Маршрут,Регистр.ОстаткиУзлов.Маршрут;
Количество = Регистр.ОстаткиДеталей.Количество,Регистр.ОстаткиУзлов.Количество;
Функция КолВо1 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(1));
Функция КолВо2 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(2));
Функция КолВо3 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(3));
Функция КолВо4 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(4));
Функция КолВо5 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(5));
Функция КолВо6 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(6));
Функция КолВо7 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(7));
Функция КолВо8 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(8));
Функция КолВо9 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(9));
Функция КолВо10 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(10));
Функция КолВо11 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(11));
Функция КолВо12 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(12));
Функция КолВо13 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(13));
Функция КолВо14 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(14));
Функция КолВо15 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(15));
Функция КолВо16 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(16));
Функция КолВо17 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(17));
Функция КолВо18 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(18));
Функция КолВо19 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(19));
Функция КолВо20 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(20));
Функция КолВо21 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(21));
Функция КолВо22 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(22));
Функция КолВо23 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(23));
Функция КолВо24 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(24));
Функция КолВо25 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(25));
Функция КолВо26 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(26));
Функция КолВо27 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(27));
Функция КолВо28 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(28));
Функция КолВо29 = КонОст(Количество) когда (Маршрут = спзМарш.ПолучитьЗначение(29));
Функция КолВоЗаг = КонОст(Количество) Когда ((Маршрут = М12)или(Маршрут = М13)или(Маршрут = М16)или(Маршрут = М17)или(Маршрут = М18));
Функция КолВоМех = КонОст(Количество) Когда ((Маршрут = М21)или(Маршрут = М20)или(Маршрут = М4));
Функция КолВоДС2 = КонОст(Количество) Когда ((Маршрут = М31)или(Маршрут = М32)или(Маршрут = М33)или(Маршрут = М35)или(Маршрут = М36)или(Маршрут = М37)или(Маршрут = М38));
Функция КолВоЗСБ = КонОст(Количество) Когда ((Маршрут = М11)или(Маршрут = М15));
Функция КолВоМСБ = КонОст(Количество) Когда ((Маршрут = М22)или(Маршрут = М23)или(Маршрут = М24));
Группировка Деталь без групп;
Условие(Деталь в СписокДеталей);
15 Ilya45
 
06.12.11
08:17
Маршруты - склады, детали и узлы - ТМЦ, М11 М20.... это конкретные склады, что бы выбрать именно по ним суммарно
16 mishaPH
 
06.12.11
08:19
ну так у тебя еще условий куча. а в итог не попадает ТМЦ по которому нет остатков. точнее сумм функций
17 Ilya45
 
06.12.11
08:20
ТМЦ хранятся в одном справочнике, и делятся атрибутом, либо деталь либо узел(который является перечислением). и потом по разным регистрам бегают
18 1Сергей
 
06.12.11
08:21
(14) весь запрос в топку. Сделай группировку по Маршрутам и не мучайся
19 Ilya45
 
06.12.11
08:23
сейчас выведу всю таблицу которая получилась.и попробую с группировкой по маршрутам. чет я про нее забыл
2 + 2 = 3.9999999999999999999999999999999...