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