|   |   | 
| 
 | Упр.приложение: Сообщить() как вывести??? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        По идеи он все сообщит, но только по окончанию загрузки     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |