Имя: Пароль:
1C
1С v8
Чем можно объяснить падание платформы?
,
0 undertaker
 
02.03.15
17:32
Если управляемая форма, у которой есть элемент Список (некий динамический список неких документов) и ДополнительнаяПанель (вид "Обычная группа"). На этой панели расположены текстовые элементы, которые выводят данные в зависимости от текущей строки списка, то есть при активизации строки туда что то пишется.

Есть вот такой код

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    //
    Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
        
        Элементы.ДополнительнаяПанель.Видимость = Ложь;
        
    Иначе    
        
        Элементы.ДополнительнаяПанель.Видимость = Истина;
        
        УстановитьНадписьКнопкиРедактированиеЗапрещено();
        
        УстановитьВидимостьГруппыШК();
    
    КонецЕсли;
    
КонецПроцедуры

ТО есть если Элементы.Список.ТекущиеДанные = Неопределено, то доп панель не видна.

И вот тут то и начинаются проблемы. Если оставить код как есть

Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
        
    Элементы.ДополнительнаяПанель.Видимость = Ложь;
        
Иначе    
        
    Элементы.ДополнительнаяПанель.Видимость = Истина;
        
КонецЕсли;

то 1С падает. Если в обоих случаях проставить только Ложь или только Истина, ну то есть например так

Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
        
    Элементы.ДополнительнаяПанель.Видимость = Ложь;
        
Иначе    
        
    Элементы.ДополнительнаяПанель.Видимость = Ложь;
        
КонецЕсли;


то 1С не падает.

Стабильно проявляется и на 8.3.4.496 и на 8.3.5.1460 и на 8.3.6.1804

Понятно, что какой то косяк в платформе, но почему он может проявляться так интересно?
1 palpetrovich
 
02.03.15
17:36
какртинку выложил-бы что-ли ...что там за доп-панель такая?
2 undertaker
 
02.03.15
17:38
3 alle68
 
02.03.15
17:48
(0) Отладчик запусти и увидишь, кто "накосячил".
Я ставлю на автора.
4 palpetrovich
 
02.03.15
17:51
(2) 8.2.19.76 - не "падает" ..правда я не знаю как оно может быть Неопределено
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    Если Элементы.Список.ТекущиеДанные = Неопределено Тогда
        Элементы.Группа1.Видимость = ложь;
    Иначе    
        Элементы.Группа1.Видимость = Истина;
    КонецЕсли;
КонецПроцедуры
5 undertaker
 
02.03.15
17:53
(3)
Вот код, в чем косяк?

Если Элементы.Список.ТекущиеДанные = Неопределено Тогда        
    Элементы.ДополнительнаяПанель.Видимость = Ложь;        
Иначе        
    Элементы.ДополнительнаяПанель.Видимость = Истина;    
КонецЕсли;
6 undertaker
 
02.03.15
17:54
(4) Неопределено будет если например на форме выбрать период, в котором нет документов, то есть список будет пустым
7 palpetrovich
 
02.03.15
17:54
+(4) вот так "падает" ...но оно и понятно :)

&НаКлиенте
перем вид;

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
        если вид тогда
            вид = ложь;
        Иначе    
            вид = Истина;
        КонецЕсли;    
        Элементы.Группа1.Видимость = вид;
КонецПроцедуры
8 undertaker
 
02.03.15
17:56
(7) похожая ситуация... а почему падает? :) не понятно....
9 ДенисЧ
 
02.03.15
17:58
ПриАктивизацииСтроки нельзя звать сервер...
10 palpetrovich
 
02.03.15
18:02
(8) платформа падает из-за кучи вызовов
11 undertaker
 
02.03.15
18:04
(9), (10)

ясно, понятно, спасибо :)
12 ktvladimir
 
02.03.15
18:16
Сори что в этой ветке

А можете тогда объяснить другую штуку Обычное приложение. на форме табличное поле вида дерево. Кода НЕТ если там 1 ветка то при ее интерактивном удалении 1С вылетает. если несколько то удаляются все ветки корректно, в том числе и первая. когда пытаешься удалить последнюю ветку 1с вылетает. Все это происходит если в ветке есть другие ветки те больше 1 уровня

если же в последней ветке удалять последовательно снизу вверх то последняя ветка удаляется нормально (не всегда иного все равно вылетает)...

Я так и не разобрался с этой фичей 1С) и тупо ставлю заглушки типа не  удалять последнюю строчку))
13 Гёдза
 
02.03.15
18:21
программа уходит в бесконечный цикл и падает. приактивизации лучше не дергать серверные вызовы
14 ktvladimir
 
02.03.15
18:27
(13) если это мне то у меня кода нет вообще) изначально думал, что я где то накосячил. потом тупо создал обработку. в ней нарисовал дерево. ручками интерактивно нарисовал дерево и так тренировался. вылетает). 1с 8.2. 17 платформа потом на 19 поменяли тоже самое. уже все плюнули и смирились, но до сих пор интересно почему так)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс