![]() |
|
УФ: окно сообщения | ☑ | ||
---|---|---|---|---|
0
DCKiller
10.06.14
✎
10:09
|
Здравствуйте еще раз. Есть такая проблема. Нужно выводить окно сообщений (объект "СообщениеПользователю") не в отдельном окне, а в маленьком диалоге с привязкой к определенному элементу формы (конкретно - к реквизиту ТЧ на форме документа в определенной строке). Сейчас при установке необходимых параметров указываю Поле, ПутьКДанным и КлючФормы.
Сообщение.Поле = "СписокТоваров["+(ВыборкаТабличнаяЧасть.НомерСтроки-1)+"].Количество"; Сообщение.ПутьКДанным = "Объект"; Сообщение.КлючДанных = Ссылка; При такой настройке сообщение выводится в маленьком диалоге, но - при этом также вываливается в виде дополнительного окна справа от формы объекта, и при этом не привязывается к нужному элементу формы. Где что я упустил или неправильно настроил? |
|||
1
Drac0
10.06.14
✎
10:24
|
СообщениеПользователю.Текст = ТвойТекст;
СообщениеПользователю.Поле = "ТвойРеквизитФормы."; Так все ОК должно быть. |
|||
2
DCKiller
10.06.14
✎
10:28
|
(1) А в (0) не то же самое?
|
|||
3
mikecool
10.06.14
✎
10:28
|
(2) "Объект.Поле" - так пиши
|
|||
4
Drac0
10.06.14
✎
10:32
|
(2) ПутьКДанным в топку. Если СписокТоваров - ТЧ объекта, то пиши "Объект.СписокТоваров["+(ВыборкаТабличнаяЧасть.НомерСтроки-1)+"].Количество".
Кстати, если Номер строки будет больше 1000, то Форматируй в строку вручную с удалением биения по триадам. |
|||
5
DCKiller
10.06.14
✎
10:37
|
(4) Куда писать? В "Поле"?
(3) нифига |
|||
6
Fedor-1971
10.06.14
✎
11:39
|
(0) Попробуй убрать Ключ и ПутьКДанным, а поле заполнить так:
поле="Объект.СписокТоваров["+Строка(Индекс)+"].Количество" - явно преобразуй число в строку. |
|||
7
DCKiller
10.06.14
✎
11:42
|
(6) К сожалению, нет :( 1С и в этом случае сует окно сообщения туда, куда ей заблагорассудится. Да, и второе окно с сообщением, по-прежнему вылазит.
|
|||
8
Fedor-1971
10.06.14
✎
12:03
|
(7) попробуй получить индекс строки так:
Индекс=Объект.СписокТоваров.Индекс(Элемент.ТекущиеДанные) Окно сообщения выводится где попало, если индекс не корректный. |
|||
9
Timon1405
10.06.14
✎
12:07
|
(7) У вас точно ТЧ "список товаров" называется? Проверьте внимательно имя ТЧ и ее колонок, чтобы было поле = "Объект.ИмяТч["+Индекс+"].ИмяРеквизита"
|
|||
10
DCKiller
10.06.14
✎
12:11
|
(9) Да, точно
|
|||
11
Drac0
10.06.14
✎
12:12
|
(7) Так. По порядку. Создаются сообщения пользователю?
|
|||
12
Drac0
10.06.14
✎
12:12
|
+(11) *Где
|
|||
13
Drac0
10.06.14
✎
12:13
|
Кстати, учтите, что если они создаются на сервере, то выведутся при возвращении на клиент в текущей активной форме.
|
|||
14
DCKiller
10.06.14
✎
12:13
|
(11) Создаются.
Выводятся. Но - не у реквизита "Количество" ТЧ "СписокТоваров", а в произвольном месте на форме. Помимо этого - сообщение одновременно выводится в отдельном окне справа от формы дока. Так понятнее? |
|||
15
DCKiller
10.06.14
✎
12:14
|
(13) Ага... а есть способ это избежать? Или только на клиенте выводить сообщение?
|
|||
16
Drac0
10.06.14
✎
12:15
|
(15) Сначала генери ,а потом выводи, когда нужную форму откроешь.
|
|||
17
DCKiller
10.06.14
✎
12:19
|
(16) А если это все в обработке проведения происходит? Как это сообщение на клиент передать?
|
|||
18
Drac0
10.06.14
✎
12:22
|
Как вариант,через ДополнительныеСвойства объекта. Помещаешь туда массив сообщений через ПолучитьСообщенияПользователю(Истина), потом открываешь форму и там уже их показываешь.
|
|||
19
mikecool
10.06.14
✎
12:26
|
СообщениеПользователю (UserMessage)
Поле (Field) Использование: Чтение и запись. Описание: Тип: Строка. Содержит путь к реквизиту формы, для которого было выведено сообщение, или к данным объекта. Например, путь к реквизиту Номенклатура в строке с индексом 10 табличной части документа, в которой произошла ошибка: ТабличнаяЧастьСоставДокумента[10].Номенклатура. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
20
Drac0
10.06.14
✎
12:30
|
(17) Так еще можно:
пОбъект = ТекСсылка.ПолучитьОбъект(); Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Тест!!!"; Сообщение.Поле = "Реквизит"; //Тут без "Объект." Сообщение.УстановитьДанные(пОбъект); Сообщение.Сообщить(); Тогда по клику на сообщение он откроет форму объекта с этим сообщением. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |