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


Здесь мы имеем основной "зверопарк" реквизитов, около которых нужно выводить сообщения как здесь:

Для вывода в обработчике обновления используем вариант кода:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ОбщегоНазначения.СообщитьПользователю("Реквизит объекта в форме", ЭтотОбъект, "Реквизит1");
ОбщегоНазначения.СообщитьПользователю("Реквизит формы", ЭтотОбъект, , "РеквизитФормы1" );
ОбщегоНазначения.СообщитьПользователю("Реквизит ТЧ объекта", ЭтотОбъект, "ТабличнаяЧасть1[1].Реквизит1");
ОбщегоНазначения.СообщитьПользователю("Реквизит ТЧ формы (набор записей)", ЭтотОбъект, "[0].РО", "ТаблицаНаборЗаписейФормы");
ОбщегоНазначения.СообщитьПользователю("Реквизит ТЧ формы таблица значений", ЭтотОбъект, "[0].Реквизит1", "РеквизитТаблицаЗначений");
КонецПроцедуры
Для вывода сообщений в клиентском контексте той же формы:
(кнопка в панели "В Форме")
&НаКлиенте
Процедура В_Форме(Команда)
ОбщегоНазначенияКлиент.СообщитьПользователю("Реквизит объекта в форме", , "Объект.Реквизит1");
ОбщегоНазначенияКлиент.СообщитьПользователю("Реквизит формы", , , "РеквизитФормы1" );
ОбщегоНазначенияКлиент.СообщитьПользователю("Реквизит ТЧ объекта", , "Объект.ТабличнаяЧасть1[1].Реквизит1");
ОбщегоНазначенияКлиент.СообщитьПользователю("Реквизит ТЧ формы (набор записей)", , "[0].РО", "ТаблицаНаборЗаписейФормы");
ОбщегоНазначенияКлиент.СообщитьПользователю("Реквизит ТЧ формы таблица значений", , "[0].Реквизит1", "РеквизитТаблицаЗначений");
КонецПроцедуры
Для любителей копипаста во вложении демо база, в которой из БСП выдернут метод СообщитьПользователю, т.е. полностью БСП не содержит, только этот метод.
Обратите внимание, что в ТЧ выводится сообщение для второй строки.
Вступайте в нашу телеграмм-группу Инфостарт
