Имя: Пароль:
1C
1С v8
СКД. Вывод в колонки всех дат за месяц и выделение цветом колонок "выходной"
0 xamass
 
09.09.15
09:34
Добрый день.
Необходимо вывести обслуживание за месяц по ответственным лицам, при этом надо окрасить колонки выходных (по производственному календарю) целиком.

Пробовал двумя разными методами
1. Из этой ссылки (Остатки на каждый день периода (даже если не было движений)) http://1c-wiki.ru/wiki/Ежедневные_остатки

2. Одним запросом с левым соединением  

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


Но вывод корректно не получается.
Если даже и выводятся все числа месяца, то закрашивание фона происходит только в ячейках, где было обслуживание, соответственно колонка "выходного" не вся залита единым фоном.

Что нужно сделать, что бы колонка была залита единым фоном полностью???
1 bootini
 
09.09.15
10:00
(0)Условное оформление на колонку применить, а не на строки.
2 xamass
 
09.09.15
10:05
(1) Пробовал, окрашивается только шапка колонки, сама колонка при этом не окрашивается.
При условном оформлении на весь отчет происходит окраска шапки полностью, а в остальном столбце только те ячейки, где выведено какое либо значение.
3 xamass
 
09.09.15
11:01
Вот как выводит, при том что 5 и 6 сентября выходные
http://s018.radikal.ru/i502/1509/2f/b3b1b20e2931.jpg
4 bootini
 
09.09.15
11:38
(2) Выбрать в строки поле "выходной", но отключить его вывод, и условное оформление на строки.