Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:45

Сравнение даты в 1С

Автор kadzik, 27 мая 2011, 00:26

0 Пользователей и 1 гость просматривают эту тему.

kadzik

Здравствуйте.
е пойму, в чем ошибка в коде процедуры 1С 8.2.
Процедура должна работать таким образом - при вводе данных в поле ДатаДоставки производится проверка на ее соответствие с текущей датой. Если ДатаДоставки меньше - выводится сообщение и в поле подставляется текущая дата (или запрещается проведение документа).

Мой код:

Перем ТекущаяДата;
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Дата1=Объект.ДатаДоставки;
Дата2= ТекущаяДата();
Если Дата1<Дата2 Тогда
ПоказатьОповещениеПользователя ("Нельзя указать прошедшую дату");
Объект.ДатаДоставки = ТекущаяДата();
Возврат;
КонецЕсли;

КонецПроцедуры

В результате документ просто записывается и проверки не происходит.
Как правильно написать?

Nail2010

Попробуй код сделать проще:

Процедура ДатаПриИзменении(Элемент)
Если Объект.Дата<ТекущаяДата() Тогда
Предупреждение ("Нельзя указать прошедшую дату");
Объект.Дата = ТекущаяДата();
КонецЕсли;
КонецПроцедуры


И на будущее - ВОЗВРАТ в процедуре не имеет смысла - он только для функции

Klyacksa

Ну почему же, Возврат и для процедуры имеет смысл.
Он прекращает ее выполнение, и возвращает выполнение в место, откуда была вызвана эта процедура.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

Как вариант...

Реквизит называется ДатаДоставки
а обработчик события - ДатаПриИзменении()...

Если создавать автоматом, то получилось бы
ДатаДоставкиПриИзменении()

Процедуру сами писали?
В качестве обработчика подключили?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Slin

Событие ПриИзменении срабатывает только в момент передачи фокус из соответсвующего элемента управления (перход на другой и т.п.). При проведении или  записи данное событие не возникает и, соответственно, не обрабатывается.
Для проверки в момент записи, обрабатывайте соответсвующее событие.
skype: slin-dev

cska-fanat-kz

2 Slin,
у него сказано так:
Цитировать"при вводе данных в поле ДатаДоставки производится проверка на ее соответствие с текущей датой"
при этом событие ПриИзменении срабатывает...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск