Не выводится окно сообщение во внешшней обработке #659830


#0 by ArtVC
Здравствуйте. ИБ ЗУП. В конфигурации в общем модуле есть такой код: ТекстСообщения = "Внимание! Вставил функцию с этим кодом в свою обработку табличной части документа - в дебагере интерпретатор заходит в эту секцию, добавляет строки в цикле в "ОбработкаКомментариев" но не выводит содержимое; а при выполнении этого кода, когда он вызывается из самого документа-объекта, т.к. в конфигурации, содержимое выводится. Подскажите, почему не выводятся эти сообщения, да и как они вообще могут выводиться? В конфигурации всего кроме вышеприведённого кода ничего не нашёл, а кажется, что должен быть где-то вызван метод "Вывести" или его подобие, чтобы показать окно с сообщениями. Что мне искать?
#1 by Has
встал курсором на глЗначениеПеременной нажимаю F12 -> переход в глоб. модуль встал на ПолучитьЗначениеПеременной нажимаю F12 -> переход в общ. модуль РаботаСОбщимимиПеременными ищу текст глОбработкаСообщений вывод ОбработкаКомментариев это экземпляр обработки СообщенияВыполняемыхДействий в общем, как говорится, отладчик в зубы и вперед F11
#2 by ArtVC
У меня версия ИБ 2.5.61.1, так что модули немного отличаются: РаботаСОбщимимиПеременными - это у меня "ОбщегоНазначения" а процедура в нём: Функция ПолучитьЗначениеПеременной(ИмяПараметра, Кэш = Неопределено, КэшИзменен = Ложь) Экспорт Прошёл дебагером весь процесс заполнения табличной части - отличий от своего кода (от пути выполнения в своей обработки) не нашёл. Вообще код, который я приводил в первом посте, находится в общем модуле ЗарплатаКВыплатеОрганизацийПереопределяемый в экспортной процедуре. Не знаю, как я раньше этого не заметил, но т.к. процедура в нём экспортная, то решил просто вызвать её из этого модуля, и опять же ничего не изменилось. Мне интересен именно механизм вывода окна с сообщением (думаю, ОбработкаКомментариев - это оно и есть, раз в него добавляются строки текста, и у него по идее я бы вызывал метод в c++)- в какой момент производится его вывод, вы не могли бы мне подсказать? Какая строка кода показывает это окно?
#3 by Has
глобальным поиском нашел ОбработкаКомментариев.ПоказатьСообщения; следующий код во внешней обработке работает (выдает сообщения)
#4 by ArtVC
Да, спасибо, это дело работает. Но в моём случае ОбработкаКомментариев.ПоказатьСообщения; пишется в процедуре, которая завершается, передаёт управление наверх; и по какой-то причине окно с сообщениями очищается, становится просто пустым. Ставил точку останова сразу после строки ОбработкаКомментариев.ПоказатьСообщения; - в предприятии выводятся сообщения, как и должны выводиться, а затем исчезают. Кроме использования глобальной переменной ОбработкаКомментариев нет идей? )
#5 by Has
поискать выше по коду процедуру ОчиститьСообщения;
#6 by ArtVC
Ещё раз прошёлся дебагером, не нашёл. Но выяснил, что окно очищается не сразу при выходе из процедуры вышеприведённым кодом, а при выполнении строки ДокОбъект.Записать(РежимЗаписи); в вышестоящей процедуре. Что такое ДокОбъект: ДокОбъект = СсылкаНаОбъект.ПолучитьОбъект; где СсылкаНаОбъект говорит сама за себя.
#7 by ArtVC
Проблема была в том, что я записывал документ методом .Записать, в котором очищались сообщения. Спасибо за поддержку.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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