Управляемая форма. Проверить заполнен ли реквизит
По теме из базы знаний
- Создаем универсальный механизм отбора и сортировки для управляемых форм
- Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов
- Как сдать экзамен 1С:Специалист по платформе?
- Неочевидные нюансы записи управляемой формы
- Обзор полезных методов БСП 3.1.4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Допустим есть реквизит формы с типом СправочникСсылка.Номенклатура.
Проверка на клиенте будет выглядеть так.
Но это все равно серверный вызов. Так что это все равно что написать:
Проверка на клиенте будет выглядеть так.
Если Реквизит3 = ПредопределенноеЗначение("Справочники.Номенклатура.ПустаяСсылка()") Тогда
Но это все равно серверный вызов. Так что это все равно что написать:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Реквизит3 = ПроверитьРеквизит() Тогда
//Значит значение не заполнено
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьРеквизит()
Возврат Справочники.Номенклатура.ПустаяСсылка();
КонецФункции
Показать
(7) Захаров_Николай,
Функция ПроверитьЗаполненныеРеквизиты()
Отказ = Ложь;
ТекущаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница.Имя;
ЭлементыСтраницы = Элементы[ТекущаяСтраница].ПодчиненныеЭлементы;
Для Каждого ПодчиненныйЭлемент Из ЭлементыСтраницы Цикл
Если ТипЗнч(ПодчиненныйЭлемент) <> Тип("ПолеФормы") Тогда
Продолжить;
КонецЕсли;
Если Не ПодчиненныйЭлемент.АвтоОтметкаНезаполненного Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
Возврат Отказ;
КонецФункции
Показать
Не знаю для каких целей подобное может понадобиться.
Но если создать процедуру на сервере, можно сделать так:
Это к вопросу о проверке на пустое значение.
Но если создать процедуру на сервере, можно сделать так:
Для Каждого ПодчиненныйЭлемент Из ЭлементыСтраницы Цикл
Если ЭтаФорма[ПодчиненныйЭлемент.ПутьКДанным] = Справочники.Номенклатура.ПустаяСсылка() Тогда
Это к вопросу о проверке на пустое значение.
Глобальный контекст (Global context)
ЗначениеЗаполнено (ValueIsFilled)
Синтаксис:
ЗначениеЗаполнено(<Значение>)
Параметры:
<Значение> (обязательный)
Тип: Произвольный.
Значение для проверки.
Возвращаемое значение:
Тип: Булево.
Для значений типа Булево всегда возвращается Истина.
Для значений типа Строка возвращается Истина, если в строке есть непробельные символы.
Для массивов и коллекций возвращается Истина, если в них есть хотя бы 1 элемент.
Для Неопределено и Null всегда возвращается Ложь.
Описание:
Функция проверяет, отличается ли переданное значение от значения по умолчанию того же типа.
Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:
Источники данных не проверяются, значение считается заполненным всегда.
ЗначениеЗаполнено (ValueIsFilled)
Синтаксис:
ЗначениеЗаполнено(<Значение>)
Параметры:
<Значение> (обязательный)
Тип: Произвольный.
Значение для проверки.
Возвращаемое значение:
Тип: Булево.
Для значений типа Булево всегда возвращается Истина.
Для значений типа Строка возвращается Истина, если в строке есть непробельные символы.
Для массивов и коллекций возвращается Истина, если в них есть хотя бы 1 элемент.
Для Неопределено и Null всегда возвращается Ложь.
Описание:
Функция проверяет, отличается ли переданное значение от значения по умолчанию того же типа.
Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:
Источники данных не проверяются, значение считается заполненным всегда.
Ошибка: Проверка мутабельных значений на заполненность не поддерживается.
Неверный код (обращение к мутабельным элементам формы):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Элементы.Агент) Тогда
Элементы.Контрагент.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////
Верный код (обращение к реквизитам объекта):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.Агент.Пустая() Тогда
Элементы.Контрагент.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
Неверный код (обращение к мутабельным элементам формы):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Элементы.Агент) Тогда
Элементы.Контрагент.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////
Верный код (обращение к реквизитам объекта):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.Агент.Пустая() Тогда
Элементы.Контрагент.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот