Имя: Пароль:
1C
1С v8
Как из модуля докмента вывести сообщение пользователю(тонкий клиент)
0 Serega103
 
31.01.13
11:41
При проведении документа программа должна сообщить пользователю о проделанных действиях, а в идеале вывести таблицу обработанных документов (при проведении программа смотрит были ли изменения по сравнению с подчиннными доками и при необходимости их меняет)
1 Wobland
 
31.01.13
11:41
сообщить, я так понимаю, не подходит?
2 Serega103
 
31.01.13
11:42
Процедура Сообщить("") ничего не выводит((
ТЗ.ВыбратьСтроку("Выбери") тоже не пашет((
3 Evrepid
 
31.01.13
11:51
СообщениеПользователю (UserMessage)
Свойства:

ИдентификаторНазначения (TargetID)
КлючДанных (DataKey)
Поле (Field)
ПутьКДанным (DataPath)
Текст (Text)

Методы:

Сообщить (Message)
УстановитьДанные (SetData)

Конструкторы:

По умолчанию

Описание:

Предназначен для хранения параметров сообщения, которые необходимо вывести пользователю.
Если сообщение еще не было показано пользователю (такое может быть при работе на стороне сервера, в фоновом задании, внешнем соединении или Web-сервисах), можно получить накопленные сообщения методом ПолучитьСообщенияПользователю.

В управляемых формах, в случае выполнения просмотра сообщения, выполняется следующий механизм обработки:
Если у сообщения свойство КлючДанных заполнено и не совпадает с ключевым значением основного реквизита текущей формы (ссылкой объекта или ключом записи регистра сведений), то:
открывается новая форма объекта, соответствующая значению свойства КлючДанных;
если у сообщения свойство ПутьКДанным не заполнено, то в него проставляется имя основного реквизита открытой формы объекта;
вызывается показ сообщения в только что открытой форме;
выполняется перенос всех соответствующих сообщений из окна первой формы в новую форму (с таким же значением свойств КлючДанных, как у выбранного сообщения). При этом перенесенным сообщениям аналогичным образом проставляется свойство ПутьКДанным, если оно не установлено.


Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
4 Smallrat
 
31.01.13
11:53
// Формирует и выводит сообщение, которое может быть связано с элементом
// управления формы.
//
//    Параметры
//    ТекстСообщенияПользователю    - Строка - текст сообщения.
//    ОбъектИлиСсылка                - Ссылка на объект ИБ или объект
//    Поле                        - Строка - наименование реквизита формы
//    ПутьКДанным                    - Строка - путь к данным (путь к реквизиту формы)
//    Отказ                        - Булево - Выходной параметр.
//                                Устанавливается в этой процедуре в значение Истина.
//
//    Примеры использования:
//    1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта:
//    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//        НСтр("ru = 'Сообщение об ошибке.'"), ,
//        "ПолеВРеквизитеФормыОбъект",
//        "Объект");
//
//    Альтернативный вариант использования в форме объекта:
//    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//        НСтр("ru = 'Сообщение об ошибке.'"), ,
//        "Объект.ПолеВРеквизитеФормыОбъект");
//
//    2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы:
//    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//        НСтр("ru = 'Сообщение об ошибке.'"), ,
//        "ИмяРеквизитаФормы");
//
//    3. Для вывода сообщения из кода на сервере:
//    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
//        НСтр("ru = 'Сообщение об ошибке.'"),СсылкаНаОбъект,,,Отказ);
//
Процедура СообщитьПользователю(    Знач ТекстСообщенияПользователю,
                               Знач ОбъектИлиСсылка = Неопределено,
                               Знач Поле = "",
                               Знач ПутьКДанным = "",
                               Отказ = Ложь) Экспорт
   
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = ТекстСообщенияПользователю;
   Сообщение.Поле = Поле;
   Сообщение.ПутьКДанным = ПутьКДанным;
   
   Если ОбъектИлиСсылка <> Неопределено Тогда
       Сообщение.УстановитьДанные(ОбъектИлиСсылка);
   КонецЕсли;
   
   Сообщение.Сообщить();
   Отказ = Истина;
   
КонецПроцедуры
5 Wobland
 
31.01.13
11:53
(2) Сообщить("") ничего не выводит((
логично
6 Serega103
 
31.01.13
12:04
Сейчас опробую, спасибо за подсказку, а если например нужно вывести в виде таблицы?
7 Serega103
 
31.01.13
12:08
Странно, но после вот такого кода в модуле документа
       СП=Новый СообщениеПользователю;
       СП.Текст="привет";
       СП.Сообщить();
Стало работать вот это
 Сообщить("Мое сообщение");
которое идет следом.
Так и должно быть?
8 Serega103
 
31.01.13
12:17
может кто подскажет как из модуля документа открыть форму обработки?
9 Wobland
 
31.01.13
12:18
(8) не нужно тебе этого. интерактивность без формы - зло
10 Serega103
 
31.01.13
12:24
И всё таки мне это надо, заказчик требует((
11 Serega103
 
31.01.13
12:35
ап
12 ДенисЧ
 
31.01.13
12:38
(8) не нужно этого делать. Подумай о групповом проведении. Всю интерактивность делай в форме.
13 Defender aka LINN
 
31.01.13
12:42
(10) Особенно заказчик будет счастлив, когда будет проводить обработкой пару тысяч документов. Я думаю, он вообще в экстаз впадет.
16 ИС-2
 
31.01.13
12:48
тоже спрошу, а как вывести не пропадающие сообщение при закрытии формы владельца?
17 Wobland
 
31.01.13
12:48
(16) спроси лучше, куда
18 Serega103
 
31.01.13
13:04
Спасибо что отговорили, действительно неправильно из модуля документа вызывать какие то окна. Век живи век учись.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан