|
v7: Запрос с участием Позиции документа. | ☑ | ||
---|---|---|---|---|
0
__Se24
25.12.13
✎
12:37
|
Доброго дня , господа Гуру. Может кто сталкивался с такой ситуацией.
Была задумана система заказа товара из филиала в филиал. Регистр + 2 документа (установка и снятие). все тривиально. Основной заморочкой было то что , необходимо в документе снятия отображать то что сделал документ установка, а движения данного документа не учитывались. Был написан маленький запрос , где в качестве аргументов "Период С ТекДок По ТекДок" была указана такая комбинация: ТекДок=СформироватьПозициюДокумента(ТекущийДокумент(),-1); но при этом , функция КонОст по ресурсу все равно возвращает данные, которые внес в регистр этот документ. Путем перебора удалось выяснить , что если заменить на "Период С НачДата По ТекДок", где НачДата , какая-либо дата , например минус год , то запрос отрабатывает правильно, но долго. В чем, собственно, ошибка , при указании конкретной позиции ? |
|||
1
1Сергей
25.12.13
✎
12:45
|
запрос выбирает остатки или обороты?
и ваще - мало кода |
|||
2
__Se24
25.12.13
✎
12:54
|
Запрос выбирает остатки. "КонОст" же ..
Код могу привести, но мне кажется тут загвоздка не в самом коде , а в какой-то непонятно интерпретации периода, задаваемого в запросе, самой 1С .. |
|||
3
__Se24
25.12.13
✎
12:57
|
ТекДок=СформироватьПозициюДокумента(ВыбПодтверждениеЗаявки,-1);
Зп=СоздатьОбъект("Запрос"); ТкЗп=" |Период С НачДата По ТекДок; //|Период С ТекДок По ТекДок; |Без Итогов; |ДокЗ = Регистр.ЗаказыФилиалов.Заявка; |Товар = Регистр.ЗаказыФилиалов.Товар; |Колво = Регистр.ЗаказыФилиалов.Количество; //|Докум = Регистр.ЗаказыФилиалов.ТекущийДокумент; | |Функция Сумма = КонОст(Колво); |Условие (ДокЗ = ВыбПодтверждениеЗаявки.ЗаказФилиала); |Группировка Товар Без Групп; //|Группировка Докум; |"; |
|||
4
dk
25.12.13
✎
13:06
|
а движения по измерению заявка сама заявка делает или другой документ?
|
|||
5
1Сергей
25.12.13
✎
13:07
|
т.е. у тебя Запрос по конечным остаткам при разных значения НачДата выполняется по разному долго?
|
|||
6
КонецЦикла
25.12.13
✎
13:08
|
так у тебя есть измерение заявка? фильтр по ней, выгрузка итогов и все.
|
|||
7
1Сергей
25.12.13
✎
13:10
|
я вобще бы без запроса сделал. Тут, как раз, тот случай, когда без запроса получится быстрее
|
|||
8
1Сергей
25.12.13
✎
13:14
|
или делай через начальные остатки
|
|||
9
__Se24
25.12.13
✎
13:38
|
(4) Есть заявка и подтверждение заявки , Заявка может быть не одна , в таком случае создается что-то вроди цепочки , и в измерение записывается "головная"
|
|||
10
__Se24
25.12.13
✎
13:39
|
(5) Да , именно так. Если ТекДок-ТекДок, то быстро , но не правильно ... Если 01.01.2012-Текдок , то правильно , но долго !
|
|||
11
__Se24
25.12.13
✎
13:41
|
(6) Тут вопрос не столько в реализации этой задачи , понятно . что решить ее можно по-разному, хотелось бы разобраться с самой ситуацией , почему так происходит , и как делать это правильно в будущем
|
|||
12
__Se24
25.12.13
✎
13:41
|
(7) без запроса не получится ... там документов может много быть ...
|
|||
13
__Se24
25.12.13
✎
13:43
|
(8) Ага , попробую , спасибо
Но все ж хотелось бы понять , почем КонОст снимая остаток на "предыдущий" документ захватывает и этот. |
|||
14
1Сергей
25.12.13
✎
13:44
|
(12) какая разница? .Остатки( .СводныеОстатки(
|
|||
15
__Se24
25.12.13
✎
13:46
|
(14) А в чем разница между этим и запросом ?
|
|||
16
1Сергей
25.12.13
✎
13:50
|
(15) в запросе можно понаворочистее сделать. Условия, группировки там. Но, у тебя простое условие, простая группировка
|
|||
17
__Se24
25.12.13
✎
13:55
|
(16) Хм .. как я написал выше , мне важнее разобраться с причиной , почему так происходит , может я где-то допустил кардинальную ошибку в самой задумке , нежели решить конкретно эту задачу. Собственно, как вы и предложили "НачОст" сработал как нужно ))
|
|||
18
__Se24
25.12.13
✎
13:56
|
в 7-ке есть механизм работы с позициями документов , но внятного описания я так нигде не нашел.
|
|||
19
dk
25.12.13
✎
13:57
|
разбери на конкретном примере
заявка № ... от .... все движения по измерению заявка = ... док1 дата время + 5 док2 дата время - 3 док3 дата время + 1 .... |
|||
20
1Сергей
25.12.13
✎
14:00
|
(17) лично я всегда старался избегать работать с позициями документов. Возможно, это ахиллесова пята семерки
|
|||
21
__Se24
25.12.13
✎
14:02
|
(19) в желтой книжечке написано "можно выполнять сравнение позиций" но они не сравниваются :(
|
|||
22
__Se24
25.12.13
✎
14:03
|
(20) Да , механизм хороший , жаль , работать с ним неудобно и непонятно как ...
|
|||
23
КонецЦикла
25.12.13
✎
14:05
|
мне бы и в голову не пришло делать это запросом
|
|||
24
__Se24
25.12.13
✎
14:07
|
(23) а я люблю запросы, в случае когда руководству вдруг приходит "свежая" идея , и нужно быстренько что-то исправить , они легче поддаются доработкам :)
|
|||
25
1Сергей
25.12.13
✎
14:21
|
(24) переходи на новый уровень - прямые запросы. Черные запросы - так, баловство
|
|||
26
varelchik
25.12.13
✎
14:39
|
+(25) +100.
|
|||
27
__Se24
25.12.13
✎
14:48
|
(25) (26) Командование запрещает использовать внешние компоненты )) так бы уже давно ))
|
|||
28
varelchik
25.12.13
✎
15:23
|
(27) тупое значит командование.
|
|||
29
__Se24
25.12.13
✎
17:54
|
(28) Это называется "ксенофобия" ))
|
|||
30
acanta
25.12.13
✎
18:55
|
А как эти документы разнесены по времени? установка и снятие? Позиции работали в 7ке так же как дата время в 8ке стало..
|
|||
31
acanta
25.12.13
✎
18:59
|
вариант период с текдок без по и начОст.
|
|||
32
GreyK
25.12.13
✎
19:02
|
(0) Поставь условие на исключение движений сделанных текущим документом.
А вообще есть "принцип подчиненности документов", его стоит соблюдать всегда. |
|||
33
__Se24
25.12.13
✎
19:17
|
(32) Увы , когда руководство задает рамки , не всегда есть возможность их обходить ...
За совет спасибо )) но с "позицией" все ж непонятно ... |
|||
34
GreyK
25.12.13
✎
19:36
|
(33) В качестве значений параметров запроса "Период с" и "По" может выступать документ.
Как у вас попадали в запрос ограниченный позицией одного документа другие движения я не знаю, вроде по ЖКК ничего другого туда попасть не должно... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |