Как привязать сообщение пользователю к элементу табличной части документа?
Управляемые формы. Документ проводится и в случае если проверка не проходит должно появиться сообщение с привязкой к строке к эл. Количество.Вот код:
Код выводит облачное сообщение но оно привязано только к строке, а не к полю Количество.
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Товара "+ ВыборкаНоменклатура.Номенклатура.Наименование + " в количестве "+ВыборкаНоменклатура.Количество + " нет на складе ";
Сообщение.Поле ="Объект.СписокНоменклатуры["+ ВыборкаНоменклатура.НомерСтроки+"].Количество";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
ПоказатьКод выводит облачное сообщение но оно привязано только к строке, а не к полю Количество.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуйте без установить данные и без "Объект."
Т.е. примерно следующее:
Где СписокНоменклатуры - элемент формы.
Т.е. примерно следующее:
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Товара "+ ВыборкаНоменклатура.Номенклатура.Наименование + " в количестве "+ВыборкаНоменклатура.Количество + " нет на складе ";
Сообщение.Поле ="СписокНоменклатуры["+ ВыборкаНоменклатура.НомерСтроки+"].Количество";
Сообщение.Сообщить();
Где СписокНоменклатуры - элемент формы.
Возможно дело в том, что нужно указывать индекс строки, а не номер.
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ТЧ = Объект.ТабличнаяЧасть1;
Для каждого СтрокаТЧ ИЗ ТЧ Цикл
Если СтрокаТЧ.Реквизит2 = 55 Тогда
Индекс = ТЧ.Индекс(СтрокаТЧ);
Сообщить = Новый СообщениеПользователю;
Сообщить.Текст = "Ошибка в этом поле строки";
Сообщить.Поле = "Объект.ТабличнаяЧасть1["+Индекс+"].Реквизит2";
Сообщить.Сообщить();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
(6) не работает никак, подозреваю что это очередной глюк платформы (8.3.17.1549), хотя пробовал несколько разных
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "По номенклатурае " + ВыборкаНоменклатура.НоменклатураПредставление + " не хватает " + (ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток);
Сообщение.Поле = "СписокНоменклатуры["+(ВыборкаНоменклатура.НомерСтроки-1)+"].Количество";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
(7)Не соглашусь с Вами на счет "глюка" платформы.
стоит такая же, как и у Вас = 1С:Предприятие 8.3 (8.3.17.1549)
все работает исправно.
стоит такая же, как и у Вас = 1С:Предприятие 8.3 (8.3.17.1549)
// Создание сообщения
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке №"+ст.НомерСтроки+"
|по номенклатуре: "+ст.Номенклатура+"
|не верно указана количество: "+ст.Количество+" "+ст.Номенклатура.ЕдиницаИзмерения+"
|по спецификации: "+ст.Спецификация+"
|Остаток по спецификации: "+ст.КоличествоОстаток+" "+ст.Номенклатура.ЕдиницаИзмерения+"
|Отклонение: "+(ст.Количество-ст.КоличествоОстаток)+"
|Измените кол-во в указанной строке на "+ст.КоличествоОстаток+" "+ст.Номенклатура.ЕдиницаИзмерения;
Сообщение.Поле = "Объект.Товары["+(ст.НомерСтроки-1)+"].Количество";
Сообщение.Сообщить();
Показатьвсе работает исправно.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот