Имя: Пароль:
1C
1С v8
Помогите с запросом
0 Bodrug
 
01.11.17
15:32
Всем привет. Стоит задача получить остатки из регистра бухгалтерии за период на каждый день в этом периоде (даже, если остатка нет). Конфигурация - УПП для Украины. Подскажите, плиз, куда копать.
1 Ненавижу 1С
 
гуру
01.11.17
15:35
Регламентированный производственный календарь используй
2 Bodrug
 
01.11.17
15:38
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
    ХозрасчетныйОстаткиИОбороты.Период,
    ХозрасчетныйОстаткиИОбороты.Субконто1,
    ХозрасчетныйОстаткиИОбороты.Субконто2,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
    ХозрасчетныйОстаткиИОбороты.СуммаОборот
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, ДвиженияИГраницыПериода, Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты
        ПО (НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, ДЕНЬ) = НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ))
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
3 Bodrug
 
01.11.17
15:38
Пробовал таким образом, но выводятся остатки только на начальную дату и конечную дату периода
4 HEKPOH
 
01.11.17
15:41
потому как ВНУТРЕННЕЕ
5 Bodrug
 
01.11.17
15:42
(4) ЛЕВОЕ тоже не помогает
6 Bodrug
 
01.11.17
15:44
если указываю начало периода = 01.10.2017, конец периода = 31.10.2017, то выводятся остатки только за начальную и конечную дату. За все даты, что между ними, все поля - NULL
7 Волшебник
 
модератор
01.11.17
15:45
(6) Остаток на заданный день = СуммаНачальныйОстаток + Оборот накопленным итогом
8 Bodrug
 
01.11.17
15:48
А можно просто, чтобы каждая дата из таблицы, полученной из регл. произв. календаря передавалась параметром в запрос по регистру бухгалтерии? Только не циклом, а одним запросом.
9 Волшебник
 
модератор
01.11.17
15:49
(8) Так нельзя. И это было бы очень тормознуто.
10 Bodrug
 
01.11.17
15:50
(9)Ясно, спасибо.
11 Волшебник
 
модератор
01.11.17
15:50
12 vicof
 
01.11.17
15:50
(0) Вот вроде большой уже, а загуглить "остатки на каждый день" не можешь. Тема избита.
13 PiterPrg
 
01.11.17
15:59
(6) Если использовать СКД, то можно реализовать (7) там, используя ВЫЧИСЛИТЬВЫРАЖЕНИЕ()
14 Bodrug
 
01.11.17
16:04
(11) Спасибо большое! Буду пробовать :)
15 Ненавижу 1С
 
гуру
02.11.17
16:10
(9) это бы не было тормознуто, если бы виртуальные таблицы были реализованы в СУБД как хранимые процедуры
16 mistеr
 
02.11.17
16:44
(9) В СКД можно, через параметры связи.