I need help!Вывод сообщения пользователю (внешняя обработка)

1. vanessa 5 16.05.19 15:45 Сейчас в теме
Всем привет. Есть внешний отчет при открытии через Файл-Открыть выводит сообщение пользователю, как и было задумано через
Сообщить();
, но стоить подключить отчет через "дополнительные отчеты и обработки" сообщение не появляется. Подскажите куда копать?
По теме из базы знаний
Найденные решения
9. vanessa 5 30.05.19 22:08 Сейчас в теме
Дошли руки, а глаза до БСП и проблема решилась так
 //Процедура: ОбщегоНазначенияКлиентСервер.СообщитьПользователю
 // Формирует и выводит сообщение, которое может быть связано с элементом 
// управления формы.
//
// Параметры:
//  ТекстСообщенияПользователю - Строка - текст сообщения.
//  КлючДанных                 - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
//  Поле                       - Строка - наименование реквизита формы.
//  ПутьКДанным                - Строка - путь к данным (путь к реквизиту формы).
//  Отказ                      - Булево - выходной параметр, всегда устанавливается в значение Истина.
//
// Пример:
//
//  1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ПолеВРеквизитеФормыОбъект",
//   "Объект");
//
//  Альтернативный вариант использования в форме объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "Объект.ПолеВРеквизитеФормыОбъект");
//
//  2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ИмяРеквизитаФормы");
//
//  3. Для вывода сообщения связанного с объектом информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
//
//  4. Для вывода сообщения по ссылке на объект информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
//
//  Случаи некорректного использования:
//   1. Передача одновременно параметров КлючДанных и ПутьКДанным.
//   2. Передача в параметре КлючДанных значения типа отличного от допустимых.
//   3. Установка ссылки без установки поля (и/или пути к данным).
Показать


Всем спасибо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kovekh 17.05.19 13:09 Сейчас в теме
А вы раньше делали вообще доп обработки? Есть параметры регистрации, команды которые выполняются, вид внешней обработки. У Вас, может обработка просто не знает, что ей делать в дополнительных обработках. По одному лишь коду "Сообщить()" очень сложно понять проблему
3. vanessa 5 21.05.19 09:38 Сейчас в теме
(2) это мои первые обработки и отчеты

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") 
     
    НоваяКоманда = ТаблицаКоманд.Добавить(); 
    НоваяКоманда.Представление = Представление; 
    НоваяКоманда.Идентификатор = Идентификатор; 
    НоваяКоманда.Использование = Использование; 
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; 
    НоваяКоманда.Модификатор = Модификатор; 
     
КонецПроцедуры 
Показать
4. tusv 212 21.05.19 10:05 Сейчас в теме
(3)БРРР. Слишкам многа букаф.:)
"Давай кто быстрее! В пробке стоять" (с) Стивен Сигал
РегистрационныеДанные				= ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("");
РегистрационныеДанные.Вид			= Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет; 
РегистрационныеДанные.Наименование	= Метаданные.Представление();
РегистрационныеДанные.Версия		= "1.0";
РегистрационныеДанные.Информация	= "Отчет "+Метаданные.Представление();    
НоваяКоманда = РегистрационныеДанные.Команды.Добавить();
НоваяКоманда.Представление 		= Метаданные.Представление(); 
НоваяКоманда.Идентификатор		= Метаданные.Имя; 
НоваяКоманда.Использование		= "ОткрытиеФормы";
Показать
ivangrant; +1 Ответить
5. Kovekh 21.05.19 10:26 Сейчас в теме
(3) И при открытии формы у Вас в коде написано сообщение?
6. vanessa 5 21.05.19 12:22 Сейчас в теме
(5) видимо не правильно выразил свой вопрос. При формировании внешнего отчета Т-13 в ЗУП, идет заполнение и сохранение файла excel (свой макет), по результату этого заполнения выдается сообщение

	//формируем имя сохраняемого файла
	ПодразделениеТекст = СтрЗаменить(Стр.Подразделение,","," ");
	ПодразделениеТекст = СтрЗаменить(ПодразделениеТекст,""""," ");  
	КаталогЭкспорта  = "G:\";
	ИмяФайла = КаталогЭкспорта + "Табель " + СокрЛП(ПодразделениеТекст) + ".xls";	
	
	Попытка
		Версия = Лев(ВерсияЕхсеl, Найти(ВерсияЕхсеl,".") - 1);
		Если (Версия = "12") или (Версия = "14") Тогда
			Книга.SaveAS(ИмяФайла, 56);
		Иначе
			Книга.SaveAS(ИмяФайла);
		КонецЕсли;
		
	Исключение
		Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
	КонецПопытки; 
	Сообщить("Успешно создан Табель " + Стр.Подразделение);
	Эксель.ActiveWorkbook.Close();
	Эксель.Application.Quit();
	Эксель = Неопределено;

Показать

Так вот если открыть внешний отчет через файл-октрыть и нажать сформировать сообщение выводится, а если подключить через внешние обработки, то сообщение не выводится
7. tusv 212 21.05.19 12:40 Сейчас в теме
(6)Подозреваю, что. Когда вы открываете файл обработки, то обработка находится на клиенте, а Обработка из справочника записывается и подключается на сервере. Тут нужна обработка, чтобы посмотреть, а то Мы уже начали веселиться в предположениях. Извините если что
8. acanta 21.05.19 12:44 Сейчас в теме
(6) замените сообщение на запись журнала регистрации и какой нибудь реквизит обработки с отображением на форме.
9. vanessa 5 30.05.19 22:08 Сейчас в теме
Дошли руки, а глаза до БСП и проблема решилась так
 //Процедура: ОбщегоНазначенияКлиентСервер.СообщитьПользователю
 // Формирует и выводит сообщение, которое может быть связано с элементом 
// управления формы.
//
// Параметры:
//  ТекстСообщенияПользователю - Строка - текст сообщения.
//  КлючДанных                 - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
//  Поле                       - Строка - наименование реквизита формы.
//  ПутьКДанным                - Строка - путь к данным (путь к реквизиту формы).
//  Отказ                      - Булево - выходной параметр, всегда устанавливается в значение Истина.
//
// Пример:
//
//  1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ПолеВРеквизитеФормыОбъект",
//   "Объект");
//
//  Альтернативный вариант использования в форме объекта:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "Объект.ПолеВРеквизитеФормыОбъект");
//
//  2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ,
//   "ИмяРеквизитаФормы");
//
//  3. Для вывода сообщения связанного с объектом информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ);
//
//  4. Для вывода сообщения по ссылке на объект информационной базы:
//  ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//   НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ);
//
//  Случаи некорректного использования:
//   1. Передача одновременно параметров КлючДанных и ПутьКДанным.
//   2. Передача в параметре КлючДанных значения типа отличного от допустимых.
//   3. Установка ссылки без установки поля (и/или пути к данным).
Показать


Всем спасибо.
10. Athlon 15.08.23 16:21 Сейчас в теме
ВызватьИсключение "Текст исключения";

тоже должно сработать
Оставьте свое сообщение

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