Имя: Пароль:
1C
 
Проверка записей в регистре сведений на НачДата и КонДата в пределах часа.
0 falselight
 
11.11.19
14:03
Делается выборка из регистра сведений, где кроме прочих отборов есть поля НачДата и КонДата
Среди этих дат даты со временем с разницей на час. Переданные то есть в качестве параметров в запрос.
Как будет правильно условие в запросе?

РС.НачДата >= &НачДата и РС.КонДата <= &КонДата ?
1 falselight
 
11.11.19
14:40
кто силен в условиях?

Правильное ли условие на отбор записей в разрезе одного часа?

Процедура ПроверкаСуществующегоНаряда(Отказ)
    Если ЗначениеЗаполнено(МестоРабот) Тогда
        Запрос = Новый Запрос("
            |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
            |    УчетВыдачиНарядовДопусков.Регистратор.Дата  КАК РегистраторДата,
            |    УчетВыдачиНарядовДопусков.Регистратор.Номер КАК РегистраторНомер
            |ИЗ
            |    РегистрСведений.УчетВыдачиНарядовДопусков КАК УчетВыдачиНарядовДопусков
            |ГДЕ
            |    УчетВыдачиНарядовДопусков.Организация                  = &Организация
            |   И УчетВыдачиНарядовДопусков.Подразделение             = &Подразделение
            |    И УчетВыдачиНарядовДопусков.МестоПроведенияРабот      ПОДОБНО &МестоПроведенияРабот
            |    И УчетВыдачиНарядовДопусков.ДатаНачала                >= &ДатаНачала
            |    И УчетВыдачиНарядовДопусков.ДатаОкончания             <= &ДатаОкончания
            |    И УчетВыдачиНарядовДопусков.Регистратор               <> &Регистратор");
        Запрос.УстановитьПараметр("Организация",               Организация);
        Запрос.УстановитьПараметр("Подразделение",             СтруктурноеПодразделение);
        Запрос.УстановитьПараметр("МестоПроведенияРабот",      МестоРабот);
        Запрос.УстановитьПараметр("ДатаНачала",                НачалоРабот - 60 * 60);
        Запрос.УстановитьПараметр("ДатаОкончания",             ОкончаниеРабот);
        Запрос.УстановитьПараметр("Регистратор",               Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = 'Наряд-допуск на период %1 - %2 в данном месте проведения работ уже существует – документ
                        |%3 от %4'", ОбщегоНазначения.КодОсновногоЯзыка()),
                    НачалоРабот,
                    ОкончаниеРабот,
                    Выборка.РегистраторНомер,
                    Выборка.РегистраторДата);
            ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияОбОшибке,,,, Отказ);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Основная теорема систематики: Новые системы плодят новые проблемы.