Имя: Пароль:
1C
 
СКД отчет на каждый день, если движений не было, пустые ячейки
0 ac13
 
17.02.17
17:11
Здравствуйте!
Есть много подобных тем с ответами и решениями, но того, что мне надо, не нашел.
Надо отчет на СКД на каждый день периода по взаиморасчетам с контрагентами. Если движений в этот день не было, то отчет должен показывать пустые ячейки. Т.е. показывать, что в этот день движений не было. Конфа УТ 10.3. Использовал производственный календарь и связывал с регистром накопления по периоду. Мне на каждый день выдает одно и то же значение. Как решить?
1 DrShad
 
17.02.17
17:13
роли и настройки периодов вам в помощь
2 ac13
 
17.02.17
17:21
что надо сделать? http://uploads.ru/ACTfW.png
3 ac13
 
17.02.17
17:28
Для какого поля нужно настроить роль и что делать с периодами?
4 ac13
 
17.02.17
17:28
У меня на каждый день выводит общую сумму за период
5 ac13
 
17.02.17
17:42
? :(
6 Фрэнки
 
17.02.17
18:31
странный запрос какой-то

поищи примеры скд отчетов по выводу из данных табелей, например. Или какую-то готовую чужую открой посмотри. Но запрос совсем совсем странный.
7 Фрэнки
 
17.02.17
18:33
http://catalog.mista.ru/public/125216/

например вот здесь посмотри для начала
8 ac13
 
20.02.17
08:57
(7) спасибо за пример, но мне он не подходит, потому что, если я формирую отчет с периодичностью - день, то если за день не было движений, то этот день в отчете вообще не выводит. а мне надо, чтобы если движений не было, то отчет выводил бы просто пустую колонку. я не нашел ни одного примера
9 DrZombi
 
гуру
20.02.17
09:03
(0) >>>> Если движений в этот день не было, то отчет должен показывать пустые ячейки.

Все просто, у вас должна быть Таблица с заполненными датами в качестве исходного массива данных, а все остальные должны к ней присоединяться :)
10 ac13
 
20.02.17
09:08
(9) да, я вот как сделал:

Первый набор данных, выборка каждого дня из производственного календаря:

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

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


Второй набор данных, выборка из регистра накопления с группировкой периода по дням:

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

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
    НАЧАЛОПЕРИОДА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ)


Связал два набора по периоду и настроил вывод таблицы по дням. Если за день движений не было, то день не выводит вообще. Что я сделал не так?
11 Mankubus
 
20.02.17
09:15
(10) Помести это все в один набор данных и делай соединения в нем
12 Фрэнки
 
20.02.17
09:21
(8) он прекрасно подходит, потому что там показаны именно способы работы со значениями периодов, чтобы они попадали в результаты запроса. И явно показана разница между кастрированным текстом запроса в твоем решении и тем, как в принципе возможно обращаться к значениям Период.
13 ac13
 
20.02.17
09:31
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход) КАК СуммаПриход
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НП, &КП, День, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
        ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НП И &КП

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
14 ac13
 
20.02.17
09:31
Не выводит пустые дни
15 ac13
 
20.02.17
09:34
(12) что там такого показано в том примере, кроме примера использования перечисления периодичность? мне он не нужен, так как в моем отчете всегда будут периодичность - день.

Период = НАЧАЛОПЕРИОДА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ)
16 ac13
 
20.02.17
09:36
у меня проблема в том, что я разными вариантами пробую связать регистр накопления с производственным календарем, т.е. в приоритете - календарь и потом к каждому его дню привязываю данные регистра накопления, но в отчете пустые дни не выводит
17 Фрэнки
 
20.02.17
09:41
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период

ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь

ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НП И &КП

////////////////////////////////////
А вот так что выводит?
18 Фрэнки
 
20.02.17
09:43
По моему, это тот самый широко озвучиваемый пример, что внутри СКД запроса для выборки, если установлена таблица ОстаткиИОбороты
использование периодичности День не даст корректный результат.
19 ac13
 
20.02.17
09:46
(17) если делать выборку только из производственного календаря, то выводит каждый день с пустыми значениями. когда я его связываю с регистром накопления, то выводит только дни, в которых были движения
20 ac13
 
20.02.17
09:51
Получилось, дело было не в запросе, не в периоде, а в отборе, который я устанавливал по контрагенту
21 ac13
 
20.02.17
09:52
так нельзя было делать, т.к. у календаря нет измерения Контрагент
22 Фрэнки
 
20.02.17
10:00
(21) забавно, что все-таки в платформе этот глючок был (с периодичностью ОстаткиИОбороты в СКД) - приходилось извращаться и на запрос по яндексу "можно в СКД получать ОстаткиИОбороты с периодичностью День" можно посмотреть, что обсуждение этой проблемы было ранее. Теперь уже не обсуждается. Значит уже работает периодичность.
23 ac13
 
20.02.17
10:01
(22) СПАСИБО!!