При использовании в коде работы с окном сообщений - вылетает 7.7 Причем памятный вылет состоялся только тогда, когда были дописаны 2 строки ОС.Очистить и ОС.Видимость(0). Закрылось окно и 1С вместе с ним
1С 7.7 027 Бухгалтерия Проф
Вылетает стабильно на этом коде? На тестовой вылетает?
Извините, не совсем понял вопрос. Вылетело только на этом коде. Я убрал сразу и не экспериментировал более. Само собой на тестовой. Если это головняково разбираться - забейте, я обойдусь и без этого
Не головняково, хотелось бы разобраться в причинах вылета и поправить.
Этот код где именно вызывался?
В модуле форме документа. Цель была такой - если выбираешь адрес, а там нет прайса, то с помощью вашей ВК в окне сообщений пишет что нет прайса. Пользователь типа в себе и меняет адрес с прайсом. Цель была что ВК ищет строку "Нет прайса", если находит и строка одна, ВК очищает и закрывает ОС. И, как я писал выше, до момента написания 2 строчек кода - все работало, находило. После 2 строк кода 1С решила тоже выйти из чата
Попробую смоделировать.
Там в принципе нечего повторять.
Перем ОС;
ПриОткрытии ()
ОС = СоздатьОбъет("ОкноСообщений");
КонецПроцедуры
ИзмАдрес()
Если ПустоеЗначение(Адрес.Прайс) = 1 Тогда
ОС.Сообщить("Нет прайса", "!!!");
ОС.Видимость(1);
Иначе
Есть = 0;
Для инд = 1 по ОС.КоличествоСтрок() Цикл
Текст = "";
ОС.ПолучитьСтроку(инд, Текст);
Если Найти(Текст,"Нет прайса") <> 0 Тогда
Есть = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если Есть = 1 Тогда
Ос.Очистить();
ОС.Видимость(0);
КонецЕсли
Кстати вопрос - а удалить строку из окна сообщений можно? Если да, то как?
Цитата: gentay от 09 октября 2024, 14:00Кстати вопрос - а удалить строку из окна сообщений можно? Если да, то как?
Нет, не получится.
А если получить текст содержимого окна, очистит окно, прочитать строки, пропустить ненужную, вывести в окно нужные...?
Вариант. Но только когда можно будет использовать
Это неверное использование концепции окна сообщений. Это же лог, по сути. Зачем из него удалять строки? Жаль, плавающая форма не взлетела.
Согласен с Кавуном.
Выводи то что надо в одно ОС, что не надо - в другое ОС.
Если так не получается (консерватория кривая какая-то), тогда вывел в ОС, ОС сохранил - дальше парсить его как надо...