Имя: Пароль:
1C
 
Начальный остаток на каждый день СКД
0 YAGolova
 
30.09.16
12:31
ДД знатоки СКД. Подскажите кто знает, не могу сообразить. Есть таблица по номенклатуре на каждый день из периода с показателями начальный остаток, приход, расход, конечный остаток. Надо как то описать ресурс СКД по начальному и конечному остатку - сумма явно нет - ведь надо брать остаток на начало периода. Загвоздка в том, что пользователь в колонках отчета может произвольный период указать и тогда надо будет остаток правильно в каждой колонке показать.
1 YAGolova
 
30.09.16
12:59
не ужели никто не делал ведомость по товарам в разрезе по дням...
2 KSergey1C
 
30.09.16
13:03
Простой вопрос как ты выведешь 100 номенклатур за 50 дней?

Вов ложенной иерархии или колонки столбцы?
3 Nuobu
 
30.09.16
13:03
Чем стандартный отчет не подошел?
4 YAGolova
 
30.09.16
13:21
(3) Стандартный для какой конфы? У нас самописка
5 YAGolova
 
30.09.16
13:22
(2) не понял вопроса. В отчете должна быть группировка строк по номенклатуре, в колонках периоды
6 KSergey1C
 
30.09.16
13:27
(5) 50 столбцов? И кто с этим будет работать?
7 YAGolova
 
30.09.16
13:30
(6) Будут. А вообще как раз для этого там должен быть произвольный период - сначала свернули за год, потом за месяц, неделю и уже день
8 KSergey1C
 
30.09.16
13:30
Вот пример запроса:

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ втДни
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачПер И &КонПер

СГРУППИРОВАТЬ ПО
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДанныйНоменклатуры.Номенклатура,
    втДанныйНоменклатуры.Склад
ПОМЕСТИТЬ втВсяНоменклатура
ИЗ
    втДанныйНоменклатуры КАК втДанныйНоменклатуры

СГРУППИРОВАТЬ ПО
    втДанныйНоменклатуры.Номенклатура,
    втДанныйНоменклатуры.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втВсяНоменклатура.Номенклатура,
    втВсяНоменклатура.Склад,
    втДни.ДатаКалендаря
ПОМЕСТИТЬ втОбъединение
ИЗ
    втДни КАК втДни,
    втВсяНоменклатура КАК втВсяНоменклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    взРезультат.Номенклатура КАК Номенклатура,
    взРезультат.Склад КАК Склад,
    взРезультат.День КАК День,
    взРезультат.КолвоОстатки
ИЗ
    (ВЫБРАТЬ
        взМаксДеньОстатков.Номенклатура КАК Номенклатура,
        взМаксДеньОстатков.Склад КАК Склад,
        взМаксДеньОстатков.ДатаКалендаря КАК День,
        ЕСТЬNULL(втДанныйНоменклатуры.КоличествоКонечныйОстаток, 0) КАК КолвоОстатки
    ИЗ
        (ВЫБРАТЬ
            втОбъединение.Номенклатура КАК Номенклатура,
            втОбъединение.Склад КАК Склад,
            МАКСИМУМ(ЕСТЬNULL(втДанныйНоменклатуры.Период, ДАТАВРЕМЯ(1, 1, 1))) КАК День,
            втОбъединение.ДатаКалендаря КАК ДатаКалендаря
        ИЗ
            втОбъединение КАК втОбъединение
                ЛЕВОЕ СОЕДИНЕНИЕ втДанныйНоменклатуры КАК втДанныйНоменклатуры
                ПО втОбъединение.Номенклатура = втДанныйНоменклатуры.Номенклатура
                    И втОбъединение.Склад = втДанныйНоменклатуры.Склад
                    И втОбъединение.ДатаКалендаря >= втДанныйНоменклатуры.Период
        
        СГРУППИРОВАТЬ ПО
            втОбъединение.Номенклатура,
            втОбъединение.Склад,
            втОбъединение.ДатаКалендаря) КАК взМаксДеньОстатков
            ЛЕВОЕ СОЕДИНЕНИЕ втДанныйНоменклатуры КАК втДанныйНоменклатуры
            ПО взМаксДеньОстатков.Номенклатура = втДанныйНоменклатуры.Номенклатура
                И взМаксДеньОстатков.Склад = втДанныйНоменклатуры.Склад
                И взМаксДеньОстатков.День = втДанныйНоменклатуры.Период) КАК взРезультат

УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Склад,
    День
9 YAGolova
 
30.09.16
13:34
(8) В самом запросе у меня проблем нет - мне бы подсказать как ресурс настроить
10 vyaz
 
30.09.16
13:35
(0) оставляешь сумму, в поля СКД выбираешь ОБЯЗАТЕЛЬНО период секунда, в ролях ставишь его первым
11 vyaz
 
30.09.16
13:38
(10) + верней вторым :) первым номер строки
12 Tatitutu
 
30.09.16
13:51
(0) Вот так ?

https://yadi.sk/i/2-C_DYcmvw7sq
13 xaozai
 
30.09.16
13:53
(0) На инфостарте стопицот статей на тему остатков на каждый день в разных вариациях.
14 xaozai
 
30.09.16
13:55
15 Fragster
 
гуру
30.09.16
14:02
если сделать выборку всех полей из ОстаткиИОбороты, с периодичностью АВТО, ничего не трогая указать в ресурсах сумму по всем ресурсам (нач и кон остаток), затем на вкладке настройки у группировки по период день указать дополнение "день", то все получится. извращения с соединениями с таблицами дат и т.п. - не нуджы
16 YAGolova
 
30.09.16
14:54
(12) Да, так
17 YAGolova
 
30.09.16
14:55
(14) Я уже сказал, что с построение запроса у меня проблем нет. Проблема с ресурсами СКД
18 YAGolova
 
30.09.16
14:56
(15) Попробую конечно, но на самом деле там задача куда сложнее и боюсь такой вариант мне не подойдет
19 YFedor
 
30.09.16
14:57
(17) Период в полях запроса есть, тогда в настройках вывод добавляешь таблицу, в колонках период с дополнением день
20 YAGolova
 
30.09.16
15:06
Вообщем если роли расставить то все гуд: у периода - роль период, а у ресурсов соответственно начальный и конечный остаток. Всем спасибо!