Имя: Пароль:
1C
1С v8
Запрос в цикле по строкам документа - как правильно сделать?
0 Vladal
 
17.05.12
19:34
Посоветуйте, как лучше сделать.

Партионный учет не ведется, но есть учет в разрезе характеристик.
Есть документ прихода, в нём стопицот (1200) позиций номенклатуры, движение которых надо отследить.

По отдельной позиции всё просто:

ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Организация КАК Организация,
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ТоварыОрганизацийОстаткиИОбороты.Склад КАК Склад,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
           &НачПериода,
           &КонПериода,
           Регистратор,
           ,
           Номенклатура = &Номенклатура
               И СерияНоменклатуры = &СерияНоменклатуры) КАК ТоварыОрганизацийОстаткиИОбороты
ИТОГИ
   СУММА(КоличествоНачальныйОстаток),
   СУММА(КоличествоПриход),
   СУММА(КоличествоРасход),
   СУММА(КоличествоКонечныйОстаток)
ПО
   Склад,
   Номенклатура,
   Организация,
   ХарактеристикаНоменклатуры,
   Регистратор
АВТОУПОРЯДОЧИВАНИЕ


Лепить запрос в цикле по строкам документа нельзя - в каждой итерации будет дергаться скуль, это некошерно. А как сопоставить пару параметров Номенклатура+Характеристика, как они есть в строке документа, не представляю.

Подскажите, как это сделать?
1 Нуф-Нуф
 
17.05.12
19:38
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
           &НачПериода,
           &КонПериода,
           Регистратор,
           ,
           (Номенклатура, СерияНоменклатуры) В (Выбрать ТабЧастьДокумента.Номенклатура, ТабЧастьДокумента.СерияНоменклатуры из ТабЧастьДокумента))

где ТабЧастьДокумента - перварительно полученная временная таблица, содержащая табчасть документа
2 Vladal
 
17.05.12
19:41
(1) Временную таблицу в запрос поместить? Т.е. первая часть запроса формирует временную таблицу, а вторая уже делает выборку?
3 Нуф-Нуф
 
17.05.12
19:44
ВЫБРАТЬ
   ПеремещениеТоваровТовары.Номенклатура,
   ПеремещениеТоваровТовары.СерияНоменклатуры
ПОМЕСТИТЬ ТабЧастьДокумента
ИЗ
   Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ГДЕ
   ПеремещениеТоваровТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыОрганизацийОстаткиИОбороты.Организация КАК Организация,
   ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
   ТоварыОрганизацийОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   ТоварыОрганизацийОстаткиИОбороты.Склад КАК Склад,
   ТоварыОрганизацийОстаткиИОбороты.Регистратор КАК Регистратор,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
           &НачПериода,
           &КонПериода,
           Регистратор,
           ,
           (Номенклатура, СерияНоменклатуры) В
               (ВЫБРАТЬ
                   ТабЧастьДокумента.Номенклатура,
                   ТабЧастьДокумента.СерияНоменклатуры
               ИЗ
                   ТабЧастьДокумента)) КАК ТоварыОрганизацийОстаткиИОбороты
ИТОГИ
   СУММА(КоличествоНачальныйОстаток),
   СУММА(КоличествоПриход),
   СУММА(КоличествоРасход),
   СУММА(КоличествоКонечныйОстаток)
ПО
   Склад,
   Номенклатура,
   Организация,
   ХарактеристикаНоменклатуры,
   Регистратор
АВТОУПОРЯДОЧИВАНИЕ
4 Vladal
 
17.05.12
19:52
Вай, спасибо!

Не подскажешь, где доходчиво описано про временные таблицы?
5 Нуф-Нуф
 
17.05.12
19:55
про запросы хорошо рассказано в курсах гилева "профессиональное программирование". про фишку, что в конструкции В можно использовать больше одного поля увидел именно там
6 Vladal
 
17.05.12
20:03
У меня есть ПрофРазработка (807 с., вес 1,5 кг или больше).
Думал, там что-то написано. Для 8.0
7 Vladal
 
17.05.12
20:06
Раздам долги и наверно куплю курсы...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн