1С 8.3 Проверка реквизита на заполнение (программно)
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:
Проверка на заполнение реквизитов формы реализовано на уровне платформы различными свойствами: АвтоОтметкаНезаполненного (подчеркивание не заполненного реквизита), в свойствах формы признак ПроверятьЗаполнениеАвтоматически, в свойствах реквизитов Проверка заполнения (выдавать ошибку). Однако часто, по разным причинам, необходимо выполнять программную проверку на заполнение элементов формы (реквизитов).
Проверка реквизита на заполнение на форме (&НаКлиенте) в 1С 8.3:
&НаКлиенте
Процедура ПримерыПроверкиЗаполнения(Команда)
Если НЕ ЗначениеЗаполнено(ВыборБанка) Тогда
Сообщить("Не выбран Банк для загрузки!");
Возврат;
КонецЕсли;
// Это для объектов. Для элементов форм см.ниже
КонецПроцедуры
Процедура ПримерыПроверкиЗаполнения(Команда)
Если НЕ ЗначениеЗаполнено(ВыборБанка) Тогда
Сообщить("Не выбран Банк для загрузки!");
Возврат;
КонецЕсли;
// Это для объектов. Для элементов форм см.ниже
КонецПроцедуры
Проверка реквизитов табличной части на заполнение на форме (&НаКлиенте) в 1С 8.3:
&НаКлиенте
Процедура Сформировать2(Команда)
Для Каждого СтрокаТЧ из ТабЧасть цикл
Если Не ЗначениеЗаполнено(СтрокаТЧ.Банк) Тогда
//Отказ=Истина; - если например процедура ПриЗаписи
сообщить("Не заполнен Банк в строке "+ СтрокаТЧ. номерстроки);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура Сформировать2(Команда)
Для Каждого СтрокаТЧ из ТабЧасть цикл
Если Не ЗначениеЗаполнено(СтрокаТЧ.Банк) Тогда
//Отказ=Истина; - если например процедура ПриЗаписи
сообщить("Не заполнен Банк в строке "+ СтрокаТЧ. номерстроки);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Проверка заполнения в табличной части при вводе строки в 1С 8.3:
Процедура ТабличнаяЧасть1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
//ЗначениеЗаполнено(Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока.Валюта) - не правильно
//будет ошибка "Проверка мутабельных значений на заполненность не поддерживается"
// Заполнение поля Валюта значением по умолчанию.
Если НоваяСтрока И Не Копирование Тогда
Если Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока.Валюта = Справочники.Валюты.ПустаяСсылка() Тогда
//ЗначениеЗаполнено(Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока.Валюта) - не правильно
//будет ошибка "Проверка мутабельных значений на заполненность не поддерживается"
// Заполнение поля Валюта значением по умолчанию.
Если НоваяСтрока И Не Копирование Тогда
Если Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока.Валюта = Справочники.Валюты.ПустаяСсылка() Тогда
Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока.Валюта = ЭтоОсновнаяВалюта;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Проверка заполнения на форме до выполнения основных процедур в 1С 8.3:
&НаКлиенте
Процедура Сформировать(Команда) // До создания документов и вызова процедур
// Можно использовать для проверки элементов форм (реквизитов)
// В свойствах реквизита должна быть установлена Проверка заполнения = Выдавать ошибку
Если Не ПроверитьЗаполнение() Тогда // Вызов проверки
Возврат;
Иначе
// Заполнен
// Продолжение выполнения кода...
КонецЕсли;
КонецПроцедуры
Процедура Сформировать(Команда) // До создания документов и вызова процедур
// Можно использовать для проверки элементов форм (реквизитов)
// В свойствах реквизита должна быть установлена Проверка заполнения = Выдавать ошибку
Если Не ПроверитьЗаполнение() Тогда // Вызов проверки
Возврат;
Иначе
// Заполнен
// Продолжение выполнения кода...
КонецЕсли;
КонецПроцедуры
1
комментарий
Алексей
15 окт 2023
Не работает это на клиенте в текущем релизе!
Нужно реквизит формы с клиента на сервер передавать чтобы проверить заполненность!
Нужно реквизит формы с клиента на сервер передавать чтобы проверить заполненность!
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник