Имя: Пароль:
1C
 
8.2 УФ - как повесить сообщение на поле?
, ,
0 RomaH
 
naïve
07.07.11
14:41
на форме два поля даты - период

надо контролировать что бы дата начала не была больше даты окончания

хочу просто повесить сообщение рядом с полем что бы оно висело пока не исправят, но не мешало работать

как такое реализовать?
1 RomaH
 
naïve
07.07.11
14:44
типа такого:

http://www.dropmocks.com/mXDSk
2 Defender aka LINN
 
07.07.11
14:48
Новый СообщениеПользователю не катит?
3 RomaH
 
naïve
07.07.11
14:51
вопросо куда его повесить, на какое событие

и как закрыть в случае исправления?
4 RomaH
 
naïve
07.07.11
15:14
че-то у меня не получается её повесить на поле
- вылезает слева от формы
5 RomaH
 
naïve
07.07.11
15:15
Если Объект.НаходилсяВСтационареС > Объект.НаходилсяВСтационареПо Тогда
       СообщениеОбОшибке = Новый СообщениеПользователю;
       //СообщениеОбОшибке.ИдентификаторНазначения
       СообщениеОбОшибке.Текст = "Дата окончания не может быть больше даты начала";
       СообщениеОбОшибке.Поле = "НаходилсяВСтационареПо";
       
       СообщениеОбОшибке.Сообщить();
   КонецЕсли;
6 RomaH
 
naïve
12.07.11
10:24
что-то с памятью моей стало ... вроде была возможность вешать сообщение рядом с "проблемным" полем
но получается только справа в отдельном окне

не понятно зачем там привязка к полю

в тойже SSL проверяется серия/номер документа
сообщение привязывается к полю, но выводится слева
7 RomaH
 
naïve
12.07.11
10:26
8 bahus
 
12.07.11
10:33
Пример из УТ:
Процедура СообщитьПользователю(
       Знач ТекстСообщенияПользователю,
       Знач КлючДанных = Неопределено,
       Знач Поле = "",
       Знач ПутьКДанным = "",
       Отказ = Ложь) Экспорт
   
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = ТекстСообщенияПользователю;
   Сообщение.Поле = Поле;
   
   ЭтоОбъект = Ложь;
   
#Если НЕ (ТонкийКлиент ИЛИ ВебКлиент) Тогда
   Если КлючДанных <> Неопределено
      И XMLТипЗнч(КлючДанных) <> Неопределено Тогда
       ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа;
       ЭтоОбъект = Найти(ТипЗначенияСтрокой, "Object.") > 0;
   КонецЕсли;
#КонецЕсли
   
   Если ЭтоОбъект Тогда
       Сообщение.УстановитьДанные(КлючДанных);
   Иначе
       Сообщение.КлючДанных = КлючДанных;
   КонецЕсли;
   
   Если НЕ ПустаяСтрока(ПутьКДанным) Тогда
       Сообщение.ПутьКДанным = ПутьКДанным;
   КонецЕсли;
       
   Сообщение.Сообщить();
   
   Отказ = Истина;
   
КонецПроцедуры
9 bahus
 
12.07.11
10:37
10 also
 
12.07.11
10:39
установитьданные() забыл
11 RomaH
 
naïve
12.07.11
10:42
... а если клиент - то, что в ключ данных передавать?
12 RomaH
 
naïve
12.07.11
10:45
добился вот такого:
http://www.dropmocks.com/mXO2-

не понятно - почему вываливается сообщение справа?
13 bahus
 
12.07.11
10:46
Опять же пример из УТ :)
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Поле ""Организация"" не заполнено'"), Объект.Ссылка, "Объект.Организация");
14 bahus
 
12.07.11
10:48
(12) MockList not found
15 RomaH
 
naïve
12.07.11
10:49
"http://www.dropmocks.com/mXO2-"
16 RomaH
 
naïve
12.07.11
10:50
если так - на клиенте:

то сообщение только справа:

       СообщениеОбОшибке = Новый СообщениеПользователю;
       //СообщениеОбОшибке.ИдентификаторНазначения
       СообщениеОбОшибке.Текст = "Дата окончания не может быть больше даты начала";
       СообщениеОбОшибке.Поле = "НаходилсяВСтационареПо";
       //СообщениеОбОшибке.ПутьКДанным = "НаходилсяВСтационареПо";
       СообщениеОбОшибке.КлючДанных = Объект.Ссылка;
       //СообщениеОбОшибке.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
       СообщениеОбОшибке.Сообщить();
17 RomaH
 
naïve
12.07.11
10:56
ладно - фиг с ним с клиентом

почему у меня сообщений две штуки показывает?

одно где надо - над проблемным полем, второе - справа в окне сообщений формы?
18 RomaH
 
naïve
12.07.11
10:56
СообщениеОбОшибке = Новый СообщениеПользователю;
       //СообщениеОбОшибке.ИдентификаторНазначения
       СообщениеОбОшибке.Текст = "Дата окончания не может быть больше даты начала";
       СообщениеОбОшибке.Поле = "НаходилсяВСтационареПо";
       СообщениеОбОшибке.ПутьКДанным = "Объект.НаходилсяВСтационареПо";
       СообщениеОбОшибке.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
       СообщениеОбОшибке.Сообщить();
19 RomaH
 
naïve
12.07.11
11:15
а как повесить сообщение на поле связанове с реквизитом формы?

т.е. создал для формы пару реквизитов - дата_1, дата_2

поял с таким же наименованием - как вывести сообщение рядом с полем "дата_2"?
20 acsent
 
12.07.11
11:19
(15) Это максимум чего ты мложешь добиться
21 RomaH
 
naïve
12.07.11
11:36
(20) т.е. сообщение в окно сообщений в любом случае дублируется? - ну и фиг с ним

а что с полем от реквизита формы?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан