Имя: Пароль:
1C
1С v8
Вывод сообщений пользователю из внешней обработки создания связанных объектов
0 cons24
 
10.12.18
11:33
Задача: добавить ввод комплектации на основании ПТУ.
Сделал внешку, документы создает и проводит как надо. Но еще надо чтоб выводился список созданных документов и ошибок.
Вижу есть параметр "СозданныеОбъекты", но он нигде явно не обрабатывается.
1 Очевидно
 
10.12.18
11:37
После создания документа :
Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Создан : "+ЗаказНаПроизводствоОбъект.Ссылка;
        Сообщение.КлючДанных = ЗаказНаПроизводствоОбъект.Ссылка;
        Сообщение.УстановитьДанные(ЗаказНаПроизводствоОбъект.Ссылка);
        Сообщение.Сообщить();
2 cons24
 
10.12.18
11:50
(1) не фурычит. Как и прежде совсем ничего не выводит.
3 Очевидно
 
10.12.18
12:01
(2) УФ или Обычные формы ?
4 Очевидно
 
10.12.18
12:04
(2) из СП :
СообщениеПользователю (UserMessage)

Описание:

Предназначен для хранения параметров сообщения, которые необходимо вывести пользователю.
Если сообщение еще не было показано пользователю (такое может быть при работе на стороне сервера, в фоновом задании, внешнем соединении или Web-сервисах), можно получить накопленные сообщения методом ПолучитьСообщенияПользователю.
5 cons24
 
10.12.18
12:05
УФ
6 Очевидно
 
10.12.18
12:07
(5) См: (4)
7 cons24
 
10.12.18
12:08
БСП. Некуда тут вставлять ПолучитьСообщенияПользователю()

Функция СведенияОВнешнейОбработке() Экспорт

    лМетаданные = Метаданные();
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиСозданиеСвязанныхОбъектов();
    ПараметрыРегистрации.Назначение.Добавить("Документ.ПоступлениеТоваровУслуг");
    ПараметрыРегистрации.Наименование = лМетаданные.Синоним;
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = ПараметрыРегистрации.Наименование;
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.Идентификатор = ПараметрыРегистрации.Наименование + НоваяКоманда.Использование;
    НоваяКоманда.ПоказыватьОповещение = Истина;
        
    Возврат ПараметрыРегистрации;
    
КонецФункции


Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения=Неопределено) Экспорт
    Для Каждого ПТУ из ОбъектыНазначения Цикл
        ОбработатьПТУ(ПТУ,СозданныеОбъекты);
    КонецЦикла;
КонецПроцедуры

Процедура ОбработатьПТУ(СсылкаПТУ,СозданныеОбъекты)
//
КонецПроцедуры
8 cons24
 
10.12.18
12:08
Думаю причина в ТипКомандыВызовСерверногоМетода().
9 Очевидно
 
10.12.18
12:25
(8) да, ты прав ...
Меняешь его на "ТипКомандыВызовКлиентскогоМетода()"
Создаёшь форму обработке и там пишешь:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполнения=Неопределено) Экспорт
    Для Каждого ПТУ из ОбъектыНазначения Цикл
        ОбработатьПТУ(ПТУ,СозданныеОбъекты);
    КонецЦикла;
    
    Для Каждого СозданныйОбъект из СозданныеОбъекты Цикл
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Создан : "+СозданныйОбъект;
        Сообщение.КлючДанных = СозданныйОбъект;
        Сообщение.УстановитьДанные(СозданныйОбъект);
        Сообщение.Сообщить();
    КонецЦикла;

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

&НаСервереБезКонтекста
Процедура ОбработатьПТУ(СсылкаПТУ,СозданныеОбъекты)
//
    НовыйДокумент = СсылкаПТУ.ПолучитьОбъект().Скопировать();
    НовыйДокумент.Записать();
    
    СозданныеОбъекты.Добавить(НовыйДокумент.Ссылка);
        
КонецПроцедуры
10 Очевидно
 
10.12.18
12:26
(9) + По двойному клику на сообщение - открывается новый документа
11 Очевидно
 
10.12.18
12:26
*Документ