Вывести СообщениеПользователю из общего модуля привязкой к реквизиту #795783


#0 by Радим1987
Надо вывести такое сообщение к привязкой табчасть Товары.Номенклатура
#1 by Радим1987
Сообщение выводиться но ни как привязывается к табЧасти Параметрах процедуры есть (Объект = ДанныеФормыСтруктура,Форма = управляемая форма) что только не пробывал
#2 by Радим1987
#3 by dezss
Что передаешь в процедуру/функцию общего модуля?
#4 by Радим1987
Объект = ДанныеФормыСтруктура,Форма = управляемая форма
#5 by dezss
тьфу, увидел... а если
#6 by drcrasher
установитьДанные(документСсылка)
#7 by Радим1987
нет не получилось
#8 by Радим1987
УстановитьДанные(<Объект>) Параметры: Тип: Произвольный. Объект, с которым должно быть связано сообщение.
#9 by dezss
а попробуй подобным образом привязать к какому-нибудь другому элементу формы, не тч.
#10 by Радим1987
Тип: Структура. Содержит идентификатор формы и имя реквизита элемента управления, для которых выполняется установка соответствия. Структура, передаваемая в параметр, может содержать два элемента с именами ключей: 1. "ИдентификаторФормы" ("FormID") – уникальный идентификатор формы (тип УникальныйИдентификатор); 2. "ИмяРеквизита" ("AttributeName") – имя реквизита в форме (тип Строка). Этот элемент может не указываться. но когда я делаю через структуру ругается типа неправильный параметр
#11 by Радим1987
другим элементам тоже не привязывается
#12 by Радим1987
по причине: Несоответствие типов (параметр номер '2') ПОЧЕМУ ?????
#13 by dezss
Ст.Вставить("ИмяРеквизита",Строка(Форма.Объект));
#14 by dezss
не точно так, но принцип понятен, да?
#15 by dezss
по идее можно прям так Ст.Вставить("ИмяРеквизита","Объект");
#16 by Радим1987
,   та же ошибка по причине: Несоответствие типов (параметр номер '2')
#17 by dezss
ПолучитьСоответствиеОбъектаИФормы(<Объект>) что возвращает?
#18 by Радим1987
ИдентификаторФормы,00000-000             ИмяРеквизита,ДанныеФормыСтруктура
#19 by dezss
а в ДанныеФормыСтруктура что-то есть?
#20 by Радим1987
Сделал так УстановитьСоответствиеОбъектаИРеквизитаФормы(ДокументОб,"ст"); ПолучитьСоответствиеОбъектаИФормы(Док) вернул структуру Получается не устанавливается идентификатор формы
#21 by dezss
а с каких пор ДокументОб стал идентификатором формы? О_о
#22 by Радим1987
я имею ввиду что процедура УстановитьСоответствиеОбъектаИРеквизитаФормы(ДокументОб,"ст"); устанавливает  только имя "ИмяРеквизита = "ст""
#23 by dezss
а ты передай ему в первом параметре идентификатор формы...вот тогда и увидим что он устанавливает...
#24 by dezss
тьфу...туплю, блин...
#25 by dezss
кста, а модуль серверный?
#26 by Радим1987
да почти решил жду отладку)
#27 by dezss
ты ж напиши как решил
#28 by Радим1987
возвращает то что надо даже не знаю куда копать
#29 by dezss
да понятно, что установить... у тебя не работает как написано в сп, передавать только "Объект" безсмысленно. А попробуй передавать структуру только с идентификатором. Убери строчку: Ст.Вставить("ИмяРеквизита",Форма.Объект); Будет тогда ругаться на тип параметра?
#30 by Радим1987
пробываал тоже самое
#31 by dezss
Блин....прям вот щас сам попробую. Интересно стало.
#32 by Радим1987
)))
#33 by dezss
УстановитьСоответствиеОбъектаИРеквизитаФормы <> УстановитьСоответствиеОбъектаИФормы Первое у тебя в УстановитьСоответствиеОбъектаИФормы у меня отработал нормально. ПолучитьСоответствиеОбъектаИФормы вернул те значения, что я передал в структуре. Правда делал все модуле формы.
#34 by Радим1987
по причине: Недопустимое значение параметра (параметр номер '2')
#35 by dezss
да еп жеж.... Ст.Вставить("ИмяРеквизита",<тут должна быть СТРОКА!!!!>);
#36 by dezss
с реквизитами формы привязка работает, с объектом и всем дочерним к нему чета нет...пороюсь
#37 by dezss
Кароч. Все решается так: в модуле формы работает...думаю, и в общем модуле должно
#38 by Радим1987
тоже все работает я дума щас проблема в этом Товары[0].Номенклатура
#39 by Радим1987
т.е Сообщение.Поле = ?
#40 by Радим1987
ПОЛЕ = Содержит путь к реквизиту формы, для которого было выведено сообщение, или к данным объекта. Например, путь к реквизиту Номенклатура в строке с индексом 10 табличной части документа, в которой произошла ошибка: ТабличнаяЧастьСоставДокумента[10].Номенклатура. а в моем случае к чему будет равно Поле = ? Сообщение.Поле = Форма.ТОвары или Сообщение.Поле = Объект.ТОвары
#41 by dezss
А если так: Я так понимаю Товары[0].Номенклатура - это для ОФ, в УФ работать не будет. Для УФ поле формы надо сюда пихать, насколько я понял Сообщение.Поле = Форма.Элементы.Товары
#42 by dezss
Я не прав, надо именно имя реквизита, а не элемента формы. Только что проверил. Тебе можно писать просто Сообщение.Поле = Товары Так как с объектом ты это сообщение уже связал через Сообщение.УстановитьДанные(ДокументОб);
#43 by dezss
Кстати, если надо будет вызвать сообщение на реквизит формы, не подчиненный объекту, то надо будет переустанавливать УстановитьСоответствиеОбъектаИФормы на этот реквизит.
#44 by Радим1987
пробывал ничего не происходит выводит сообщение только сбоку
#45 by dezss
Или сделать так: сообщение.ПутьКДанным = "<имя реквизита формы>";
#46 by dezss
Я на обед, а пока покажи код и сообщение.
#47 by Радим1987
#48 by dezss
так-с...теперь ты решил воспользоваться уже написанным...но воспользовался неправильно. Если реквизит формы не связан с объектом, то так: ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки,,"<имя_реквизита>",); По поводу обращения с индексом сейчас поищу на чем попробовать.
#49 by Радим1987
В модуле ФОРМЫ (УФ) Общий модуль серверная
#50 by Радим1987
спасибо все решилось создал новую конфигурацию там работает идеально ко всем реквизитам цепляется. Но только не в моей конфигурации КА 2.2.3.178 видимо где то запрет или что нить такое
#51 by dezss
вот так у меня все сработало...
#52 by dezss
ну и хорошо. Только зачем свой ОМ мутить, если все и так есть.
#53 by Радим1987
типовой сказали не трогать все процедуры функции только в расширение и тем более вот этот канитель не только для этого документа а для всех документов продажи покупки
#54 by dezss
типовой конечно не трогать, но им же можно пользоваться) Ведь всего 2 строчки     об = РеквизитФормыВЗначение("Объект");     ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Все очень плохо",об,"Товары[1].Номенклатура","Объект");
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С