helpf.pro
Регистрация

v8: Помогите, запрос в консоли работает, в модуле внешнего отчета нет

galitsyn
27.08.2018 16:19Прочитано: 2042

Очень простой запрос:

Код 1C v 8.2 УП
 

ЗапросСостояние = Новый Запрос();
ЗапросСостояние.Текст = "ВЫБРАТЬ
                        | СостояниеРаботниковОрганизаций.Сотрудник КАК Сотрудник,
                        | СостояниеРаботниковОрганизаций.Состояние КАК Состояние,
                        | СостояниеРаботниковОрганизаций.Период КАК Период,
                        | СостояниеРаботниковОрганизаций.ПериодЗавершения
                        |ИЗ
                        | РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
                        |ГДЕ
                        | СостояниеРаботниковОрганизаций.Период >=НачПериода
                        | И СостояниеРаботниковОрганизаций.Период <=КонПериода
                        | И СостояниеРаботниковОрганизаций.Сотрудник.ВидЗанятости =осн
                        | И СостояниеРаботниковОрганизаций.Сотрудник =сотрудник
                        |
                        |УПОРЯДОЧИТЬ ПО
                        | Сотрудник,
                        | Период";


ЗапросСостояние.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
ЗапросСостояние.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
ЗапросСостояние.УстановитьПараметр("осн", Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы);
ЗапросСостояние.УстановитьПараметр("сотрудник", Сотр);
РезультатЗапросаСостояние = ЗапросСостояние.Выполнить();
Состояние = РезультатЗапросаСостояние.Выбрать();
//****************************************************************************************

ДатНачЗаболевания = '00010101';
Пока Состояние.Следующий() Цикл
Если Состояние.Состояние = Перечисления.СостоянияРаботникаОрганизации.Работает  Тогда
Если  БольничныйНаНачПериода = 1 Тогда
квоДней=(НачалоДня(Состояние.Период)-НачалоДня(НачПериода))/86400;   //(60*60*24+1)   НачалоДня(ВыборкаБольн1.Период)
ДатНач = НачалоДня(НачПериода); //НачалоДня(ВыборкаБольн1.Период);
ДатКон = НачалоДня(Состояние.Период);
Иначе
квоДней=(НачалоДня(Состояние.Период)-НачалоДня(ДатНачЗаболевания))/86400;   //(60*60*24+1)   НачалоДня(ВыборкаБольн1.Период)
ДатНач = НачалоДня(ДатНачЗаболевания);
ДатКон = НачалоДня(Состояние.Период);
ДатНачЗаболевания = '00010101';
КонецЕсли;


и т.д.

В отладчике запросов все работает. В модуле внешнего отчета нет.

Yandex
Возможно, вас также заинтересует
Реклама на портале
АВП
27.08.2018 22:38Ответ № 1

Параметры в запросе выделяются амперсандом, что у вас нет. Ну и упростите Где по периоду

Код 1C v 8.3
 |ГДЕ
                        | СостояниеРаботниковОрганизаций.Период МЕЖДУНачПериода ИКонПериода
                        | И СостояниеРаботниковОрганизаций.Сотрудник.ВидЗанятости =осн
                        | И СостояниеРаботниковОрганизаций.Сотрудник =сотрудник
galitsyn
27.08.2018 22:50Ответ № 2

спасибо за совет, но амперсанд выпал при вставке, в реальном запросе он есть

АВП
28.08.2018 00:11Ответ № 3

Да. Понял, когда увидел свое сообщение. Не совсем понятно ДатНачЗаболевания = '00010101';

Если это пустая дата, то что выдаст  квоДней=(НачалоДня(Состояние.Период)-НачалоДня(ДатНачЗаболевания))/86400;?

Возможно здесь ошибка

Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.