Имя: Пароль:
1C
1С v8
Помогите найти причину. Программа ведет себя по разному для двух пользователей
0 Cerera
 
06.08.13
17:31
Не могу понять - как так то?

Запускаю два экземпляра одной и той же базы на двух компьютерах. Под одним пользователем запускаю обработку
- выдается ошибка. Под другими - нормально проходит. В отладчике шаг за шагом одновременно прогоняю обработку
и вот на одном месте я встречаю странное поведение. Помогите мне отловить причину возникновения проблемы.
А сейчас подробнее:

Конфигурация: "управление торговлей и взаимоотношениями с клиентами crm редакция 1.1"
Обработка: CRM_РабочийСтол

Отладка в форме: "ФормаАРМ"
Форма вызвана из формы "ПанельУправления" этой же обработки при помощи метода "ПолучитьФорму".

Вопрос вот в чём. Оба отладчика стоят на последней строчке формы "ФормаАРМ"
при нажатии F11 под одним пользователем, мы попадаем в обработчик этой же формы "ЗадачаСписокПриАктивизацииСтроки"
- это обработчик списка задач, срабатывающий при активации строки. этот список имеет тип: "ЗадачаСписок.CRM_Задача"

Само тело обработчика:


Процедура ЗадачаСписокПриАктивизацииСтроки(Элемент)
    
    ОбработкаЖурналБизнесПроцессов._СписокЗадачиПриАктивизацииСтроки(ЭтаФорма, Элемент);
        
    ПодключитьОбработчикОжидания("ОбработчикОжиданияЗадачаСписокПриАктивизацииСтроки",0.1,Истина);
        
КонецПроцедуры


Во второй базе при нажатии F11, вызова этого обработчика не происходит, а мы попадаем обратно  в вызвающую форму
в строчку следующую  после вызова предыдущей формы. вот код:

ФормаАРМ = ПолучитьФорму("ФормаАРМ",ЭтаФорма);
ФормаПанельУправления = ЭтаФорма;

Я не могу понять как такое может быть. В обеих базах обработчик висит на активации строки списка. В первом случае
он вызывается, а во втором случае нет. При этом в первом случае возникает ошибка - не должен этот обработчик пока ещё
вызываться.

Просто не понятно как мне отловить ошибку? В отладчике смотрю значения "ЭтотОбъект" - принципиальных отличий не вижу.
Стек вызовов идентичный.

я специально в базе удалил даже все справочники, документы, регистры очистил. И методом исключения понял, что дело тут в объекте "Задача". Если удалить все задачи пользователя, у которого выходит ошибка, мы попадаем уже куда положено без ошибки. но не ясно мне как такое может быть.
1 х86
 
06.08.13
17:36
кеш чистил?
2 Cerera
 
06.08.13
17:37
(1)да. совершенно не в кешах дело (( удалил сохраненные настройки пользователя. и запускал на разных компьютерах.
3 Cerera
 
06.08.13
17:39
Как хотя бы узнать какие обработчики должны сейчас сработать в форме
4 Галахад
 
гуру
06.08.13
17:41
Наверное, тут надо смотреть

Форма вызвана из формы "ПанельУправления" этой же обработки при помощи метода "ПолучитьФорму".
5 Tedman
 
06.08.13
17:43
(0) А права у этих пользователей одинаковые?
6 Tedman
 
06.08.13
17:44
Может как-то хитро RLS настроены?
7 Cerera
 
06.08.13
17:48
(4)да именно так.
(5)одинаковые. даже я говорю что если из базы удалить все объекты "задача", то ошибка пропадает.
(4)ну вот я и смотрю. отладчиком дохожу до этой строчки "получитьФорму" и попадаю в форму "ФормаАРМ". хожу через F11 пошагово - прохожу небольшой код и попадаю на последнюю строчку формы. и при нажатии на F11, в одном случае срабатывает обработчик, а в другом случае мы возвращаемяся обратно в вызывающую форму.
8 Галахад
 
гуру
06.08.13
17:49
(7) Ну и что там?
9 Cerera
 
06.08.13
17:57
(8)где? во момент вызова "получатьФорму" всё происходит одинаково. ведь базы идентичны.
10 Смотрящий от 1С
 
06.08.13
18:39
Ставлю на права. Ключевое слово в вопросе "под одним пользователем работает, под другим нет"
11 disk-2008
 
06.08.13
18:44
Платформа одна вызывается?
У меня на какой-то версии были аналогичные проблемы с F11 при полных правах.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший