Имя: Пароль:
1C
1С v8
Запрос по норме дней
0 Tanis
 
20.03.13
14:57
Помогите, пожалуйста с запросом.
Нашел запрос, для получения нормы дней и часов, но он ничего не выбирает. :-(

   ЗапросНорм = Новый Запрос;
   ЗапросНорм.Текст =
   "ВЫБРАТЬ
   |    НАЧАЛОПЕРИОДА(Норма.ДатаКалендаря, МЕСЯЦ) КАК ПериодДействия,
   |    СотрудникиОрганизаций.Ссылка КАК Сотрудник,
   |    СотрудникиОрганизаций.ОбособленноеПодразделение КАК Организация,
   |    СУММА(ВЫБОР
   |            КОГДА Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
   |                        И Норма.ДатаКалендаря <= СотрудникиОрганизаций.ДатаУвольнения
   |                    ИЛИ Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
   |                        И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |                ТОГДА Норма.НормаВЧасах
   |            ИНАЧЕ 0
   |        КОНЕЦ) КАК НормаЧасов,
   |    СУММА(ВЫБОР
   |            КОГДА Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
   |                        И Норма.ДатаКалендаря <= СотрудникиОрганизаций.ДатаУвольнения
   |                    ИЛИ Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
   |                        И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |                ТОГДА Норма.НормаВДнях
   |            ИНАЧЕ 0
   |        КОНЕЦ) КАК НормаДней
   |ИЗ
   |    (ВЫБРАТЬ
   |        СУММА(ВЫБОР
   |                КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
   |                    ТОГДА 8
   |                ИНАЧЕ ВЫБОР
   |                        КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
   |                            ТОГДА 7
   |                        ИНАЧЕ 0
   |                    КОНЕЦ
   |            КОНЕЦ) КАК НормаВЧасах,
   |        Норма.ДатаКалендаря КАК ДатаКалендаря,
   |        ВЫБОР
   |            КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
   |                ТОГДА 1
   |            ИНАЧЕ ВЫБОР
   |                    КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
   |                        ТОГДА 1
   |                    ИНАЧЕ 0
   |                КОНЕЦ
   |        КОНЕЦ КАК НормаВДнях
   |    ИЗ
   |        РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Норма
   |    ГДЕ
   |        Норма.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
   |    
   |    СГРУППИРОВАТЬ ПО
   |        Норма.ДатаКалендаря,
   |        ВЫБОР
   |            КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
   |                ТОГДА 1
   |            ИНАЧЕ ВЫБОР
   |                    КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
   |                        ТОГДА 1
   |                    ИНАЧЕ 0
   |                КОНЕЦ
   |        КОНЕЦ) КАК Норма,
   |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
   |
   |СГРУППИРОВАТЬ ПО
   |    НАЧАЛОПЕРИОДА(Норма.ДатаКалендаря, МЕСЯЦ),
   |    СотрудникиОрганизаций.Ссылка,
   |    СотрудникиОрганизаций.ОбособленноеПодразделение";
   ЗапросНорм.УстановитьПараметр("КонецПериода", СтрокаДокумента.БазовыйПериодКонец);
   ЗапросНорм.УстановитьПараметр("НачалоПериода", СтрокаДокумента.БазовыйПериодНачало);
1 mistеr
 
20.03.13
15:05
Тебе для пятидневки только?
И конфу с ыерсией укажи.
2 mistеr
 
20.03.13
15:06
*версией
3 Tanis
 
20.03.13
15:11
Зарплата и Управление Персоналом, редакция 2.5 (2.5.61.1)

Да, для пятидневки.

Или как еще можно выбрать?
4 Tanis
 
20.03.13
15:15
Вообще странно.
В запросе даже параметра сотрудника нет...
Пробовал ставить, все равно пустая таблица.
5 Tanis
 
20.03.13
15:28
так в чем может быть проблема?
6 mistеr
 
20.03.13
15:40
(5) Наверное в том, что запрос - фигня

ВЫБРАТЬ
   СУММА(ГрафикиРаботыПоВидамВремени.ОсновноеЗначение) КАК ОсновноеЗначение,
   СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК ДополнительноеЗначение
ИЗ
   РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
ГДЕ
   ГрафикиРаботыПоВидамВремени.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Месяц, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Месяц, МЕСЯЦ)
   И ГрафикиРаботыПоВидамВремени.ГрафикРаботы = &ГрафикРаботы
   И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = &ВидУчетаВремени
7 Tanis
 
20.03.13
16:16
сейчас попробую. Отвлекли...
8 Tanis
 
02.04.13
20:56
Этот запрос тоже не работает. Точнее он из консоли работает, а когда в процедуре, то нет.
9 Tanis
 
02.04.13
21:01
почему- то значение null
10 Tanis
 
02.04.13
21:05
ЗапросНорм = Новый Запрос;
   ЗапросНорм.Текст =
   "ВЫБРАТЬ
   |    СУММА(ГрафикиРаботыПоВидамВремени.ОсновноеЗначение) КАК Дни,
   |    СУММА(ГрафикиРаботыПоВидамВремени.ДополнительноеЗначение) КАК Часы
   |ИЗ
   |    РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботыПоВидамВремени
   |ГДЕ
   |    ГрафикиРаботыПоВидамВремени.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Месяц, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Месяц, МЕСЯЦ)
   |    И ГрафикиРаботыПоВидамВремени.ГрафикРаботы = &ГрафикРаботы
   |    И ГрафикиРаботыПоВидамВремени.ВидУчетаВремени = &ВидУчетаВремени";
   ЗапросНорм.УстановитьПараметр("Месяц", СтрокаДокумента.БазовыйПериодКонец);
   ЗапросНорм.УстановитьПараметр("ГрафикРаботы", Сотрудник.ГрафикРаботы);
   ЗапросНорм.УстановитьПараметр("ВидУчетаВремени", Сотрудник.ВидРасчета);
   
   
   Результат = ЗапросНорм.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
11 Tanis
 
03.04.13
12:56
Подскажите, где исправить? Запрос или параметры не так цепляются?
12 Tanis
 
03.04.13
13:07
Подскажите, откуда берется NULL?
13 Tanis
 
03.04.13
13:29
Скажите что и где исправить? Запрос очень нужен...
14 Tanis
 
03.04.13
13:51
Почему не работает из процедуры?
15 Tanis
 
03.04.13
14:04
мысли есть какие-нибудь?
16 Tanis
 
03.04.13
14:09
нашел ошибку.