8.х Запрос с текстовым условием

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем nvartfox, 1 апр 2009.

  1. TopicStarter Overlay
    nvartfox
    Offline

    nvartfox

    Регистрация:
    1 апр 2009
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте коллеги !
    Я новичок в 1С но имею большой опыт программирования с использованием SQL, для реализации отчета в 1С:Зарпата и Кадры ред. 2.5 был создан следующий запрос :

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

    СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ПодразделениеОрганизации,
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидДоговора,
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидЗанятости

    Проблема в том,что колонка ВидДоговора, всегда возвращает 0,аналогично если я хочу отобрать информацию по данному запросу по явно заданному значению вида договора получаю тот же результат.

    В чем иожет быть причина ? Из знакомых никто не знает.
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Проблема тут:
    Код:
    СУММА(ВЫБОР
    КОГДА ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидДоговора = "Трудовой договор"
    ТОГДА ОсновныеНачисленияРаботниковОрганизаций.Результат
    ИНАЧЕ 0
    КОНЕЦ) КАК ВидДоговора
    
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидДоговора имеет тип Перечисление, а не строка (как у Вас). Поэтому условие должно выглядеть как:
    Код:
    КОГДА ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровСФизЛицами.ТрудовойДоговор)
    
    или
    Код:
    КОГДА ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.ВидДоговора = &НужныйВидДоговора
    
    В последнем случае нужно передать в запрос значение параметра "НужныйВидДоговора"
  3. TopicStarter Overlay
    nvartfox
    Offline

    nvartfox

    Регистрация:
    1 апр 2009
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Cпасибо большое, все получилось. Век живи век учись.

Поделиться этой страницей