|
Упр.приложение: Сообщить() как вывести??? | ☑ | ||
---|---|---|---|---|
0
листопад
24.07.14
✎
23:12
|
БП 3.0.25.9 платформа 8.2 (упр.приложение)
Типовая обработка "КлиентБанк", в модуле менеджера, в типовой процедуре "ОпределитьСсылочныеДанные", вношу строчку, выводящее пользователю сообщение. В файловой копии все срабатывает, т.е. сообщение выводится. Но в клиент-серверной базе - сообщение не выводится. Подскажите, как вывести сообщение в упр.приложении. Ниже код, где я добавила строчку: Сообщить("Не загружена строка выписки по " + СтрокаДокумента.Плательщик); Вот эта процедура с моей строкой (она в конце): Процедура ОпределитьСсылочныеДанные(КешСвойствДокументов, ДокументыДляИмпорта, СтруктураДанныхИмпорта, Организация, БанковскийСчет, ДеревоКонтрагентов, НастройкиПоУмолчаниюДляДокументов, СоздаватьНенайденныеЭлементы, СтекОповещений) Экспорт НомерСтроки = 0; НомерСчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БанковскийСчет, "НомерСчета"); СписокБанковскихСчетовОрганизации = ПолучитьСписокСвоихСчетов(Организация); ДобавитьСлужебныеКолонки(ДокументыДляИмпорта); // Формируем объектные структуры данных. Для каждого СтрокаДокумента Из ДокументыДляИмпорта Цикл // Последовательно обрабатываем каждую загруженную строку. // Распознаем реквизиты. // Если в файле находятся выписки пл. документов по нескольким счетам, то распознаем и отображаем // только те, которые выгружены по указанному банковскому счету. Если СтрокаДокумента.ПлательщикСчет = НомерСчета ИЛИ СтрокаДокумента.ПолучательСчет = НомерСчета Тогда ПодготовитьДанныеВСтрокедокумента(СтрокаДокумента, Организация, БанковскийСчет, НомерСчета, СписокБанковскихСчетовОрганизации, НастройкиПоУмолчаниюДляДокументов); НомерСтроки = НомерСтроки + 1; СтрокаДокумента.НомерСтроки = НомерСтроки; // Для каждого реквизита (= колонка) надо проверить на пустое значение. Для каждого КолонкаИмпорта Из ДокументыДляИмпорта.Колонки Цикл ПроверитьНаПустоеЗначениеИмпорта(КешСвойствДокументов, СтрокаДокумента, КолонкаИмпорта.Имя, СтруктураДанныхИмпорта[КолонкаИмпорта.Имя]); КонецЦикла; Если ТипЗнч(СтрокаДокумента.Контрагент) = Тип("Строка") ИЛИ ТипЗнч(СтрокаДокумента.СчетКонтрагента) = Тип("Строка") ИЛИ ТипЗнч(СтрокаДокумента.Договор) = Тип("Строка") Тогда // Добавляем реквизиты в табличную часть для дальнейшего использования. СписокНенайденных(СтрокаДокумента, ДеревоКонтрагентов); КонецЕсли; Если ЗначениеЗаполнено(СтрокаДокумента.Документ) Тогда Если СтрокаДокумента.Проведен Тогда СтрокаДокумента.СостояниеДокумента = 0; Иначе СтрокаДокумента.СостояниеДокумента = 2; КонецЕсли; Иначе СтрокаДокумента.СостояниеДокумента = 3; КонецЕсли; Иначе //**************************************************************************** // ***************** я добавила( Сообщить("Не загружена строка выписки по " + СтрокаДокумента.Плательщик); // ***************** я добавила) // *************************************************************************** // Остальные помечаем для последующего удаления. СтрокаДокумента.НомерСтроки = 0; КонецЕсли; КонецЦикла; РаспознатьДанные(ДокументыДляИмпорта, ДеревоКонтрагентов, Организация, БанковскийСчет, НомерСчета, СоздаватьНенайденныеЭлементы, СтекОповещений); // Удалим ненужные строки из таблицы. Количество = ДокументыДляИмпорта.Количество() - 1; Для Ном = 0 По Количество Цикл Если ДокументыДляИмпорта[Количество - Ном].НомерСтроки = 0 Тогда ДокументыДляИмпорта.Удалить(Количество - Ном); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
3
f_vadim
24.07.14
✎
23:28
|
вроде должно быть такое
ОбщегоНазначенияКлиентСервер.СообщитьПользователю |
|||
4
листопад
24.07.14
✎
23:31
|
(3) Смотрела я эту процедуру. Там вообще непонятно как это работает:
Процедура СообщитьПользователю( Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "", Знач ПутьКДанным = "", Отказ = Ложь) Экспорт Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ТекстСообщенияПользователю; Сообщение.Поле = Поле; ЭтоОбъект = Ложь; #Если НЕ (ТонкийКлиент ИЛИ ВебКлиент) Тогда Если КлючДанных <> Неопределено И XMLТипЗнч(КлючДанных) <> Неопределено Тогда ТипЗначенияСтрокой = XMLТипЗнч(КлючДанных).ИмяТипа; ЭтоОбъект = Найти(ТипЗначенияСтрокой, "Object.") > 0; КонецЕсли; #КонецЕсли Если ЭтоОбъект Тогда Сообщение.УстановитьДанные(КлючДанных); Иначе Сообщение.КлючДанных = КлючДанных; КонецЕсли; Если НЕ ПустаяСтрока(ПутьКДанным) Тогда Сообщение.ПутьКДанным = ПутьКДанным; КонецЕсли; Сообщение.Сообщить(); Отказ = Истина; КонецПроцедуры |
|||
5
f_vadim
24.07.14
✎
23:31
|
Там какие-то процедуры фоновыми заданиями запускаются, тады никаких сообщений не будет.
|
|||
6
banco
24.07.14
✎
23:31
|
(2) наверное загрузка идет в фоне. Смотри у процедуры есть параметр СтекОповещений, может это то что тебе нужно
|
|||
7
f_vadim
24.07.14
✎
23:32
|
(4) чо на неё смотреть?
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("сообщение") |
|||
8
banco
24.07.14
✎
23:36
|
(7) ты можешь не смотреть, тебе это ничего не говорит
|
|||
9
листопад
24.07.14
✎
23:39
|
(6) Вы правы, процедура ОпределитьСсылочныеДанные() вызывается из Процедуры ФоноваяЧтениеДокументовКИмпорту()
Как же тогда быть? |
|||
10
f_vadim
24.07.14
✎
23:39
|
(8) ты это к чему?
|
|||
11
f_vadim
24.07.14
✎
23:41
|
попробовать
СтекОповещений.Добавить(Новый Структура("Текст", "сообщение")); |
|||
12
Russiagreat
25.07.14
✎
07:32
|
По идеи он все сообщит, но только по окончанию загрузки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |