|
веб-клиент. ОткрытьФорму() в ПриОткрытии | ☑ | ||
---|---|---|---|---|
0
mr_K
12.10.17
✎
15:48
|
Есть обработка. В ней основной назначена некая сервисная форма, у которой в ПриОткрытии проверяется какую форму открыть и выполняется открытие.
Код простой (это в сервисной форме): &НаКлиенте Процедура ПриОткрытии(Отказ) Отказ = Истина; ДоступПользователя = ПроверитьПользователяНаДоступ(); Если ДоступПользователя = "Количество" Тогда ОткрытьФорму("Обработка.ОценкаКачества.Форма.УправляемаяФормаКоличество"); ....... В веб-клиенте получаю сообщение "Использование модальных окон в данном режиме запрещено" В СП про ОткрытьФорму прочитал все много раз. Нигде про модальность нет. В конфигурации даже включил режим использования модальности. Не помогает. Есть идеи, как побороть? |
|||
1
Mort
12.10.17
✎
15:50
|
А каким кодом открывается сервисная форма?
И если уже на то пошло - форму нужно определять в менеджере обработки в соответствующем событии, а не через гланды. |
|||
2
mr_K
12.10.17
✎
15:53
|
Сервисная открывается интерактивно.
"И если уже на то пошло - форму нужно определять в менеджере обработки в соответствующем событии, а не через гланды." - а что здесь через гланды? Обработка. Внутри одной формы вызывается открытие другой. Все корректно. Но не пашет. |
|||
3
Филиал-msk
12.10.17
✎
15:57
|
(2) Через глубочайшие гланды здесь конкретно вот это:
Рады были помочь, приходите еще. |
|||
4
Филиал-msk
12.10.17
✎
15:59
|
(0) Да и про СП ты нап... обманул:
|
|||
5
mr_K
12.10.17
✎
16:01
|
(3) в данном случае - шли мимо, вот и ходите).
Там несколько категорически разных форм, в зависимости от пользователя должна открываться какая-то одна. Как это реализовать иначе? Нет понятно, что варианты есть. Но этот - самый очевидный и читаемый. (4) Смотрим в книгу - видим фигу. Где я писал, что это внешняя обработка? Где здесь "программное открытие и закрытие одной и той же формы в одном вызове"? |
|||
6
Mort
12.10.17
✎
16:02
|
(2) Открывать левую форму чтобы открыть другую это и есть через гланды, когда существует событие специально для этого. Экономия серверных вызовов хотя бы.
А по поводу ошибки - ищи отладчиком модальный вызов. Может быть он и тут "ПроверитьПользователяНаДоступ();" сидит. |
|||
7
mr_K
12.10.17
✎
16:04
|
ПроверитьПользователяНаДоступ - там просто запрос. Результат которого эта функция и возвращает.
"когда существует событие специально для этого" - а можно с этого места поподробнее? |
|||
8
Mort
12.10.17
✎
16:05
|
ОбработкаМенеджер.<Имя обработки>.ОбработкаПолученияФормы (DataProcessorManager.<Имя обработки>.FormGetProcessing)
ОбработкаМенеджер.<Имя обработки> (DataProcessorManager.<Имя обработки>) ОбработкаПолученияФормы (FormGetProcessing) Синтаксис: ОбработкаПолученияФормы(<ВидФормы>, <Параметры>, <ВыбраннаяФорма>, <ДополнительнаяИнформация>, <СтандартнаяОбработка>) Параметры: <ВидФормы> Тип: Строка. Имя стандартной формы. <Параметры> Тип: Структура. Параметры формы. <ВыбраннаяФорма> Содержит имя открываемой формы или объект метаданных Форма. Если значение параметра изменено, то будет осуществлен поиск формы в пределах объекта, для которого открывается форма. <ДополнительнаяИнформация> Тип: Структура. Дополнительная информация открытия формы. Структура, содержащая поле ПовторноеИспользование (Reuse) типа Булево, которое указывает, кешируется ли форма на стороне клиента. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет (выбираются установленные разработчиком форма и параметры). Значение по умолчанию: Истина. Описание: Обработчик события вызывается на сервере при получении стандартной управляемой формы. Если требуется переопределить выбор открываемой формы, необходимо установить в параметре <ВыбраннаяФорма> другое имя формы или объект метаданных формы, которую требуется открыть, и в параметре <СтандартнаяОбработка> установить значение Ложь. Замечание: Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации. |
|||
9
Юрий Лазаренко
12.10.17
✎
16:09
|
(2) В интерфейсе у тебя должна быть кнопка или ссылка для открытия формы. Сейчас она скорее всего прицеплена к стандартному обработчику открытия формы, поэтому открывается форма обработки по умолчанию. Замены эту кнопку/ссылку на кнопку команды. В модуле команды определяй, какая форма нужна, и открывай сразу ее.
Или если все-таки через гланды хочется, то открывай из формы обработки по умолчанию, но не в процедуре ПриОткрытии. В процедуре ПриОткрытии запускай однократно обработчик ожидания с периодом 0.1 сек., открывай в нем нужную форму, а основную форму закрывай. |
|||
10
mr_K
12.10.17
✎
16:18
|
(8) Тут такое дело..С этой обработкой работатют как в управляемом так и в обысном приложении. В котором ОбработкаПолученияФормы - не отрабатывает.
Ок. Для обычного оставляю текущий код, для управляемого в менеджере пропишу. Но мне так и не понятно, почему метод в (0) не работает. (9) В веб-клиенте - переход происходит вообще из вне по ссылке. в обычном приложении - через меню. |
|||
11
mr_K
12.10.17
✎
16:27
|
(9) Метод через гланды в веб-клиенте ошибок не выдает, форму не открывает)
|
|||
12
Юрий Лазаренко
12.10.17
✎
17:26
|
(10) >> переход происходит вообще из вне по ссылке. в обычном приложении - через меню
Ну вот надо в меню разместить кнопку команды, и в модуле команды выбирать и открывать нужную форму. |
|||
13
breezee
12.10.17
✎
18:37
|
Попробуйте использовать "ПриСозданииНаСервере"
|
|||
14
mr_K
13.10.17
✎
08:58
|
(12) В обычном приложении, где переход из меню происходит - проблем нет. Проблемы в веб-клиенте, куда переход осуществляется по http ссылке. В ней указать форму я не знаю как. Если есть такая возможность, буду благодарен за подсказку.
|
|||
15
mr_K
13.10.17
✎
09:00
|
(13) Таже ерунда, что описал в (10). В обычном клиенте нет такой процедуры. Тут цель была написать универсальный код, отрабатывающий в любых ситуациях. С точки зрения документации 1С и СП он и был написан. Но почему-то не работает.
|
|||
16
mr_K
17.10.17
✎
15:50
|
немного апну:
Самое смешное, что ОбработкаПолученияФормы в вебклиенте не отрабатывает. Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДоступПользователя = ПроверитьПользователяНаДоступ(); Если ДоступПользователя = "Количество" Тогда ВыбраннаяФорма = "УправляемаяФормаКоличество"; ...... в тонком клиенте - ок. в вебклиенте - фигу. Повторю вопрос: как в вебклиенте переопределить открываемую форму обработки. Переход к обработке происходит по внешней ссылки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |