Имя: Пароль:
1C
 
Как красиво отказать ПриОткрытии()
,
0 Shved_72
 
01.09.16
15:57
надо спросить при открытии документа "Хочешь или нет?"
если Нет то не открывать.
но при созданииНаСервере не доступны клиентские оповещения
а приОткрытии используя асинхронные оповещения форма уже открыта и обратно не возвращается, а в обработчике оповщения заркыть нельзя.
чо не так со мной?
1 Nuobu
 
01.09.16
15:57
Назначить другую форму основной.
2 Irbis
 
01.09.16
15:58
ПередОткрытием надо отказывать. А neen уже боржом не поможет
3 Shved_72
 
01.09.16
16:01
(2) нет такого предпопредленного события
4 aleks_default
 
01.09.16
16:02
ПриОткрытии есть параметр Отказ
5 Nuobu
 
01.09.16
16:02
(0) Так же вариант спрашивать на той форме, где оно открывается.
6 Fish
 
01.09.16
16:03
(0) Делай свой обработчик команды открытия. Сначала вопрос, а потом уже открытие формы.
7 Shved_72
 
01.09.16
16:07
(4) есть, но в не есть вызов
ПоказатьВыборЭлемента(ПослеВыбораЭлемента,"Хочешь?",ТекВид);

форма открывается и потом рисуется форма выбора, после выбора переходит в оповещение ПослеВыбораЭлемента и соответсвтенно в ПриОткрытии уже не возвращется для установки Отказа.
да и поздно уже коли форма открыта.
по асинхронной логике так оно и логично вроде все диалоги идут паралельным лесом и не мешают далать задним дела задним фоном.
но как же всетаки отказать крисиво через асинхрон.

Процедуры имеющие отказ это только ПриОткрытии  и ПриСозданииНаСервере вроде.
8 Nuobu
 
01.09.16
16:14
Моих постов, что, совсем не видно?
9 Deon
 
01.09.16
16:15
(8) Мне вот тоже вариант в (1) больше всех нравится
10 Deon
 
01.09.16
16:16
Кстати, можно попробовать событием менеджера документа - ОбработкаПолученияФормы()
Подменяем форму на свою маленькую с вопросом
11 Jokero
 
01.09.16
16:18
(8) правильный ответ как всегда в (1), но до 100 тема по любому доберется))
12 Shved_72
 
01.09.16
16:45
(8) ок. а это единственный вариант?
а через одну форму и ее методы ПриСозданииНаСервере и ПриОткрытии никак чтоли?
13 Nuobu
 
01.09.16
16:54
(12) Можно.
В главной форме создаёшь переменную, которую можно проверить в "ПриОткрытии". Она будет заполняться из "ПриСозданииНаСервере". Заполняться она будет из дополнительногоПараметра, который ты передашь из другой формы.
План следующий:
В "ПриОткрытии", если параметр не передан, то "Отказ = Истина;" и Открывай форму "Нравится", "Хочу" и т.д..
Эта форма по кнопке будет открывать форму документа и передавать туда параметр.
Дальше в твоей форме документа в "приСозданииНаСервере" отлавливаешь параметр и заполняешь реквизит формы, чтобы потом его проверить в "приОткрытии".

О как завернул!
14 Shved_72
 
01.09.16
16:58
Блин.  Я думал уф это красиво
15 Nuobu
 
01.09.16
16:59
(13) "Переменная на форме" имелось ввиду "Реквизит формы"
16 Nuobu
 
01.09.16
17:00
(14) Это ты еще не дублировал кнопки "Записать" и "провести", чтобы к ним прицепить диалоговые модальные окна.
17 aleks_default
 
01.09.16
17:01
А че в обработчике оповещения закрыть-то нельзя?
18 Shved_72
 
01.09.16
17:04
(17) Да можно.  Но не кашерно форме мелькать когда не надо
19 Shved_72
 
01.09.16
17:06
Тогда уж перехватить открытие   ваще левой общей формой спросить Оно тебе надо?
20 aleks_default
 
01.09.16
17:10
По мне так не красиво что-то спрашивать при открытии формы и в зависимости от ответа открывать или нет. Вот ни разу такой надобности не было. Имхо это не нужно.
21 Nuobu
 
01.09.16
17:21
(20) А, блин, точно: если уж пользователь жмакнул на кнопку, то ясно, что он точно хочет глянуть, что там в форме.
22 Deon
 
01.09.16
17:25
Короче, поэкспериментировал. Вот так работает:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если НЕ ОткрыватьБезВопроса Тогда
        Отказ = Истина;
        Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтаФорма);
        ПоказатьВопрос(Оповещение, "Открыть документ?", РежимДиалогаВопрос.ДаНет, 0);
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
        ОткрыватьБезВопроса = Истина;
        ЭтаФорма.Открыть();
    КонецЕсли;
КонецПроцедуры
23 EvgeniuXP
 
01.09.16
17:31
(0) ты ж не девушка :) открывай всё
24 Fragster
 
гуру
01.09.16
17:57
(22)  вот это чудо
25 Fragster
 
гуру
01.09.16
17:57
мне кажется, это ошибка платформы
26 Fragster
 
гуру
01.09.16
17:57
не должно так работать :)
27 Deon
 
01.09.16
18:08
(26) Вообще, я хотел проверить, что будет после ответа на вопрос, когда формы уже нет. А она, оказывается, есть )
28 Shved_72
 
01.09.16
18:19
А ещё рассказывали есть какие то расширения а в них дескрипторы #Перед.
Может так красивей
29 Fragster
 
гуру
01.09.16
18:25
(28) мимо
30 Рэйв
 
01.09.16
18:47
(0)Да позови ты уже эту бухгалтершу на свидание,нуб:-)
31 Рэйв
 
01.09.16
18:48
хочешь или нет, какая романтика!:-)
32 Torquader
 
01.09.16
23:24
(27) Форма есть, пока на неё ссылается хоть одна переменная.
Можно сделать проще - закрыть форму, если отказались от открытия.

Ну или, самый простой вариант - открывать не саму форму, а форму вопроса, из которой уже открывать основную форму.