Повторное выполнение обработчика команды, размещенной в панели навигации
Всем привет!
Добавил новую команду, разместил ее в панели навигации формы элемента справочника.
В обработчике команды открываю форму другого справочника, исходя из значений, указанных на форме текущего - ОткрытьФорму("Справочник.ИмяСправочника.Форма.ФормаЭлемента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
Форма открывается, все ок. Но сам модуль команды выполняется только один раз, сколько бы я не нажимал на гиперссылку. Собственно, как сделать так, чтобы обработчик выполнялся при каждом нажатии на команду из панели навигации.
Перепробовал различные варианты ОткрытьФорму, ничего не помогает. Нашел очень много упоминаний об указанной проблеме, но нигде нет решения.
Добавил новую команду, разместил ее в панели навигации формы элемента справочника.
В обработчике команды открываю форму другого справочника, исходя из значений, указанных на форме текущего - ОткрытьФорму("Справочник.ИмяСправочника.Форма.ФормаЭлемента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
Форма открывается, все ок. Но сам модуль команды выполняется только один раз, сколько бы я не нажимал на гиперссылку. Собственно, как сделать так, чтобы обработчик выполнялся при каждом нажатии на команду из панели навигации.
Перепробовал различные варианты ОткрытьФорму, ничего не помогает. Нашел очень много упоминаний об указанной проблеме, но нигде нет решения.
Найденные решения
(16) потому что ваша логика - не стандартная. Открывать отдельные окна вы не хотите, а в панели навигации логика у 1С единая - "одна команда - одна вкладка". Для вашей задачи могу предложить только вариант по динамическому созданию страниц формы у элемента справочника, придется изрядно помудрить, но думаю решить реально. Вопрос только в целесообразности.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) На первом скрине команда "Открыть форму доп. справочника" и где она расположена.
Щелкаю на гиперссылку на скрине 2 - в этой же форме открывается форма доп. справочника(обработчик команды):
ОткрытьФорму("Справочник.ИмяСправочника.Форма.ФормаЭлемента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
Нажимаю на гиперссылку еще раз - обработчик команды больше не отрабатывает.
Щелкаю на гиперссылку на скрине 2 - в этой же форме открывается форма доп. справочника(обработчик команды):
ОткрытьФорму("Справочник.ИмяСправочника.Форма.ФормаЭлемента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
Нажимаю на гиперссылку еще раз - обработчик команды больше не отрабатывает.
Прикрепленные файлы:
(3)Я больше 10 лет занимаюсь 1ской, я никогда даже не задумывался об этом, ибо я даже подумать не могу зачем вам это вообще надо. Только ради любопытства проверю как будет время.
Вопрос, вы что хотите вообще сделать? Давайте с самого начала. Может Вы вообще не в ту сторону смотрите.
Вопрос, вы что хотите вообще сделать? Давайте с самого начала. Может Вы вообще не в ту сторону смотрите.
(4)все просто - выводить вспомогательные данные для указанного справочника в той же форме элемента, для того, чтобы с точки зрения пользователя это было одним объектом, а не куча вспомогательных форм, которые открываются поверх уже открытой.
На самом деле, подход довольно распространенный, используется в той же УНФ.
На самом деле, подход довольно распространенный, используется в той же УНФ.
(8) все понял. Принцип размещения команды в Панели навигации формы как раз в том, чтобы отображать что-то в том же окне, а не открывать новых. Можно сделать так:
Но выглядеть это будет не очень логично (попробуйте).
Как мне кажется, лучше для такого поведения команду размещать в Командная панель формы.Важное
ОткрытьФорму("Справочник.Номенклатура.ФормаСписка", ПараметрыФормы, , Истина, , ПараметрыВыполненияКоманды.НавигационнаяСсылка);
Но выглядеть это будет не очень логично (попробуйте).
Как мне кажется, лучше для такого поведения команду размещать в Командная панель формы.Важное
(11) пробовал ранее, так форма открывается поверх уже открытой, а нужно именно в существующей и с панели навигации.
Суть все-таки в том, чтобы понять, можно что-то сделать с обработчиком, который отрабатывает только один раз или нет.
Повторюсь, видел кучу постов с такой проблемой, но нигде нет решения.
Суть все-таки в том, чтобы понять, можно что-то сделать с обработчиком, который отрабатывает только один раз или нет.
Повторюсь, видел кучу постов с такой проблемой, но нигде нет решения.
(14) я уже ответил, что панель навигации так не работает, чтобы в существующей открывать новые вкладки. По указанному примеру открываются окна отдельные - каждый раз новые при нажатии. И выглядит это странно, т.к. при нажатии на ссылку в панели навигации окно (как вкладка) открываться должно одно.
Размещайте в командной панели формы. Либо создавайте несколько команд, чтобы в панели навигации было несколько вкладок.
Размещайте в командной панели формы. Либо создавайте несколько команд, чтобы в панели навигации было несколько вкладок.
(16) потому что ваша логика - не стандартная. Открывать отдельные окна вы не хотите, а в панели навигации логика у 1С единая - "одна команда - одна вкладка". Для вашей задачи могу предложить только вариант по динамическому созданию страниц формы у элемента справочника, придется изрядно помудрить, но думаю решить реально. Вопрос только в целесообразности.
(26) Спрашивал для того, чтобы решить следующую задачу - когда пользователь вернется на основную форму (в том числе и путем нажатия на гиперссылку "Основное" на панели навигации), необходимо сделать модифицированной основную форму, если Модифицированность = Истина у дополнительной.
Пока на ум не приходит ничего, кроме обработчика ожидания, который будет постоянно проверять, а не модифицирована ли дополнительная форма и в этом случае выставлять модифицированность для основной формы.
Может посоветуете что-то более рациональное?
Пока на ум не приходит ничего, кроме обработчика ожидания, который будет постоянно проверять, а не модифицирована ли дополнительная форма и в этом случае выставлять модифицированность для основной формы.
Может посоветуете что-то более рациональное?
(10)
А обработчик команды выполняется только один раз; в этом вся проблема.
Почему это является проблемой? Всё работает так, как и задумано платформой. Вы открыли форму элемента справочника Договоры, нажали на гиперссылку – открылась форма в том же окне. Логически она относится к уже открытой форме элемента справочника Договоры. Нажали на Основное – вернулись на форму элемента, нажали на гиперссылку – снова перешли в уже открытую доп. форму. Зачем еще раз выполнять команду и открытие дополнительной формы?
(18)
хотя бы потому, что изменились данные на форме и требуется выполнить ту же команду уже с другими параметрами и ожидать другой результат ее выполнения.
Другое дело, что мои ожидания отличаются от того
Зачем еще раз выполнять команду и открытие дополнительной формы?
хотя бы потому, что изменились данные на форме и требуется выполнить ту же команду уже с другими параметрами и ожидать другой результат ее выполнения.
Другое дело, что мои ожидания отличаются от того
как это задумано платформой
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот