Имя: Пароль:
1C
1С v8
Помогите с запросом
,
0 Gangar
 
04.06.15
22:52
Доброго вечера, уважаемые!
Прошу помощи, т.к. запарился :(

Дано - документ с табличной частью, где можно для номенклатуры указать конкретную партию для списания.

Есть запрос который рассчитывает себестоимость списания.

Как быть, когда есть две строки с одинаковой номенклатурой, но в одной указана партия, а в другой нет.

Т.е. строка без партии может списать партию другой строки и в итоге получится кака.

Только запрос в цикле?
1 Gangar
 
04.06.15
23:07
не, никак?
2 MadHead
 
04.06.15
23:14
Списывать в 2 захода. Вначале с укаанными партиями, потом без указанных партий.
3 Gangar
 
04.06.15
23:16
(2) т.е. всё равно "запрос в цикле", но ограниченный количеством раз выполнения.
жаль :(
4 MadHead
 
04.06.15
23:16
Запрос в цыкле тут не нужен, я вообще крайне мало примеров знаю где запрос в цикле оправдан.
5 MadHead
 
04.06.15
23:18
(3) почему в цикле? 1 запрос вытянул все остатки по указанным партиям в таб части тут все просто списываем как есть. 2 запрос вытянул все партии по товарам без явно указанных партий после чего обходим 2 запрос и списываем нужные партии
6 MadHead
 
04.06.15
23:19
естественно и 1 и 2 запрос вытягивает партии с остатками
7 Gangar
 
04.06.15
23:24
(5) так, теперь подтупливаю с условием отбора. NULL не подходит.
8 фобка
 
04.06.15
23:27
Запрос в цикле - это нормально.
9 MadHead
 
04.06.15
23:28
(7) если составной тип у реквизита партия, то там может быть либо Неопределено либо пустая ссылка на допустимый тип. Перед записью документа пустые партии лучше заменить на неопределено, тогда будет однообразнее
10 Gangar
 
04.06.15
23:34
(9) точно, блин! Неопределено!
благодарочка!
11 Gangar
 
04.06.15
23:35
(8) о да. особенно, когда можно обойтись без цикла.
12 фобка
 
04.06.15
23:36
(11) когда у тебя 1-5 строк в документах то лучше может и циклом
13 Gangar
 
04.06.15
23:37
(12) к сожалению, строк от 100 и более
14 MadHead
 
04.06.15
23:41
(12) глупости. 1-5 строк при запросах в цикле в общем случае будет на том же уровне по производительности (разница будет не заметна). Быстрее можно рассчитать списание по партиям в 1 запрос, но там понадобиться расчет нарастающего итога в запрос, что на больших даннх завалит по памяти платформу.
15 marvak
 
04.06.15
23:51
(0)
Запрос по ТЧ, где Не пусто, приоритет 0, где пусто там приоритет 1, потом результат запроса обходить и анализировать