13.10.2010
Когда платформа проверяет заполненность реквизитов при записи, она, в случае ошибки, выводит сообщение, привязанное к тому реквизиту формы, который не заполнен (см. рис.). Как мне вывести такое же сообщение, если в моей обработке введены неправильные данные?
Для вывода таких сообщений разработчики могут использовать объект встроенного языка СообщениеПользователю. Такой объект можно создать конструктором и для того, чтобы указать поле, возле которого выводится сообщение, нужно правильно заполнить его свойство Поле.
Например, есть обработка, форма которой содержит реквизит Комментарий:
В некоторый момент нужно проверить, заполнено это поле или нет. Если поле не заполнено - выдать сообщение.
Для этого в форме обработки можно использовать такой код:
Копировать в буфер обменаЕсли СокрЛП(Комментарий) = "" Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Поле = "Комментарий"; Сообщение.Текст = "Нужно написать комментарий."; Сообщение.Сообщить(); КонецЕсли;
Здесь в свойстве Поле указывается имя реквизита формы. В результате выведенное сообщение будет привязано к тому элементу формы, который связан с этим реквизитом формы:
Аналогичным образом можно привязать сообщение и к любой ячейке таблицы, расположенной в форме. В этом случае кроме имени реквизита, содержащего таблицу, необходимо будет указать индекс нужной строки в таблице и имя колонки таблицы. Например, так:
Копировать в буфер обменаМаксимальныйИндекс = Таблица.Количество() - 1; Для Индекс = 0 По МаксимальныйИндекс Цикл Если Таблица[Индекс].Количество = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Поле = "Таблица[" + Индекс + "].Количество"; Сообщение.Текст = "Нужно указать количество."; Сообщение.Сообщить(); КонецЕсли; КонецЦикла;
В результате сообщение будет привязано именно к той ячейке колонки Количество, в которой содержится значение 0: