Скрипт карточки на кнопку-функцию может вернуть набор значений, которые влияют на дальнейшую логику работы карточки. Об этом подробно написано в документации разработчика. Я же хочу немного прокомментировать данные значения. Пояснения актуальны для DocsVision 4.5, 4.5 SR1 и 4.5 SR2
1 - кнопка становится недоступной
- кнопка-функция блокируется, и становится серой
2 - обновить элементы управления карточки
- Данные из CardData карточки будут отображены в элементах управления формы. Во всех полях, за исключением полей на основной вкладке. На ней они останутся без изменения.
4 - установка режима “только чтение” для карточки
- карточка будет переведена в режим "Только чтение". Пользователь не сможет внести изменения в карточку
8 - закрытие карточки
- карточка будет закрыта. При этом если в ней были сделаны изменения, то пользователю будет отображен диалог с предложением сохранения изменений.
Так же будет вызвано событие "закрытие карточки"
16 — немедленное сохранение изменений
- данные из CardData карточки будут отправлены на сервер.
32 — установка флага изменения данных карточки
- при возврате данного значения карточка будет считать, что в неё внесены изменения. При закрытии вызовется соответствующий диалог.
64 — установка флага сохранения изменений
- карточка будет считать, что все изменения сохранены. Диалог при закрытии не будет отбражен. Значения 32 и 64 исключают друг друга.
1024 – установка флага изменения состояния
- карточка отобразит измененное состояние. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг
4096 – загрузить номер в карточку (если он был изменен)
- карточка отобразит измененный номер. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг
1 - кнопка становится недоступной
- кнопка-функция блокируется, и становится серой
2 - обновить элементы управления карточки
- Данные из CardData карточки будут отображены в элементах управления формы. Во всех полях, за исключением полей на основной вкладке. На ней они останутся без изменения.
4 - установка режима “только чтение” для карточки
- карточка будет переведена в режим "Только чтение". Пользователь не сможет внести изменения в карточку
8 - закрытие карточки
- карточка будет закрыта. При этом если в ней были сделаны изменения, то пользователю будет отображен диалог с предложением сохранения изменений.
Так же будет вызвано событие "закрытие карточки"
16 — немедленное сохранение изменений
- данные из CardData карточки будут отправлены на сервер.
32 — установка флага изменения данных карточки
- при возврате данного значения карточка будет считать, что в неё внесены изменения. При закрытии вызовется соответствующий диалог.
64 — установка флага сохранения изменений
- карточка будет считать, что все изменения сохранены. Диалог при закрытии не будет отбражен. Значения 32 и 64 исключают друг друга.
1024 – установка флага изменения состояния
- карточка отобразит измененное состояние. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг
4096 – загрузить номер в карточку (если он был изменен)
- карточка отобразит измененный номер. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг
Добрый день, Михаил!
ОтветитьУдалитьУ нас 4.5, хотим чтобы после нажатия кнопки-функции карточка закрывалась без диалога с предложением сохранения изменений, используем последовательность DoEvent = 1 + 2 + 16 + 64 + 8, но диалог все равно появляется.
Какую последовательность нужно использовать, чтобы добиться желаемого?
Достаточно использовать 16 + 64 + 8
ОтветитьУдалитьсохранение, установка флага, закрытие
Михаил, разрешите еще вопрос!
ОтветитьУдалитьНаписал скрипт, который прикрепляет к карточке файл (копируя его из шаблона карточки файла), предварительно перенеся туда нек. инфу из карточки. Завершаю Doevent = 2. Скрипт работает нормально, но файл становиться видимым только если карточку закрыть/открыть. Подскажите, может вкладку "документы и ссылки" надо как-то специально обновлять?
Не правда, описанный Вами выше вариант закрытия карточки не работает.
ОтветитьУдалитьВот сценарий:
1. Пользователь создает карточку
2. Пользователь нажимает на кнопку (DoEvent = 16 + 64 + 8)
В этом случае всегда возникает диалог сохранения изменений! Редакция DocsVision 4.5.1966.0
И при этом DocsVision даже не позаботились о том, чтобы ввести в объектную модель функцию сохранения данных карточки!
evengar:
ОтветитьУдалитьВкладка "документы и ссылки" обновляется точно так же, через DoEvent=2
В данном случае это может быть особенность работы определенной версии. Я посмотрю по возможности
myknowledgeshare:
ОтветитьУдалитьРаботает. Проверил на одной из наших машин, которая используется для поддержки:
http://www.youtube.com/watch?v=vJlgkvRVaTo
Может быть влияет какой-нибудь патч.
Данные карточки можно в любом месте скрипта отправить на сервер используя механизм IUpdatable
CardData.Update
А теперь проверьте, пожалуйста, тоже самое для универсального документа.
ОтветитьУдалитьhttp://www.youtube.com/watch?v=rvTwds0OB-U
мне следует написать в тех. поддержку или будут какие-то комментарии?
ОтветитьУдалитьДля универсального документа это ошибка. В версии 1988 она исправлена - только что проверил на данной сборке
ОтветитьУдалитьТолько что проверил на сборке 1988, изменений никаких, при DoEvent = 16 + 64 + 8 возникает абсолютно такое же поведение, как здесь http://www.youtube.com/watch?v=rvTwds0OB-U
ОтветитьУдалитьТот же запрос на сохранение изменений.
Михаил, поднимаю еще раз вопрос !
ОтветитьУдалитьскрипт, который прикрепляет к карточке файл (копируя его из шаблона карточки файла). Завершаю Doevent = 2. Скрипт работает нормально, но файл становиться видимым не всегда, а иногда только если карточку закрыть/открыть.Особенно когда присоединяешь несколько файлов поочереди. Подскажите, может вкладку "документы и ссылки" надо как-то специально обновлять?