Как описать проверку заполнения в коде?

1. G_112708749323588293243 18.05.21 12:33 Сейчас в теме
смотрел видео курс Чистова и он там описывал поверку заполнения для типа Дата. Ну с датой понятно, но есть ли подобный метод проверять заполнение для других типов данных, числа, строки и ссылки на другие объекты?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. sinichenko_alex 178 18.05.21 12:42 Сейчас в теме
(1)
Проверка любой ссылки на заполненность:

СсылкаЗаполнена = НЕ Ссылка.Пустая();


Проверка строки на заполненность:

НеПустаяСТрока = НЕ ПустаяСтрока(" Абв г д   а пп");
ПустаяСтрока = НЕ ПустаяСтрока("                   ");


Проверка даты:
   // Неправильно!
   ДатаНеЗаполнена = ДатаРождения = '00010101';

   // Правильно
   ДатаНеЗаполнена = ДатаРождения = Дата(1,1,1);


Приведение к значению число:


	// Неправильно!
	ЧислоСтрокой = "1234";
	
	Попытка
		ЗначениеЧисла = Число(ЧислоСтрокой);
	Исключение
		ЗначениеЧисла = 0;
	КонецПопытки;
	
	// Правильно
	ОписаниеЧисла = Новый ОписаниеТипов("Число");
	ЗначениеЧисла = ОписаниеЧисла.ПривестиЗначение(ЧислоСтрокой);

Показать


с приведением, например строки к дате поступаем аналогичным образом и т.д.

Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. sinichenko_alex 178 18.05.21 12:42 Сейчас в теме
(1)
Проверка любой ссылки на заполненность:

СсылкаЗаполнена = НЕ Ссылка.Пустая();


Проверка строки на заполненность:

НеПустаяСТрока = НЕ ПустаяСтрока(" Абв г д   а пп");
ПустаяСтрока = НЕ ПустаяСтрока("                   ");


Проверка даты:
   // Неправильно!
   ДатаНеЗаполнена = ДатаРождения = '00010101';

   // Правильно
   ДатаНеЗаполнена = ДатаРождения = Дата(1,1,1);


Приведение к значению число:


	// Неправильно!
	ЧислоСтрокой = "1234";
	
	Попытка
		ЗначениеЧисла = Число(ЧислоСтрокой);
	Исключение
		ЗначениеЧисла = 0;
	КонецПопытки;
	
	// Правильно
	ОписаниеЧисла = Новый ОписаниеТипов("Число");
	ЗначениеЧисла = ОписаниеЧисла.ПривестиЗначение(ЧислоСтрокой);

Показать


с приведением, например строки к дате поступаем аналогичным образом и т.д.

Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
7. nomad_irk 72 18.05.21 14:41 Сейчас в теме
(5)Достаточно просто сделать ЗначениеЗаполнено(Значение)
G_112708749323588293243; +1 Ответить
8. Артано 762 19.05.21 06:51 Сейчас в теме
(7) А если булево или мутабельное значение?
9. nomad_irk 72 19.05.21 07:47 Сейчас в теме
(8)Мутабельные - проверяются на Неопределено
Булево - конкретное значение
2. N0t_F0und 10 18.05.21 12:35 Сейчас в теме
В любой типовой конфигурации можно посмотреть
3. G_112708749323588293243 18.05.21 12:36 Сейчас в теме
В синтаксис помощнике имеете в виду?
4. N0t_F0und 10 18.05.21 12:37 Сейчас в теме
Для ОФ:
В модуле объекта, например, документа счет на оплату покупателю:
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ОБЕСПЕЧЕНИЯ ПРОВЕДЕНИЯ ДОКУМЕНТА

// Проверяет правильность заполнения шапки документа.
// Если какой-то из реквизитов шапки, влияющий на проведение не заполнен или
// заполнен не корректно, то выставляется флаг отказа в проведении.
// Проверяется также правильность заполнения реквизитов ссылочных полей документа.
// Проверка выполняется по объекту и по выборке из результата запроса по шапке.
//
// Параметры: 
//  СтруктураШапкиДокумента - выборка из результата запроса по шапке документа,
//  Отказ                   - флаг отказа в проведении,
//  Заголовок               - строка, заголовок сообщения об ошибке проведения.
//
Процедура ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок)

	// Укажем, что надо проверить:
	СтруктураОбязательныхПолей = 
	Новый Структура("Организация, ВалютаДокумента, СтруктурнаяЕдиница,
					|Контрагент "+?(ТипЗнч(Контрагент) = Тип("СправочникСсылка.Контрагенты"),", ДоговорКонтрагента","")+", КратностьВзаиморасчетов");
Показать


и дальше сама процедура проверки:

Процедура ПроверитьЗаполнениеШапкиДокумента(ДокументОбъект, СтруктураОбязательныхПолей, Отказ, Заголовок) Экспорт
	
	//ПроверитьПринадлежностьКВидамУчета();

	МетаданныеРеквизиты = ДокументОбъект.Метаданные().Реквизиты;
	
	Для каждого КлючЗначение Из СтруктураОбязательныхПолей Цикл

		Значение = ДокументОбъект[КлючЗначение.Ключ];
		Если НЕ ЗначениеЗаполнено(Значение) Тогда

			Если НЕ ЗначениеЗаполнено(КлючЗначение.Значение) Тогда
				ПредставлениеРеквизита = МетаданныеРеквизиты[КлючЗначение.Ключ].Представление();
				СтрокаСообщения = "Не заполнено значение реквизита """ + СокрЛП(ПредставлениеРеквизита) + """!";
			Иначе
				СтрокаСообщения = КлючЗначение.Значение;
			КонецЕсли;
			ОбщегоНазначения.СообщитьОбОшибке(СтрокаСообщения, Отказ, Заголовок);

		КонецЕсли;

	КонецЦикла;

КонецПроцедуры
Показать
G_112708749323588293243; +1 Ответить
6. ilnur75 18.05.21 14:34 Сейчас в теме
для УФ тоже актуально использовать метод ЗначениеЗаполнено()
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот