Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 8.2 + Управляемые формы + дерево значений + контекстное меню = проблемы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
kentavr27
Исходные данные:

Платформа: 8.2.14.528
Режим работы: управляемое приложение, тонкий клиент
Журнал документов. На форме журнала динамический список с документами и дерево значений, которое служит для отображения подчиненных документов.

Задача: на дереве значений при правом клике вывести контекстное меню, которое может изменяться программно в зависимости от активного вида
документа на момент клика на дереве значений.

Попытка решения: Основное контекстное меню дерева значений построено в конфигураторе. При активизации строки дерева значений некоторые пункты контекстного меню
перестраиваются (меняется доступность, меняются заголовки, добавляются некоторые пункты, например для ввода на основании
n-ных видов документов).

Изменения пунктов меню происходит где-то так:
&НаКлиенте
Процедура ДеревоДокументовПриАктивизацииСтроки(Элемент)
    Элементы.ДеревоДокументов_ТекущийДокумент.Заголовок=Элемент.ТекущиеДанные.С
сылка;
    Элементы.ДеревоДокументов_ТекущийДокумент.Картинка=ВернутьКартинкуДокумента(Элемент.ТекущиеДанные.Ссылка);
    Элементы.ДеревоДокументов_ТекущийДокумент.Доступность=Ложь;
КонецПроцедуры


Проблема: при попытке изменить содержание контекстного меню (в процедуре ПриАктивизацииСтроки()) эта же процедура отрабатывает самостоятельно
вновь. И все бы ничего, но при повторной отработке текущая строка дерева значений становится всегда первой, на какой бы
ветке дерева я не находился в данный момент.
Соответственно, после того, как текущая строка дерева самостоятельно изменилась, процедура ПриАктивизацииСтроки() отрабатывает в третий раз.

Т.е. из-за такого поведения системы пользователю невозможно получить контекстное меню строк дерева значений, которые находятся ниже первой строки.

Если отключить программную перестройку содержания контекстного меню, то все отрабатыват в штатном режиме.

Вопрос: может быть кто-то сталкивался с подобной проблемой, и у него появились варианты обхода подобного глюка?
Есть ли какие-нибудь мысли по поводу вышеизложенного? Как можно обойти данную проблему отображения
не жертвуя функциональностью системы.

Заранее благодарен за дельные мысли.
DartRomanius
Не использовать серверные вызовы в "ПриАктивизацииСтроки".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.