Имя: Пароль:
1C
 
1С 8.3 СКД: Отобразить время действия документа
0 Darhon
 
25.01.16
16:31
Добрый день! Подскажите, есть следующая проблема: В отчет на скд запросом формируются колонки по дням месяца от 1 до 31 числа, в строки выбираются документы. У них есть поля ДатаДокумента и срок нужно чтобы на пересечении строки и колонки с числом, которая попадает в нужный диапозон выводился, например + .... никак не додуматься как это сделать... ( Заранее спасибо и вот код:

ВЫБРАТЬ
    ВложенныйЗапрос.Даты КАК Даты,
    ВЫБОР
        КОГДА ВложенныйЗапрос.Даты >= НАЧАЛОПЕРИОДА(задача.Дата, ДЕНЬ)
                И ВложенныйЗапрос.Даты <= КОНЕЦПЕРИОДА(задача.Срок, ДЕНЬ)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК Точка,
    задача.Ссылка,
    задача.Дата,
    задача.Срок
ИЗ
    (ВЫБРАТЬ
        таб.Даты КАК Даты
    ИЗ
        (ВЫБРАТЬ
            НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ) КАК Даты
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 1)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 2)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 3)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 4)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 5)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 6)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 7)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 8)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 9)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 10)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 11)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 12)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 13)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 14)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 15)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 16)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 17)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 18)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 19)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 20)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 21)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 22)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 23)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 24)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 25)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 26)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 27)
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ВЫБОР
                КОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 28) > КОНЕЦПЕРИОДА(&дат1, МЕСЯЦ)
                    ТОГДА ДАТАВРЕМЯ(1, 1, 1)
                ИНАЧЕ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 28)
            КОНЕЦ
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ВЫБОР
                КОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 29) > КОНЕЦПЕРИОДА(&дат1, МЕСЯЦ)
                    ТОГДА ДАТАВРЕМЯ(1, 1, 1)
                ИНАЧЕ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 29)
            КОНЕЦ
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            ВЫБОР
                КОГДА ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 30) > КОНЕЦПЕРИОДА(&дат1, МЕСЯЦ)
                    ТОГДА ДАТАВРЕМЯ(1, 1, 1)
                ИНАЧЕ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&дат1, МЕСЯЦ), ДЕНЬ, 30)
            КОНЕЦ) КАК таб
    ГДЕ
        таб.Даты <> ДАТАВРЕМЯ(1, 1, 1)) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Задача КАК задача
        ПО (НАЧАЛОПЕРИОДА(задача.Дата, ДЕНЬ) = ВложенныйЗапрос.Даты)

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Даты,
    задача.Ссылка,
    ВЫБОР
        КОГДА ВложенныйЗапрос.Даты >= НАЧАЛОПЕРИОДА(задача.Дата, ДЕНЬ)
                И ВложенныйЗапрос.Даты <= КОНЕЦПЕРИОДА(задача.Срок, ДЕНЬ)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ

УПОРЯДОЧИТЬ ПО
    Даты
1 Nuobu
 
25.01.16
16:34
(0) В условном оформлении выбери отбор "Заказ.Ссылка" Заполнено.
А в самом оформлении Текст = "+"
2 Darhon
 
25.01.16
16:35
(1) Не появляется ничего. На пересечении строк и колонок вообще ничего не выводится((
3 Darhon
 
25.01.16
16:39
(1) Так и сделано. Запрос выводит значение 1 на дату документа, а дальше ничего не делает.