Имя: Пароль:
1C
1С v8
Запрос остатков за период на каждый месяц. Как оптимальнее?
0 Нуф-Нуф
 
17.07.12
12:22
УТ 11. Есть хитрый запрос по получению остатков по взаиморасчетам и по получению просроченной задолженности. задача получить эти данные на каждый месяц в году.

вижу несколько вариантов:
1. запрос в цикле (12 раз выполняется запрос)
2. соединение двух наборов данных в скд (при выполнении будет фактически теже 12 запросов к базе)
3. еще варианты?
1 Ненавижу 1С
 
гуру
17.07.12
12:24
(0) конечно же запрос в цикле, не иначе

ОстаткиИОбороты с периодичностью месяц не предлагать?
2 Азат
 
17.07.12
12:24
а по времени замер делал?
3 Cube
 
17.07.12
12:24
(0) Делай запрос в цикле, чо!))
4 Shurjk
 
17.07.12
12:28
Не ожидал такого вопроса от спеца который претендует на з/п в 150.
5 Нуф-Нуф
 
17.07.12
12:28
(1) запрос хитрый, переложение на использование остатков и оборотов по месяцам не реализуемо (покрайней мере на мой взгляд). оставлю этот вариант решения на последок (ибо решение пока не видится в принципе).

(2) еще нет. если бы сделал, вопрос тогда бы не задавал, а выбрал бы уже исходя из результатов. просто не хотелось время на тесты тратить. может кто чисто с методологической стороны скажет.
если нет - тогда все-таки потрачу
6 Shurjk
 
17.07.12
12:28
+(4) Особенно таких вариантов решения, по сабжу в поиск, в книге знаний есть статья по этому поводу.
7 Нуф-Нуф
 
17.07.12
12:29
(4) всего лишь на 140. предложи свой вариант. потешь свое самолюбие, унизь меня :)
8 Shurjk
 
17.07.12
12:30
(7) см (6) По поводу разворота остатков на каждую дату уже не раз здесь перетирали.
9 Cube
 
17.07.12
12:30
(7) Мой вариант - перепиши запрос!)
10 Ненавижу 1С
 
гуру
17.07.12
12:30
(7) охренеть
а по (4) - нормальный вопрос, просто не нужно все на веру принимать, нужно не стесняться
11 Ненавижу 1С
 
гуру
17.07.12
12:31
(5) а вдруг реализуемо?
12 Широкий
 
17.07.12
12:31
(17) Получи остатки на начало года и обороты с периодичностью в месяц  - и суммируй
13 Fragster
 
гуру
17.07.12
12:31
нда.
14 Shurjk
 
17.07.12
12:34
Примерно вот такой запрос для получения остатков на конец каждого месяца и оборотов за каждый месяц.

ВЫБРАТЬ
   "    Актив" КАК АктивПассив,
   "Оборотные активы" КАК ВидСредств,
   "Запасы" КАК Раздел,
   ВложенныйЗапрос.Поле1 КАК Период,
   ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Расшифровка,
   ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток КАК КонечныйОстаток,
   ВЫБОР
       КОГДА ВложенныйЗапрос.Поле1 = КОНЕЦПЕРИОДА(ПартииТоваровНаСкладахОстаткиИОбороты.Период, МЕСЯЦ)
           ТОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьОборот
       ИНАЧЕ 0
   КОНЕЦ КАК Дельта
ИЗ
   (ВЫБРАТЬ РАЗЛИЧНЫЕ
       КОНЕЦПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Поле1,
       ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
       МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.Период) КАК Период
   ИЗ
       РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь,
       РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Месяц, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
   ГДЕ
       РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
       И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= ПартииТоваровНаСкладахОстаткиИОбороты.Период
   
   СГРУППИРОВАТЬ ПО
       КОНЕЦПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ),
       ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Месяц, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
       ПО ВложенныйЗапрос.Период = ПартииТоваровНаСкладахОстаткиИОбороты.Период
           И (ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура)
15 Нуф-Нуф
 
17.07.12
12:35
(8) я с ними знаком :)

(11) неисключено. возможно стоить потратить время на это, чтобы сделать все красиво. но часовой штурм пока ничего не дал. именно поэтому решил посмотреть в сторону "циклов".

(12) не вариант, в силу задроченности текущего запроса
16 Нуф-Нуф
 
17.07.12
12:36
(14) улыбнуло, не надо уж совсем за дебила принимать :)
17 Ненавижу 1С
 
гуру
17.07.12
12:36
(15) выкатывай свой мега запросец
18 Fragster
 
гуру
17.07.12
12:36
нет бы денормализовать данные и сделать регистр с графиком платежей и его анализировать напрямую....
19 Shurjk
 
17.07.12
12:36
(16) По моему ты для этого в (0) все сделал.
20 Fragster
 
гуру
17.07.12
12:37
безо всяких "хитрых" запросов
21 Fragster
 
гуру
17.07.12
12:37
ну или не график платежей, а что там нужно автору
22 MadHead
 
17.07.12
12:38
Я делал подобное по статье из книги знаний где данные остатков и оборотов соединяются с календарем построенным запросом
23 Нуф-Нуф
 
17.07.12
12:39
(17) чуть позже вынесу в отдельную тему.

(19) утешай себя :)
24 Shurjk
 
17.07.12
12:39
(22) Для ТС это слишком просто, через цикл круче будет:)
25 MadHead
 
17.07.12
12:39
(22) Но если обработка одноразовая, то можно и запрос в цикле лупануть что бы время зря не тратить.
26 Shurjk
 
17.07.12
12:40
(23) Да мне то не холодно и не жарко. Хотя ты не первый которого я вижу  с такими притензиями по з/п и с такими вопросами.
27 Нуф-Нуф
 
17.07.12
12:44
(26) неее, ты получаешь от этого удовольствие :)
28 Shurjk
 
17.07.12
12:45
(27) Все так говорят.
29 Нуф-Нуф
 
17.07.12
13:05
(28) тогда плачешь, потому что "тупые" адинеснеги много зарабатывают.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.