|   |   | 
| 
 | Пересечение (время выезда, время возврата) | ☑ | ||
|---|---|---|---|---|
| 0
    
        VSpicy naïve 18.05.20✎ 16:32 | 
        Добрый день!
 Есть таблица с полями: "Водитель", Автомобиль, ВремяНачало, ВремяКонец. Подскажите пожалуйста как мне поставить проверку, чтоб время не пересекалось??? У нас бывают часто случаи, пример на 17.05.2020: Иванов И.И. С135ММ197 08:30-17:30 и этот же водитель, но уже на другой машине 10:30-16:30 Нужно сделать так, чтобы исключить возможность сохранения документа, если у одного и того же водителя время начало и конца пересекалось. | |||
| 1
    
        Aleksey 18.05.20✎ 16:36 | ||||
| 2
    
        Широкий 18.05.20✎ 16:37 | 
        Пересчение: Начало<=Окончание1 И Окончание>=Начало1     | |||
| 3
    
        VSpicy naïve 18.05.20✎ 16:37 | 
        08:30-17:30 10:30-16:30   - ИСКЛЮЧИТЬ
 08:30-17:30 17:30-19:30 - НОРМАЛЬНО | |||
| 4
    
        VSpicy naïve 18.05.20✎ 16:39 | 
        (2) В моем случае только через запрос?     | |||
| 5
    
        Йохохо 18.05.20✎ 16:41 | 
        (4) что вводит юзер? ходку или дневной отчет по парку?     | |||
| 6
    
        Aleksey 18.05.20✎ 16:41 | 
        (4) аналогично     | |||
| 7
    
        VSpicy naïve 18.05.20✎ 16:44 | 
        (5) Это документ "разнарядка" - значит ходку     | |||
| 8
    
        Йохохо 18.05.20✎ 16:46 | 
        (7) я дам провести) два раза в месяц сверка с УРВ и ошибочные красненьким в отчет. реализаций мильярд     | |||
| 9
    
        VSpicy naïve 18.05.20✎ 16:49 | 
        Запрос = Новый Запрос;
 Запрос.УстановитьПараметр("ДатаНач", Разнарядка.ВремяНачала); Запрос.УстановитьПараметр("ДатаКон", Разнарядка.ВремяОкончания); Запрос.Текст = "ВЫБРАТЬ | Разнарядка.Водитель, | Разнарядка.ДатаНачала, | Разнарядка.ДатаОкончания |ИЗ | Документ.Разнарядка КАК СуточныйПлан |ГДЕ | &ДатаНач <= Разнарядка.ВремяОкончания | И &ДатаКон > = Разнарядка.ВремяНачала; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить("В интервал попадает отпуск сотрудника " + Выборка.Водитель); КонецЦикла; Примерно так? | |||
| 10
    
        VSpicy naïve 20.05.20✎ 14:48 | 
        (9) Не работает такая схема(     | |||
| 11
    
        МихаилМ 20.05.20✎ 15:13 | 
        почитайте темы на форуме про пересечение интервалов в запросе     | |||
| 12
    
        Злопчинский 20.05.20✎ 16:53 | 
        (7) потому что мудачно сделано.
 вместо визуальной карты, куда пользователь кладет/цепляет/тащит нужные интервалиы - ввод каких томутных цифр. | |||
| 13
    
        VSpicy naïve 25.05.20✎ 13:28 | 
        Вот этот запрос работает на 100%
 ВЫБРАТЬ уатРазнарядкаРазнарядка.Ссылка КАК Ссылка, уатРазнарядкаРазнарядка.Водитель КАК Водитель, уатРазнарядкаРазнарядка.НомерСтроки КАК НомерСтроки, уатРазнарядкаРазнарядка1.НомерСтроки КАК НомерСтроки1 ИЗ Документ.уатРазнарядка.Разнарядка КАК уатРазнарядкаРазнарядка ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.уатРазнарядка.Разнарядка КАК уатРазнарядкаРазнарядка1 ПО уатРазнарядкаРазнарядка.Ссылка = уатРазнарядкаРазнарядка1.Ссылка И уатРазнарядкаРазнарядка.Водитель = уатРазнарядкаРазнарядка1.Водитель И уатРазнарядкаРазнарядка.НомерСтроки <> уатРазнарядкаРазнарядка1.НомерСтроки И (уатРазнарядкаРазнарядка.ДатаВыезда <= уатРазнарядкаРазнарядка1.ДатаВыезда И уатРазнарядкаРазнарядка.ДатаВозвращения >= уатРазнарядкаРазнарядка1.ДатаВыезда ИЛИ уатРазнарядкаРазнарядка.ДатаВыезда <= уатРазнарядкаРазнарядка1.ДатаВозвращения И уатРазнарядкаРазнарядка.ДатаВозвращения >= уатРазнарядкаРазнарядка1.ДатаВозвращения ИЛИ уатРазнарядкаРазнарядка.ДатаВыезда <= уатРазнарядкаРазнарядка1.ДатаВыезда И уатРазнарядкаРазнарядка.ДатаВозвращения >= уатРазнарядкаРазнарядка1.ДатаВозвращения ИЛИ уатРазнарядкаРазнарядка.ДатаВыезда >= уатРазнарядкаРазнарядка1.ДатаВыезда И уатРазнарядкаРазнарядка.ДатаВозвращения <= уатРазнарядкаРазнарядка1.ДатаВозвращения) ГДЕ уатРазнарядкаРазнарядка.Ссылка = &ТекущийСП И уатРазнарядкаРазнарядка.Водитель <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |