По теме из базы знаний
- Конфигурация Flowcon
- Неочевидные нюансы записи управляемой формы
- Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок
- Как читать чужой код? Часть 1. Общие вопросы. Доработка чужого кода. Code review
- Как читать чужой код? Часть 2. Доработка типовой конфигурации. Обновление доработанной типовой конфигурации
Найденные решения
(1)
Проверка любой ссылки на заполненность:
Проверка строки на заполненность:
Проверка даты:
Приведение к значению число:
с приведением, например строки к дате поступаем аналогичным образом и т.д.
Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
Проверка любой ссылки на заполненность:
СсылкаЗаполнена = НЕ Ссылка.Пустая();
Проверка строки на заполненность:
НеПустаяСТрока = НЕ ПустаяСтрока(" Абв г д а пп");
ПустаяСтрока = НЕ ПустаяСтрока(" ");
Проверка даты:
// Неправильно!
ДатаНеЗаполнена = ДатаРождения = '00010101';
// Правильно
ДатаНеЗаполнена = ДатаРождения = Дата(1,1,1);
Приведение к значению число:
// Неправильно!
ЧислоСтрокой = "1234";
Попытка
ЗначениеЧисла = Число(ЧислоСтрокой);
Исключение
ЗначениеЧисла = 0;
КонецПопытки;
// Правильно
ОписаниеЧисла = Новый ОписаниеТипов("Число");
ЗначениеЧисла = ОписаниеЧисла.ПривестиЗначение(ЧислоСтрокой);
Показатьс приведением, например строки к дате поступаем аналогичным образом и т.д.
Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Проверка любой ссылки на заполненность:
Проверка строки на заполненность:
Проверка даты:
Приведение к значению число:
с приведением, например строки к дате поступаем аналогичным образом и т.д.
Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
Проверка любой ссылки на заполненность:
СсылкаЗаполнена = НЕ Ссылка.Пустая();
Проверка строки на заполненность:
НеПустаяСТрока = НЕ ПустаяСтрока(" Абв г д а пп");
ПустаяСтрока = НЕ ПустаяСтрока(" ");
Проверка даты:
// Неправильно!
ДатаНеЗаполнена = ДатаРождения = '00010101';
// Правильно
ДатаНеЗаполнена = ДатаРождения = Дата(1,1,1);
Приведение к значению число:
// Неправильно!
ЧислоСтрокой = "1234";
Попытка
ЗначениеЧисла = Число(ЧислоСтрокой);
Исключение
ЗначениеЧисла = 0;
КонецПопытки;
// Правильно
ОписаниеЧисла = Новый ОписаниеТипов("Число");
ЗначениеЧисла = ОписаниеЧисла.ПривестиЗначение(ЧислоСтрокой);
Показатьс приведением, например строки к дате поступаем аналогичным образом и т.д.
Проверка числа это вообще самое простое что может быть Если Число <> 0 Тогда Число заполнено ;)
Для ОФ:
В модуле объекта, например, документа счет на оплату покупателю:
и дальше сама процедура проверки:
В модуле объекта, например, документа счет на оплату покупателю:
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ОБЕСПЕЧЕНИЯ ПРОВЕДЕНИЯ ДОКУМЕНТА
// Проверяет правильность заполнения шапки документа.
// Если какой-то из реквизитов шапки, влияющий на проведение не заполнен или
// заполнен не корректно, то выставляется флаг отказа в проведении.
// Проверяется также правильность заполнения реквизитов ссылочных полей документа.
// Проверка выполняется по объекту и по выборке из результата запроса по шапке.
//
// Параметры:
// СтруктураШапкиДокумента - выборка из результата запроса по шапке документа,
// Отказ - флаг отказа в проведении,
// Заголовок - строка, заголовок сообщения об ошибке проведения.
//
Процедура ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок)
// Укажем, что надо проверить:
СтруктураОбязательныхПолей =
Новый Структура("Организация, ВалютаДокумента, СтруктурнаяЕдиница,
|Контрагент "+?(ТипЗнч(Контрагент) = Тип("СправочникСсылка.Контрагенты"),", ДоговорКонтрагента","")+", КратностьВзаиморасчетов");
Показатьи дальше сама процедура проверки:
Процедура ПроверитьЗаполнениеШапкиДокумента(ДокументОбъект, СтруктураОбязательныхПолей, Отказ, Заголовок) Экспорт
//ПроверитьПринадлежностьКВидамУчета();
МетаданныеРеквизиты = ДокументОбъект.Метаданные().Реквизиты;
Для каждого КлючЗначение Из СтруктураОбязательныхПолей Цикл
Значение = ДокументОбъект[КлючЗначение.Ключ];
Если НЕ ЗначениеЗаполнено(Значение) Тогда
Если НЕ ЗначениеЗаполнено(КлючЗначение.Значение) Тогда
ПредставлениеРеквизита = МетаданныеРеквизиты[КлючЗначение.Ключ].Представление();
СтрокаСообщения = "Не заполнено значение реквизита """ + СокрЛП(ПредставлениеРеквизита) + """!";
Иначе
СтрокаСообщения = КлючЗначение.Значение;
КонецЕсли;
ОбщегоНазначения.СообщитьОбОшибке(СтрокаСообщения, Отказ, Заголовок);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот