|   |   | 
| 
 | Как осуществить проверку даты. Нужна помощь | ☑ | ||
|---|---|---|---|---|
| 0
    
        skorp3585 21.04.20✎ 23:42 | 
        Подскажите кто знает как сделать проверку свободной даты. Происходит запись человека на дату, как сделать чтобы при записи на эту же дату происходила ошибка или чтобы при записи на эту дату пропадала услуга которая уже занята в эту дату?     | |||
| 1
    
        Lex_Liven 21.04.20✎ 23:45 | 
        Если НачалоДня(Дата) = НачалоДня(ВтораяДата) Тогда
 А дальше делай что хочешь. | |||
| 2
    
        novichok79 21.04.20✎ 23:47 | 
        Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | 1 КАК Поле1 |ИЗ | РегистрСведений.ЖурналЗаписей КАК Т |ГДЕ | Т.ДатаЗаписи = &ДатаЗаписи | И Т.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("ДатаЗаписи", ДатаЗаписи); Запрос.УстановитьПараметр("Сотрудник", Сотрудник); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ВызватьИсключение СтрШаблон(НСтр("ru='Сотрудник %1 уже записан на дату %2'"), Сотрудник, ДатаЗаписи); КонецЕсли; | |||
| 3
    
        Lex_Liven 21.04.20✎ 23:48 | 
        (2) НАЧАЛОПЕРИОДА(Т.ДатаЗаписи,ДЕНЬ) = НАЧАЛОПЕРИОДА(&ДатаЗаписи,ДЕНЬ)
 тогда уж... | |||
| 4
    
        novichok79 21.04.20✎ 23:49 | 
        (2) я думаю смысл понятен.     | |||
| 5
    
        novichok79 21.04.20✎ 23:49 | 
        (3) а кто сказал что датазаписи типа датавремя?     | |||
| 6
    
        Lex_Liven 21.04.20✎ 23:50 | 
        (5) А никто не сказал ничего. Но если там не ДатаВремя, то мой код не сломается, а вот если ДатаВремя - то ваш не сработает.     | |||
| 7
    
        novichok79 21.04.20✎ 23:51 | 
        (6) вы правы, приведение к началу дня делать надо, у вас в запросе, но можно и в параметре. в общем, пускай молодой падаван учится.     | |||
| 8
    
        Lex_Liven 21.04.20✎ 23:52 | 
        (7) В запросе - потому что запись в регистре теоретически тоже может быть не на начало дня.     | |||
| 9
    
        novichok79 21.04.20✎ 23:54 | 
        (8) зависит от структуры метаданных, а ТС не сообщил о ней ничего.     | |||
| 10
    
        Lex_Liven 21.04.20✎ 23:55 | 
        (9) Так именно поэтому я и даю максимально универсальный вариант согласно «ТЗ».     | |||
| 11
    
        novichok79 21.04.20✎ 23:55 | 
        (10) и это замечательно )))     | |||
| 12
    
        skorp3585 23.04.20✎ 09:12 | 
        (2) За код спасибо, попробую. Ещё говорят есть способ через Регистр сведений, может кто подскажет как это осуществить?     | |||
| 13
    
        fisher 23.04.20✎ 09:16 | 
        (12) Если сделать зависимый периодический регистр сведений (движения которого пишутся документом) с периодичностью до дня, то попытка записи другим документом на ту же дату по той же комбинации измерений приведет к ошибке (уникальность данных по комбинациям измерений и периоду контролируется платформой).     | |||
| 14
    
        fisher 23.04.20✎ 09:22 | 
        Ну а попытка записи таких "дублей" одним набором приведет к ошибке и в независимом регистре сведений. Просто если разными наборами писать, то в независимом регистре сведений данные просто перепишутся поверх. А в зависимом регистре сведений данные можно менять только с отбором по регистратору и поэтому выдаст ошибку.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |