|
Интерфейс Такси, перечитать форму после выполнения стандартных команд формы | ☑ | ||
---|---|---|---|---|
0
LenaAt
14.12.17
✎
10:11
|
На форму документа помещены стандартные команды формы. После проведения или отмены проведения, установки пометки удаления должна меняться декорация на форме. Но она не меняется после проведения или отмены проведения, но меняется после выполнения команды "Пометить на удаление/Снять пометку". Если выполнить мою команду "Перечитать форму", то все работает как надо. Подскажите, пожалуйста, почему после выполнения одних команд форма перечитывается сама, а после выполнения других не перечитывается. И самое главное - как программно перечитать форму после выполнения стандартных команд формы, таких как Провести, Отменить проведение?
https://hostingkartinok.com/show-image.php?id=ae23998b2587bf50ea26a6cd6f1e21f7 |
|||
1
Остап Сулейманович
14.12.17
✎
10:13
|
(0) Для таких вещей рекомендуют связку "Оповестить"-"ОбработкаОповещения".
|
|||
2
LenaAt
14.12.17
✎
10:15
|
(1) О оповестить в модуль документа поместить в процедуру ПриЗаписи?
|
|||
3
Остап Сулейманович
14.12.17
✎
10:19
|
(2) В модуль документа в ОбработкаПроведения. Или в подписку.
|
|||
4
LenaAt
14.12.17
✎
10:42
|
(3) Что - то не получается
Процедура или функция с указанным именем не определена (Оповестить) <<?>>Оповестить(); (Проверка: Сервер) |
|||
5
1Садовник
14.12.17
✎
10:46
|
Низзя Оповестить на сервере.
Доступность: Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент). |
|||
6
Остап Сулейманович
14.12.17
✎
10:47
|
(4) Да... Тупонул.
"Оповестить" можно вызывать только на клиенте. В таком случае ИМХО без обработчика ожидания не обойтись. |
|||
7
LenaAt
14.12.17
✎
10:48
|
4+ Вот так работает
&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Оповестить(); КонецПроцедуры Отлавливает проведение и отмену проведения. Пометку на удаление не отлавливает. Пометку на удаление отлавливает процедура ПриЗаписи() в модуле документа, но там не работает Оповестить(). |
|||
8
DmitrO
14.12.17
✎
10:50
|
(0)вам надо просто в форме использовать событие ПослеЗаписиНаСервере и в нем менять декорацию на форме (Пометить на удаление/Снять пометку и Провести/Отменить проведение это все запись документа).
|
|||
9
LenaAt
14.12.17
✎
10:50
|
(6) Да все нормально. После выполнения команды Установить пометку удаления/ Снять пометку форма перечитывается сама.
В чем же разница между этой командой и другими? Почему у них разное поведение? |
|||
10
LenaAt
14.12.17
✎
10:52
|
(8) Спасибо большое!!! Так действительно все работает.
|
|||
11
DmitrO
14.12.17
✎
11:03
|
Разница между поведением команд.
Обычный сценарий работы с документами в платформе предполагает, что данные документа не изменяются при проведении, а форма документа отображает данные документа. Соответственно данные отображаемые на форме не изменяться при проведении, поэтому форма не перечитывается при проведении и отмене проведения. |
|||
12
DmitrO
14.12.17
✎
11:04
|
*данные отображаемые на форме не изменятся
|
|||
13
LenaAt
14.12.17
✎
11:27
|
Всё, теперь все работает. Как оказалось, нужно обработать два события:
//**************************************************************************************** &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) Если Объект.Проведен Тогда ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.Проведен48; ИначеЕсли Объект.ПометкаУдаления = Истина Тогда ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.ПометкаУдаления48; Иначе ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.НеПроведен48; КонецЕсли; КонецПроцедуры //**************************************************************************************** &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) Если Объект.Проведен Тогда ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.Проведен48; ИначеЕсли Объект.ПометкаУдаления = Истина Тогда ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.ПометкаУдаления48; Иначе ЭтотОбъект.Элементы.КартинкаГалка.Картинка = БиблиотекаКартинок.НеПроведен48; КонецЕсли; КонецПроцедуры ПослеЗаписиНаСервере отлавливает проведение - отмену проведения, а ПриЧтенииНаСервере пометку удаления - снятие пометки удаления. |
|||
14
Мыш
14.12.17
✎
11:32
|
(13) Не изобретайте велосипед. Посмотрите в типовой БП процедуру "УстановитьСостояниеДокумента()".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |