Вход | Регистрация


Сделать ввод даты не позже текущей

Сделать ввод даты не позже текущей
Я
   RomaH
 
09.10.17 - 10:43
Поле типа дата
известно, что если ввести только день - то в дату запишется день текущего месяца и года

как красиво сделать, что бы при вводе дня вводилась дата по тому же принципу, но не позже текущей даты
т.е.
- месяц
или
- год
 
 
   Fedor-1971
 
1 - 09.10.17 - 10:46
(0) ПриИзменении проверь дату введённую дату на соотношение с текущей и исправь как нужно
   RomaH
 
2 - 10.10.17 - 07:15
(1) не правильно
получается, что даже если пользователь ввел полную дату - т.е. не пользовался автодополнением - то я ему эту дату поменяю на месяц раньше

надо именно автодополнить правильно

т.е. ввел 18 - получил 18.09.2017 (сегодня 10.10.2017)
ввел 1810 - получил 18.10.2016
181017 - 18.10.2017
   ildary
 
3 - 10.10.17 - 07:20
(2) начнем с вопроса - а у нас есть способ отличить дату, введённую руками полностью от даты дополненной?
   PuhUfa
 
4 - 10.10.17 - 07:22
(2) текстовое поле с маской ввода "под дату", ну и дальше уже извращайся как хочешь
   Fedor-1971
 
5 - 10.10.17 - 09:09
(2) В АвтоПодбор у поля дата сохраняй в локальную переменную введённую строку, в ОкончаниеВводаТекста - обработай её, стандартный параметр "Текст" тебе не поможет, там уже сработала система
(4) геморно
   Serg_1960
 
6 - 10.10.17 - 09:20
После изменения проверил дату. Если больше н.в. - минус месяц, проверил ещё раз. Не угадал? Минус год.
   Serg_1960
 
7 - 10.10.17 - 09:24
Ооо... я проснулся :) А задача то - не так проста, как кажется. Интересная задача. Вопросом "А зачем?".
   Mort
 
8 - 10.10.17 - 09:46
В фирме работают 1000 и все они ежедневно по 100 раз вводят эту дату. Другой причины не вижу.
   RomaH
 
9 - 10.10.17 - 09:48
(7) операторы привыкли пользоваться автодополнением - набивают только первые цифры в дате
документы приходят с задержкой 2-10 дней
числа с 10 до конца месяца - все красиво
а вот с 1 до 10 - много ошибок при таком вводе получается
   RomaH
 
10 - 10.10.17 - 09:49
(8) ну 5 сотрудников ежедневно по ... 1000 раз
 
 Рекламное место пустует
   Mort
 
11 - 10.10.17 - 09:50
(10) тогда лучше пусть совсем не вводят дату.
   RomaH
 
12 - 10.10.17 - 09:55
(11) это как это?
   Fedor-1971
 
13 - 10.10.17 - 09:56
(12) то что в (5) попробовал?
   Mort
 
14 - 10.10.17 - 09:58
(12) да так, если пользователю приходиться сто раз в день делать одно и то же, значит архитектура кривая. Или наоборот, прямая как топор. Придумай как.
   Fedor-1971
 
15 - 10.10.17 - 10:08
(14) не факт, что архитектура кривая.
У пользователя стопка перемешанных документов с датами, например, накладные от 20/09 по 08/10 - и дата обязательна. Автоматизировать автодополнение по внутренним правилам имеет смысл, только надо определиться для отчётов автодополнение останется стандартным или нет, поскольку глобально вставить пальцы в системную функцию не представляется возможным.
   RomaH
 
16 - 10.10.17 - 10:13
(13) вроде как подходит
   RomaH
 
17 - 10.10.17 - 10:15
только саму дату я правильно понял - устанавливать сразу в значение?

&НаКлиенте
Процедура ОплатаДатаВыполненияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
    //СтандартнаяОбработка = Ложь;

    Элементы.Оплата.ТекущиеДанные.ДатаВыполнения = '20171002';
КонецПроцедуры
   Fedor-1971
 
18 - 10.10.17 - 10:18
(17) Наверно, Текст можно исправить и оставить стандартную обработку
   lopus
 
19 - 10.10.17 - 10:20
Процедура ДатаЗнчОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Год = Прав(Текст,4);
Месяц = Сред(Текст,4,2);
День = Лев(Текст,2);
ДатаПроверяемая = Дата(Год,Месяц,День);
    Если ТекущаяДата() < ДатаПроверяемая Тогда
        Значение = ДобавитьМесяц(ДатаПроверяемая,-1);
    Иначе
        Значение = ДатаПроверяемая;
    КонецЕсли; 
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
Если для обычных форм
   Fedor-1971
 
20 - 10.10.17 - 10:28
(19) ты не прочитал (2), пользователь может ввести полную дату больше текущей и это приемлемо, автодополнение срабатывает только когда ввели часть даты

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует