Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Контроль вводимых значений в поле ввода          
andrew76 Подменю пользователя
сообщение 02.03.15, 12:25
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Добрый день !

В каких событиях лучше написать обработчик контроля вводимых значений в поле ввода-"Окончание ввода текста" или "При изменении"?
Мне нужно ,чтобы в поле ввода не попадали пустые и некорректные значения.

Petre Подменю пользователя
сообщение 02.03.15, 12:46
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Для текстового реквизита все равно. Идеологически верно "ПриИзменении". "ОкончаниеВводаТекста" удобно тем, что текст уже передан в процедуру, и есть "СтандартнаяОбработка" (может быть удобным в зависимости от реализации алгоритма контроля).


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

andrew76 Подменю пользователя
сообщение 02.03.15, 14:54
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Цитата(Petre @ 02.03.15, 15:46) *
Для текстового реквизита все равно. Идеологически верно "ПриИзменении". "ОкончаниеВводаТекста" удобно тем, что текст уже передан в процедуру, и есть "СтандартнаяОбработка" (может быть удобным в зависимости от реализации алгоритма контроля).


Дело в том ,что на форме ввода данных присутствуют поля разных типов -есть и дата и числа и справочники
,"подвязанные" к полю ввода.Если скажем я пишу в обработчике события "ПриИзменении" следующий код:

Если Элемент.Значение <> Дата(1,1,1) тогда
       Предупреждение("Пустую дату вводить не разрешается !");
       Возрат;
КонецЕсли;


то получается следующее-при попытке ввода пустой даты выдается сообщение пользователю,что дата пустая,
а дальше можно перескочить на другой элемент управления-поле ввода ,расположенный выше/ниже на форме.
А мне это нежелательно,мне нужен такой вариант,что пока текущее (имеющее фокус ввода) поле ввода не будет правильно заполнено,то пользователь не имел бы возможности переходить на другие,соседние поля ввода.

Petre Подменю пользователя
сообщение 02.03.15, 15:07
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Оба рассматриваемых варианта не оставляют "фокус ввода". Но в обработчиках обоих событий можно этот "фокус" вернуть программно, присвоив текущему элементы формы нужный элемент (однако, не во всех релизах это работало, где-то уже обсуждали).
В любом случае, если поля представляют разные реквизиты, надо использовать "ПриИзменении".
Что касается приведенного кода, то предупреждение будет выведено, если дата не пустая.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

andrew76 Подменю пользователя
сообщение 02.03.15, 15:22
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 443
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43

Цитата(Petre @ 02.03.15, 18:07) *
Оба рассматриваемых варианта не оставляют "фокус ввода". Но в обработчиках обоих событий можно этот "фокус" вернуть программно, присвоив текущему элементы формы нужный элемент (однако, не во всех релизах это работало, где-то уже обсуждали).


Если можно по подробнее про-"Но в обработчиках обоих событий можно этот "фокус" вернуть программно, присвоив текущему элементы формы нужный элемент"

Petre Подменю пользователя
сообщение 02.03.15, 15:25
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Процедура Реквизит1ПриИзменении(Элемент)
    Если Не ПроверкаСодержанияРеквизита1() Тогда
        Сообщить("Ошибка!");
        ЭтаФорма.ТекущийЭлемент = Элемент;
    КонецЕсли;
КонецПроцедуры


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: andreykyiv@bigmir.net,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 31.05.24, 17:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!