1CLenta.ru  

Встроенная и программная проверка заполнения реквизитов форм

Программирование системы     17.07.2017 09:15     25347

В 1С весь пользовательский интерфейс построен на формах. Для того чтобы наглядно в этом убедиться достаточно открыть любой документ или справочник. Формы создаются в режиме 1С:Конфигуратор. Для их создания необходимо обладать знаниями в области программирования 1С. Очень часто перед обработой данных с формы требуется выполнить проверку на заполненность обязательных полей. Это можно сделать несколькими способами.

Встроенные методы проверки заполнения


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

Свойство "Проверка заполнения" можно установить в двух местах:

1) В свойствах реквизита формы
Свойство проверка заполнения в реквизите формы

Свойство проверка заполнения в реквизите справочника

2) В свойствах реквизита объекта метаданных (справочника, документа и т.д)
Свойство проверка заполнения в реквизите справочника

Процедура ВыполнитьНажатие()

Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;

//...
//...
//...

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


Программная проверка заполнения


Встроенный язык программирования обладает всеми необходимыми возможностями для того чтобы написать проверку на заполненность полей формы. В основном, для проверки заполнения используется несколько функций. Для проверки ссылочных значений применяется встроенная функция Пустая(), которая вызывается непосредственно из ссылки. Для проверки строковых значений подходит функция ПустаяСтрока(<Строка>). Есть более универсальный метод ЗначениеЗаполнено(<Значение>), он проверяет заполненность значений любых типов. Информацию о том как работает та или иная функция можно найти в синтакс-помощнике.

Процедура ПроверитьЗаполнение()

//Проверка ссылочных знаечний
Если Номенкалтура.Пустая() Тогда
Сообщить("Номенлатура пустая ссылка");
КонецЕсли;

//Проверка строковых знаечний
Если ПустаяСтрока(Артикул) Тогда
Сообщить("Строка пустая");
КонецЕсли;

//Проверка с помощью функции ЗначениеЗаполнено()
//Булево значение всегда заполнено
//Строка не пустая, если в строке есть непробельные символы
//Массив или коллекция не пустая, если в них есть хотя бы 1 элемент
//Неопределено и Null это всегда пустые значения
Если НЕ ЗначениеЗаполнено(Номенкалтура) Тогда
Сообщить("Номенлатура пустая ссылка");
КонецЕсли;

Если НЕ ЗначениеЗаполнено(Артикул) Тогда
Сообщить("Строка пустая");
КонецЕсли;

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

Комментарии (0)