Сообщения в никуда

Делал обработку табличной части.

Прежде, чем выполнить обработку, пользователю нужно показать форму, где он выберет некоторые настройки (галочки) и затем выполнит команду «Перезаполнить серии»:

Код вызова обработки такой:

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
   
ОткрытьФорму(«ВнешняяОбработка.ЗаполнениеСерийОРП.Форма.Форма», , ВладелецФормы);
КонецПроцедуры

&НаКлиенте
Процедура ПерезаполнитьСерии(Команда)

   
//Тут код команды

   
ЛокСообщить(«Серии заполнены!»);
   
Закрыть();
   
ЛокВывестиСообщения();

КонецПроцедуры

Столкнулся с тем, что все сообщения, которые выводятся при работе команды (о нехватке серий), потом теряются, так как сообщения выводятся в окно формы настроек, которая закрывается при выполнении команды.

Чтобы этого избежать пришлось накапливать сообщения в массиве и выводить их уже после закрытия формы.

Вот необходимые функции:


&НаКлиенте
Функция ЛокВывестиСообщения();
    Если
ЛокСообщения <> Неопределено Тогда
        Для Каждого
ЛокСообщение ИЗ ЛокСообщения Цикл
           
Сообщить(ЛокСообщение.Сообщение, ЛокСообщение.Статус);
        КонецЦикла;
    КонецЕсли;
КонецФункции

&НаКлиенте
Функция ЛокСообщить(Сообщение, Статус = Неопределено)
    Если
ЛокСообщения = Неопределено Тогда
       
ЛокСообщения = Новый Массив();
    КонецЕсли;
   
ЛокСообщения.Добавить(Новый Структура(«Сообщение, Статус», Сообщение, Статус));
   
//Сообщить(Сообщение, Статус);
КонецФункции

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *