Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не работает СообщениеПользователю в расширении

Не работает СообщениеПользователю в расширении
Я
   СделатьВсеХорошо
 
29.07.20 - 19:11
Комрады, всех приветствую, а кто-нибудь делал так?:
1. расширение
2. новый объект документ
3. в модуле объекта некая проверка.
4. хочу обматерить пользователя со ссылкой на определенную строку таб. части


Итог: сообщение выводится только внизу к строке и ячейке не крепится, хотя в разных ресурсах интернета пишут что я все сделал правильно.

Может дело в том что в расширении эта фича сообщений не работает?

код таков:

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В строка " + Выборка.НомерСтроки + " бла бла бла ";
Сообщение.Поле = "Документы[" + Строка(Выборка.НомерСтроки - 1) + "].Заказ";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
   AlvlSpb
 
1 - 29.07.20 - 21:50
(0) Документы - это имя ТЧ? И почему тип значения индекс у тебя строка?
   lodger
 
2 - 29.07.20 - 22:17
думаю, что косяк в 
\\ Сообщение.УстановитьДанные(ЭтотОбъект);

в примере описано следующее
Сообщение.Поле = "Номенклатура[10].Количество";

    // Привязка объекта к реквизиту формы произойдет за счет

    // установленного выше по стеку соответствия методом

    // УстановитьСоответствиеОбъектаИРеквизитаФормы

    Сообщение.УстановитьДанные(ОбъектДанных);
    // Теперь у сообщения заполнено поле ПутьКДанным (установлено имя реквизита формы, до этого была пустая строка),

    // и свойство КлючДанных (установлена ссылка на документ, до этого было Неопределено)


либо

    // Привязка объекта к реквизиту формы "вручную"

    Сообщение.КлючДанных = ОбъектДанных.Ссылка;
    Сообщение.ПутьКДанным = "Объект";
   СделатьВсеХорошо
 
3 - 29.07.20 - 22:23
(1) ТЧ кончено.
А какого ему быть типа, если я в строковый реквизит "поле" присваиваю значение?
   AlvlSpb
 
4 - 29.07.20 - 23:16
(3) А если так? Для УФ
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В строка " + Выборка.НомерСтроки + " бла бла бла ";
Сообщение.Поле = "Объект.Документы[" + Выборка.НомерСтроки - 1 + "].Заказ";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
   СделатьВсеХорошо
 
5 - 30.07.20 - 14:43
(4) Пробовал, тоже не взлетело
   СделатьВсеХорошо
 
6 - 30.07.20 - 14:59
(2) И так не работает
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В строка " + Выборка.НомерСтроки + " бла бла бла ";
Сообщение.Поле = "Объект.Документы[" + Выборка.НомерСтроки - 1 + "].Заказ";
Сообщение.КлючДанных = ЭтотОбъект.Ссылка;
Сообщение.ПутьКДанным = "Объект";
Сообщение.Сообщить();

мне кажется все дело или в расширениях или в совместимости базы...

я уже помоему все варианты перепробовал
   lodger
 
7 - 30.07.20 - 15:24
(6) вернись на шаг назад и перечитай с моего примера.
   AlvlSpb
 
8 - 30.07.20 - 16:49
(6) Вставил код
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В строка " + " " + " бла бла бла ";
Сообщение.Поле = "Объект.Запасы[" + (1 - 1) + "].Номенклатура";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
в расширении в ПриОткрытии ЗаказаПокупателя в демо УНФ, отлично сработало
Уверен, что есть данные номера строки в выборке? Проверяй на орфографию имя ТЧ (букву пропустил или поменял местами). Где-то дурацкая мелкая ошибочка.
   СделатьВсеХорошо
 
9 - 30.07.20 - 18:24
(8) при открытии формы, то хорошо, там вопросов нет.

У меня вопрос именно из модуля объекта.

Орфография не может быть все реквизиты скопированы.
   AlvlSpb
 
10 - 30.07.20 - 18:57
(9) Проверил из модуля объекта - все работает. Единственное НЕ Объект.Документы, а просто Документы. Переименнуй ТЧ, Документы - это все же обращение к метаданным, назови по другому
   СделатьВсеХорошо
 
11 - 30.07.20 - 18:59
(10) ять, вот это правда 100% решение. он точно к метаданным лезет вместо ТЧ.

спс. сейчас попробую.
   Timon1405
 
12 - 30.07.20 - 19:02
(4) такой код сломается на 1001 строке
   СделатьВсеХорошо
 
13 - 30.07.20 - 20:13
(12) почему?
   СделатьВсеХорошо
 
14 - 30.07.20 - 20:26
В общем итог: грабли те же, уже ходили, но жизнь не учит, оставлю тут напоминание...

(10) это конечно ценное замечание, но дело было не в этом.

Косяк был в том, что процедура проверки вызывалась в ОбработкаПроведения, а там это не работает.
Перенес как положено в ОбработкаПроверкиЗаполнения и все взлетело.
   lodger
 
15 - 31.07.20 - 00:30
(13) потому, что 1001 будет неявно сконвертировано в 1 001. пробел в индексе строки поломает адресацию пузырька сообщения.
   СделатьВсеХорошо
 
16 - 31.07.20 - 09:42
(15) и это орден шелкового умника!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.