|
Сообщение пользователю | ☑ | ||
---|---|---|---|---|
0
pro3ri
12.08.15
✎
10:07
|
Добрый день!
делаю сообщение в модуле набора записей регистра бухгалтерии: Процедура ПередЗаписью(Отказ, РежимЗаписи) Ссылка = Отбор.Регистратор.Значение; Если Не ЗначениеЗаполнено(Ссылка.Курс) Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КурсыСрезПоследних.Валюта, | КурсыСрезПоследних.Курс |ИЗ | РегистрСведений.Курсы.СрезПоследних(&Период, Валюта = &Валюта) КАК КурсыСрезПоследних"; Запрос.УстановитьПараметр("Валюта", Константы.ВалютаБаланса.Получить()); Запрос.УстановитьПараметр("Период", Ссылка.Дата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ВыборкаДетальныеЗаписи.Следующий(); ДокОбъект = Ссылка.ПолучитьОбъект(); ДокОбъект.Курс = ВыборкаДетальныеЗаписи.Курс; ДокОбъект.Записать(); КонецЕсли; Дата = Ссылка.Дата; Для каждого Проводка Из ЭтотОбъект Цикл Если ТипЗнч(Отбор.Регистратор.Значение) = Тип("ДокументСсылка.Операция") Тогда Проводка.Период = Дата; КонецЕсли; Если Ссылка.Курс <>0 Тогда Проводка.СуммаEUR = Проводка.Сумма /Ссылка.Курс; Иначе Проводка.СуммаEUR = 0; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Проверьте курс, он равен 0!"; Сообщение.Поле = "Курс"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); КонецЕсли; КонецЦикла; КонецПроцедуры получаю https://s.mail.ru/4xBMMSSJ7RUB/img-2015-08-12-12-12-41.png Как сделать чтобы сообщение выходило по стрелке вверху? |
|||
1
Господин ПЖ
12.08.15
✎
10:12
|
откуда набор записей что-то знает про форму?
|
|||
2
pro3ri
12.08.15
✎
10:32
|
(1) Получается, нужно получитьформу?
|
|||
3
alex-pro
12.08.15
✎
11:25
|
(2) Получается гомно код. Нельзя в МО пихать любой инветрактив. Максимум - просто выведи информацию об ошибке.
А так - сделай проверку на форме перед записью, если режим записи - проведение. |
|||
4
alex-pro
12.08.15
✎
11:25
|
*инветрактив = интерактив
|
|||
5
pro3ri
12.08.15
✎
12:06
|
(3) ок спасибо!
|
|||
6
pro3ri
12.08.15
✎
12:10
|
в итоге решил:
копирнул чудо код из ут и заработало: ОМ: // Формирует и выводит сообщение, которое может быть связано с элементом // управления формы. // // Параметры // ТекстСообщенияПользователю - Строка - текст сообщения. // КлючДанных - Любая ссылка на объект информационной базы. // Ссылка на объект информационной базы, к которому это сообщение относится, // или ключ записи. // Поле - Строка - наименование реквизита формы // ПутьКДанным - Строка - путь к данным (путь к реквизиту формы) // Отказ - Булево - Выходной параметр // Всегда устанавливается в значение Истина // // Примеры использования: // // 1. Для вывода сообщения у поля управляемой формы, связанного с реквизитом объекта: // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // НСтр("ru = 'Сообщение об ошибке.'"), , // "ПолеВРеквизитеФормыОбъект", // "Объект"); // // Альтернативный вариант использования в форме объекта: // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // НСтр("ru = 'Сообщение об ошибке.'"), , // "Объект.ПолеВРеквизитеФормыОбъект"); // // 2. Для вывода сообщения рядом с полем управляемой формы, связанным с реквизитом формы: // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // НСтр("ru = 'Сообщение об ошибке.'"), , // "ИмяРеквизитаФормы"); // // 3. Для вывода сообщения связанного с объектом информационной базы // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // НСтр("ru = 'Сообщение об ошибке.'"), ОбъектИнформационнойБазы, "Ответственный",,Отказ); // // 4. Для вывода сообщения по ссылке на объект информационной базы // ОбщегоНазначенияКлиентСервер.СообщитьПользователю( // НСтр("ru = 'Сообщение об ошибке.'"), Ссылка, , , Отказ); // // Случаи некорректного использования: // 1. Передача одновременно параметров КлючДанных и ПутьКДанным // 2. Передача в параметре КлючДанных значения типа отличного от допустимых // 3. Установка ссылки без установки поля (и/или пути к данным) // Процедура СообщитьПользователю( Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ТекстСообщенияПользователю; Сообщение.Поле = Поле; ЭтоОбъект = Ложь; #Если НЕ (ТонкийКлиент ИЛИ ВебКлиент) Тогда Если КлючДанных <> Неопределено Тогда Если XMLТипЗнч(КлючДанных) <> Неопределено Тогда ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа; ЭтоОбъект = Найти(ТипЗначенияСтрокой, "Object.") > 0; Иначе ИмяТипа = Строка(ТипЗнч(КлючДанных)); ЭтоОбъект = Найти(ИмяТипа, "Обработка объект")>0 ИЛИ Найти(ИмяТипа, "Отчет объект")>0; КонецЕсли; КонецЕсли; #КонецЕсли Если ЭтоОбъект Тогда Сообщение.УстановитьДанные(КлючДанных); Иначе Сообщение.КлючДанных = КлючДанных; КонецЕсли; Если НЕ ПустаяСтрока(ПутьКДанным) Тогда Сообщение.ПутьКДанным = ПутьКДанным; КонецЕсли; Сообщение.Сообщить(); Отказ = Истина; КонецПроцедуры строчка в модуле набора записей регистра бухгалтерии: ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Проверьте курс",,"Курс", "Объект"); |
|||
7
ЧеловекДуши
12.08.15
✎
12:13
|
(6) Теперь он у тебя будет брать на любой документ, который пытался выполнить запись без "Курса" :)
...ГУАНО код детектид... |
|||
8
ЧеловекДуши
12.08.15
✎
12:14
|
+ Видимо для вас не актуально "Скорость проведения группы документов за пол года" :)
|
|||
9
pro3ri
12.08.15
✎
12:20
|
Ну или вставил кусочек кода:
УстановитьСоответствиеОбъектаИРеквизитаФормы(ЭтотОбъект, "Объект"); перед сообщением пользователю. Тема закрыта. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |