1С — Обязательное поле сделать необязательным, в зависимости от условия

Что бы сделать поле обязательным для заполнения, достаточно в свойствах реквизита выставить «Выдавать ошибку» для свойства «Проверка заполнения», а если нужно сделать, что бы поле не было обязательным, то у этого свойства нужно выставить «Не проверять».

А что, если для некоторых элементов, к примеру Справочника, нужно делать проверку заполнения, а для других элементов того же справочника проверку делать не нужно? Т.е. в зависимости от какого-либо условия делается проверка или не делается.

Пример.

Создаётся справочник товары, где будет два дополнительных реквизита:

  • ВидТовара, с типом Перечисления.ВидыТоваров. Соответственно нужно создать такое перечисление, где в качестве значений установим — Товар и Комплект.
  • КоличествоВКомплекте с типом Число. И сделаем поле обязательным для заполнения.

Соответственно необходимо делать проверку заполнения КоличествоВКомплекте только в том случае, если в качестве вида товара будет установлено Комплект.

Для этого необходимо зайти в Модуль объекта Справочника товары и написать следующий код:

Всё. Теперь, в случае если Вид товара установлен в значение Комплект, то проверка заполнения будет осуществляться, а если нет — то не будет.

Но этого мало. Надо же и на форме как то показать, что является поле обязательным или нет. Либо вообще скрыть поле КоличествоВКомплекте.

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

Соответственно, если нужно убрать элемент с формы, то снимаем комментарий с 4 строчки кода и ставим у двух последних, а если нужно убрать подчеркивание, то так и оставляем.