Имя: Пароль:
1C
1С v8
Запрос по остаткам
0 scanduta
 
28.01.13
21:17
Есть ТЧ документа

Номенклатура       Дата1

Ручка         11.05.12

Фломастер      10.01.12


Есть регистр накопления(остатки).


Хочу сделать запрос чтобы на выходе получиласть таблица:


Номенклатура       Дата1            Остакок на дату (Дата1)

Ручка         11.05.12

Фломастер      10.01.12



Как лучше сделать? ... пока думаю
1 scanduta
 
28.01.13
21:17
Сделать хочу чтобы все получалось одним запросом
2 scanduta
 
28.01.13
21:19
Есть вариант рассчитать диапазон дат. (макс ,мин)  Выбрать остатки с этим диапазоном с переодичностью в день и соединить ? Есть варианты лучше?
3 DrShad
 
28.01.13
21:20
4 DrShad
 
28.01.13
21:21
(2) ты не поверишь, но есть
5 scanduta
 
28.01.13
21:25
(3) читаю и не вьезжаю нифига чем там лучше ... =) нужно время..=)
6 DrShad
 
28.01.13
21:27
(5) ничего страшного, если долго читать и несколько раз - приходит озарение :)))
7 scanduta
 
28.01.13
21:35
(6) буду разбираться...
8 scanduta
 
28.01.13
21:41
Так то если учесть что диапазон дат может быть большой, а количество строк в ТЧ буде почти всегда меньше 30 то тут мне кажется запрос в цикле (к вирт. таблице остатков)с указанием параметров для каждой строки будет быстрее работать..... надо тестировать..
9 DrShad
 
28.01.13
21:59
тестируй
10 ChAlex
 
28.01.13
22:13
СКД - минимальный путь для такого ежика, просто запросом - теоретически можно, но не лучший выход
11 ChAlex
 
28.01.13
22:14
+(10) И как минимум одним запросом не получить - в запрос не передать параметр , в отличии от СКД
12 DrShad
 
28.01.13
22:16
(11) т.е. в книге знаний все врут!? я так и знал, но ведь работает
13 ChAlex
 
28.01.13
22:19
(12) - ну так посмотрите на ту этажерку - мне даже влом вникать, ибо поставленную задачу можно на СКД получить за 5 минут без выноса мозга (+ ко всему не уверен, что в книге знаний именно рецепт на поставленный вопрос) :)
14 DrShad
 
28.01.13
22:21
(13) не уверен - не пиши, да и не все решается с помощью СКД, а жаль
15 Classic
 
28.01.13
22:24
ВЫБРАТЬ
   ТЧ.Номенклатура,
   ТЧ.Дата,
   ЕстьNULL(Остатки.КоличествоКонечныйОстаток, 0) КАК Остаток
ИЗ Документ.ХЗЧтоЗаДокумент.ТЧ КАК ТЧ
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НашРегистр.ОстаткиИОбороты(,,ДЕНЬ) КАК Остатки
  ПО ТЗ.Номенклатура = Остатки.Номенклатура
     И Остатки.Период В
     (
     ВЫБРАТЬ
          МАКСИМУМ(Остатки1.Период)
     ИЗ РегистрНакопления.НашРегистр.ОстаткиИОбороты(,,ДЕНЬ) КАК Остатки1
     ГДЕ Остатки1.Номенклатура = Остатки.Номенклатура
         И Остатки1.Период < ТЧ.Дата
     )
16 ChAlex
 
28.01.13
22:25
(14) - не все - это точно, но как минимум все что можно получить с помощью запросов
17 DrShad
 
28.01.13
22:28
(16) демонический список не хавает ВТ и скормить ему ТЗ не выходит
18 DrShad
 
28.01.13
22:29
+(17) а СКД еще и добавки просит
вот така куйня малята
19 scanduta
 
29.01.13
20:13
На СКД действительно решается довольно быстро данная задача. С помощью связей наборов данных и передачей между наборами дат в качестве параметра
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший