Очень простой запрос:
ЗапросСостояние = Новый Запрос(); ЗапросСостояние.Текст = "ВЫБРАТЬ | СостояниеРаботниковОрганизаций.Сотрудник КАК Сотрудник, | СостояниеРаботниковОрганизаций.Состояние КАК Состояние, | СостояниеРаботниковОрганизаций.Период КАК Период, | СостояниеРаботниковОрганизаций.ПериодЗавершения |ИЗ | РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций |ГДЕ | СостояниеРаботниковОрганизаций.Период >=НачПериода | И СостояниеРаботниковОрганизаций.Период <=КонПериода | И СостояниеРаботниковОрганизаций.Сотрудник.ВидЗанятости =осн | И СостояниеРаботниковОрганизаций.Сотрудник =сотрудник | |УПОРЯДОЧИТЬ ПО | Сотрудник, | Период"; ЗапросСостояние.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); ЗапросСостояние.УстановитьПараметр("НачПериода", НачалоДня(НачПериода)); ЗапросСостояние.УстановитьПараметр("осн", Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы); ЗапросСостояние.УстановитьПараметр("сотрудник", Сотр); РезультатЗапросаСостояние = ЗапросСостояние.Выполнить(); Состояние = РезультатЗапросаСостояние.Выбрать(); //**************************************************************************************** ДатНачЗаболевания = '00010101'; Пока Состояние.Следующий() Цикл Если Состояние.Состояние = Перечисления.СостоянияРаботникаОрганизации.Работает Тогда Если БольничныйНаНачПериода = 1 Тогда квоДней=(НачалоДня(Состояние.Период)-НачалоДня(НачПериода))/86400; //(60*60*24+1) НачалоДня(ВыборкаБольн1.Период) ДатНач = НачалоДня(НачПериода); //НачалоДня(ВыборкаБольн1.Период); ДатКон = НачалоДня(Состояние.Период); Иначе квоДней=(НачалоДня(Состояние.Период)-НачалоДня(ДатНачЗаболевания))/86400; //(60*60*24+1) НачалоДня(ВыборкаБольн1.Период) ДатНач = НачалоДня(ДатНачЗаболевания); ДатКон = НачалоДня(Состояние.Период); ДатНачЗаболевания = '00010101'; КонецЕсли;
и т.д.
В отладчике запросов все работает. В модуле внешнего отчета нет.
Параметры в запросе выделяются амперсандом, что у вас нет. Ну и упростите Где по периоду
|ГДЕ | СостояниеРаботниковОрганизаций.Период МЕЖДУНачПериода ИКонПериода | И СостояниеРаботниковОрганизаций.Сотрудник.ВидЗанятости =осн | И СостояниеРаботниковОрганизаций.Сотрудник =сотрудник
спасибо за совет, но амперсанд выпал при вставке, в реальном запросе он есть
Да. Понял, когда увидел свое сообщение. Не совсем понятно ДатНачЗаболевания = '00010101';
Если это пустая дата, то что выдаст квоДней=(НачалоДня(Состояние.Период)-НачалоДня(ДатНачЗаболевания))/86400;?
Возможно здесь ошибка