Имя: Пароль:
1C
1C 7.7
v7: вылет из 1С
0 nbv8608
 
28.04.15
09:21
Здравствуйте! В общем непонятное мне поведение 1С. Есть процедура(пр() весь код ниже) в модуле формы, назначена клавиша. Все нормально работает, но через n-ое количество нажатий подвисает и закрывается платформа. Или несколько раз отрабатывает строка "ОткрытьФормуМодально("Обработка.РедакторПростойСерии",Конт);" после чего также весело закрывается. Когда в отладчике отслеживаешь так нехорошо не делает, все гуд. В файл построчно записывал что выполняется, совсем смешно. Когда начинается глюк вызывается строка "ОткрытьФормуМодально("Обработка.РедакторПростойСерии",Конт);" После выполняется процедура заново раз 20-30 потом проходит до конца процедуры(совсем до конца) и переходит на строку "Если (Готовность=Перечисление.ПризнПрих.ЦеныГотовы) ИЛИ (Готовность=Перечисление.ПризнПрих.АвтоПротек) Тогда " после на "ОткрытьФормуМодально(Обработка.НоваяПростаяСерия,Конт);" и машет ручкой(закрывается). В формах вызываемых обработок при открытии ничего нет. Понять не могу почему вообще почему он начинает процедуру заново лопатить0_О(((((((((
Процедура пр()
Если (Оплачена=1) ИЛИ (Готовность=Перечисление.ПризнПрих.АвтоПротек) Тогда    
        Если (НулевыеЦены()<>0) И (ПустоеЗначение(Серия)=0) Тогда
            Если Вопрос("Серия уже новая! Все таки вставить другую новую серию?",4)=7 Тогда
                Возврат;
            КонецЕсли;
        КонецЕсли;
        
        Конт=ВозвратКонтекста(Контекст);
        Если (Готовность=Перечисление.ПризнПрих.ЦеныГотовы) ИЛИ (Готовность=Перечисление.ПризнПрих.АвтоПротек) Тогда    
            Если ПустоеЗначение(Серия)=1 Тогда
                //Если Вопрос("Серия в документе не выбрана!!! Ввести НОВУЮ серию?","Да+Нет")="Нет" Тогда
                //    Возврат;    
                //КонецЕсли;    
                ОткрытьФормуМодально("Обработка.НоваяПростаяСерия",Конт);    
            Иначе
                ОткрытьФормуМодально("Обработка.РедакторПростойСерии",Конт);    
            КонецЕсли;
            
        Иначе
            ОткрытьФормуМодально("Обработка.НоваяПростаяСерия",Конт);    
        КонецЕсли;
        
        Если ПустоеЗначение(Конт)=1 Тогда
            Возврат;              
        Иначе
            УстановитьАтрибут("Серия",ПолучитьПустоеЗначение("Справочник.Серии"));  
            УстановитьАтрибут("Серия",Конт);  
            Если Лев(СокрЛП(Пользователь.Код),4)<>"Прих" Тогда
                Если (глПользователь.ПраваСотрудника.Ценообразование2014=1) И (Серия.КодНадбавки=0) Тогда
                    УстановитьЦеныИСуммыВДок2014(Контекст,0,0);
                Иначе    
                    УстанЦеныПрих(Контекст);
                КонецЕсли;    
            КонецЕсли;
        КонецЕсли;
    Иначе    
        Предупреждение("Накладная не оплачена!", 3);
    КонецЕсли;
КонецПРоцедуры
1 nbv8608
 
28.04.15
09:23
Еще более непонятно как он из конца процедуры вдруг лезет сразу в середину(
2 фобка
 
28.04.15
09:46
Там наверное оповещение стоит в открытой форме
3 ЧеловекДуши
 
28.04.15
09:46
Скорей всего писатель, сего гуано кода налипил вызов сей процедуры не только по нажатию клавиши, а и при обновлении формы.
4 ЧеловекДуши
 
28.04.15
09:48
Так же, т.к. это 1С 7.7 то код возможно внешний и выполнен он через ТурбоМД. Или еще как :)

В общем анализируй Глобальный модуль на наличие использование сторонних ВК.

И огласи нам ,каков этот список :)
5 фобка
 
28.04.15
09:49
А, семерка.. Тогда (3)
6 фобка
 
28.04.15
09:51
Либо ты отладчиком вызываешь процедуру которая дергает пр()
7 nbv8608
 
28.04.15
10:03
Всем спасибо. Навели на мысль тут http://www.sql.ru/forum/702644/1s-7-7-otkrytformu. была использована ПриНажатииКнопкиКлавиатуры(_Контекст, Код, Альт, Шифт, Контрол,ФСО) (formex). сделал стандартными средствами, все встало на свои места.
8 NikVars
 
28.04.15
10:05
(0) Не совсем понятно использование Конт, и Контекст. В одном случае гоняешь Конт, в другом Контекст.
9 nbv8608
 
29.04.15
05:28
(8) Самому непонятно, работает и ладно)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший