Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: gentay от 08 октября 2024, 09:47

Название: Вылет 1С 7.7
Отправлено: gentay от 08 октября 2024, 09:47
При использовании в коде работы с окном сообщений - вылетает 7.7 Причем памятный вылет состоялся только тогда, когда были дописаны 2 строки ОС.Очистить и ОС.Видимость(0). Закрылось окно и 1С вместе с ним
1С 7.7 027 Бухгалтерия Проф
Название: Re: Вылет 1С 7.7
Отправлено: АЛьФ от 08 октября 2024, 10:04
Вылетает стабильно на этом коде? На тестовой вылетает?
Название: Re: Вылет 1С 7.7
Отправлено: gentay от 08 октября 2024, 11:56
Извините, не совсем понял вопрос. Вылетело только на этом коде. Я убрал сразу и не экспериментировал более. Само собой на тестовой. Если это головняково разбираться - забейте, я обойдусь и без этого
Название: Re: Вылет 1С 7.7
Отправлено: АЛьФ от 08 октября 2024, 13:18
Не головняково, хотелось бы разобраться в причинах вылета и поправить.
Этот код где именно вызывался?
Название: Re: Вылет 1С 7.7
Отправлено: gentay от 08 октября 2024, 15:20
В модуле форме документа. Цель была такой - если выбираешь адрес, а там нет прайса, то с помощью вашей ВК в окне сообщений пишет что нет прайса. Пользователь типа в себе и меняет адрес с прайсом. Цель была что ВК ищет строку "Нет прайса", если находит и строка одна, ВК очищает и закрывает ОС. И, как я писал выше, до момента написания 2 строчек кода - все работало, находило. После 2 строк кода 1С решила тоже выйти из чата 
Название: Re: Вылет 1С 7.7
Отправлено: АЛьФ от 08 октября 2024, 18:32
Попробую смоделировать.
Название: Re: Вылет 1С 7.7
Отправлено: gentay от 09 октября 2024, 14:00
Там в принципе нечего повторять.
Перем ОС;

ПриОткрытии ()
ОС = СоздатьОбъет("ОкноСообщений");
КонецПроцедуры

ИзмАдрес()
Если ПустоеЗначение(Адрес.Прайс) = 1 Тогда
   ОС.Сообщить("Нет прайса", "!!!");
   ОС.Видимость(1);
Иначе
   Есть = 0;
   Для инд = 1 по ОС.КоличествоСтрок() Цикл
      Текст = "";
      ОС.ПолучитьСтроку(инд, Текст);
      Если Найти(Текст,"Нет прайса") <> 0 Тогда
          Есть = 1;
          Прервать;
      КонецЕсли; 
   КонецЦикла;
     
   Если Есть = 1 Тогда
       Ос.Очистить();
       ОС.Видимость(0);
   КонецЕсли
 
   Кстати вопрос - а удалить строку из окна сообщений можно? Если да, то как?


 
Название: Re: Вылет 1С 7.7
Отправлено: АЛьФ от 09 октября 2024, 17:01
Цитата: gentay от 09 октября 2024, 14:00Кстати вопрос - а удалить строку из окна сообщений можно? Если да, то как?

Нет, не получится.
Название: Re: Вылет 1С 7.7
Отправлено: Злоп от 09 октября 2024, 17:34
А если получить текст содержимого окна, очистит окно, прочитать строки, пропустить ненужную, вывести в окно нужные...?
Название: Re: Вылет 1С 7.7
Отправлено: gentay от 10 октября 2024, 09:14
Вариант. Но только когда можно будет использовать
Название: Re: Вылет 1С 7.7
Отправлено: Arbuz от 11 октября 2024, 17:42
Это неверное использование концепции окна сообщений. Это же лог, по сути. Зачем из него удалять строки? Жаль, плавающая форма не взлетела.
Название: Re: Вылет 1С 7.7
Отправлено: Злоп от 11 октября 2024, 18:08
Согласен с Кавуном.
Выводи то что надо в одно ОС, что не надо - в другое ОС.
Если так не получается (консерватория кривая какая-то), тогда вывел в ОС, ОС сохранил - дальше парсить его как надо...