Имя: Пароль:
1C
1С v8
C Новым годом! (или прыганье дат)
0 Profenixxx
 
29.12.16
11:02
ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Вт_Календарь.ДатаГрафика, ЧАС, ЧАС(ВложенныйЗапрос.ДатаСоздания)), МИНУТА, МИНУТА(ВложенныйЗапрос.ДатаСоздания)), СЕКУНДА, СЕКУНДА(ВложенныйЗапрос.ДатаСоздания))



Когда использую следующую конструкцию все хорошо добавляется хорошо в течении этого года, но как дней добавляется больше значения уходит в НУЛЛ, не подскажете с чем связанно? всех с наступающим!
1 shuhard
 
29.12.16
11:04
(0) это связано с отсутствием заполненного производственного календаря и графиков
2 Волшебник
 
модератор
29.12.16
11:04
(0) Пишется "в течение года"
3 Profenixxx
 
29.12.16
11:08
(1) Календарь заполнен
4 Мимохожий Однако
 
29.12.16
11:10
Проверь таблицу Вт_Календарь в консоли
5 shuhard
 
29.12.16
11:12
(3)и графиков
6 Profenixxx
 
29.12.16
11:17
(5)
ВЫБРАТЬ
    КалендарныеГрафики.ДатаГрафика,
    КалендарныеГрафики.КоличествоДнейВГрафикеСНачалаГода,
    КалендарныеГрафики.Год,
    КалендарныеГрафики.ДеньВключенВГрафик
ПОМЕСТИТЬ Вт_Календарь
ИЗ
    РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики
ГДЕ
    КалендарныеГрафики.Календарь.Наименование = "Производственный календарь"
;

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



Календарный графиг заполнен полностью на весь 2017 год, проблема не в нем.
7 Serg_1960
 
29.12.16
11:25
Может быть в том, что я в запросе добавлением могут получить дату "31 июня" :( есть такой фильм :)
8 shuhard
 
29.12.16
11:28
(7) добавлением не получишь
9 Serg_1960
 
29.12.16
11:28
(офф) Как я/Мы сложно мыслю/мыслим - аж даже в предложении раздвоение личности :))
10 catena
 
29.12.16
11:32
ПО (ГОД(ВложенныйЗапрос.ДатаСоздания) = Вт_Календарь.Год)
            И (ВложенныйЗапрос.КоличествоДнейВГрафикеСНачалаГода + ВложенныйЗапрос.ВремяРеагирования = Вт_Календарь.КоличествоДнейВГрафикеСНачалаГода)


Видимо ВложенныйЗапрос.КоличествоДнейВГрафикеСНачалаГода + ВложенныйЗапрос.ВремяРеагирования больше 365
11 Profenixxx
 
29.12.16
11:37
Решено влженном запросом на следующий год

ВЫБРАТЬ
    ВложенныйЗапрос.Запрос КАК Запрос,
    ВложенныйЗапрос.Услуга КАК Услуга,
    ВложенныйЗапрос.ПлановоеВремя КАК ПлановоеВремя,
    ВложенныйЗапрос.ДатаСоздания КАК ДатаСоздания,
    ВложенныйЗапрос.ВремяРеагирования КАК ВремяРеагирования,
    Вт_Календарь.КоличествоДнейВГрафикеСНачалаГода КАК КоличествоДнейВГрафикеСНачалаГода,
    МаксимальноеЧислоДнейГрВгоду.МаксКоличествоДнейВГодуИзГрафика КАК МаксКоличествоДнейВГодуИзГрафика,
    ВЫБОР
        КОГДА Вт_Календарь.КоличествоДнейВГрафикеСНачалаГода + ВложенныйЗапрос.ВремяРеагирования <= МаксимальноеЧислоДнейГрВгоду.МаксКоличествоДнейВГодуИзГрафика
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ВРамкахГода
ИЗ
    (ВЫБРАТЬ
        itilprofЗапросы.Ссылка КАК Запрос,
        &Услуга КАК Услуга,
        &ПлановоеВремяЗагрузкиСпециалиста КАК ПлановоеВремя,
        itilprofЗапросы.ДатаСоздания КАК ДатаСоздания,
        ВЫБОР
            КОГДА НЕ &Услуга ЕСТЬ NULL
                ТОГДА ВЫБОР
                        КОГДА НЕ &ПлановоеВремяЗагрузкиСпециалиста = 0
                            ТОГДА &ПлановоеВремяЗагрузкиСпециалиста
                        ИНАЧЕ 1
                    КОНЕЦ
            ИНАЧЕ 1
        КОНЕЦ КАК ВремяРеагирования
    ИЗ
        Документ.itilprofЗапросы КАК itilprofЗапросы
    ГДЕ
        itilprofЗапросы.Ссылка = &Ссылка) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ Вт_Календарь КАК Вт_Календарь
        ПО (ГОД(ВложенныйЗапрос.ДатаСоздания) = Вт_Календарь.Год)
            И (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоздания, ДЕНЬ) = Вт_Календарь.ДатаГрафика)
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(Вт_Календарь.КоличествоДнейВГрафикеСНачалаГода) КАК МаксКоличествоДнейВГодуИзГрафика,
            Вт_Календарь.Год КАК Год
        ИЗ
            Вт_Календарь КАК Вт_Календарь
        
        СГРУППИРОВАТЬ ПО
            Вт_Календарь.Год) КАК МаксимальноеЧислоДнейГрВгоду
        ПО (ГОД(ВложенныйЗапрос.ДатаСоздания) = МаксимальноеЧислоДнейГрВгоду.Год)
12 Serg_1960
 
29.12.16
11:57
(8) Твоя правда :( Моё сумеречное сознание :) Добавление к дате  учитывает даже високосные года.
13 shuhard
 
29.12.16
12:42
(12) завязывай с ноотропами =)