|
1С 8.3 УФ. Вывести "Вопрос" при записи элемента справочника | ☑ | ||
---|---|---|---|---|
0
mishkerdon
24.11.14
✎
06:51
|
Доброе утро! В модуле объекта справочника есть код проверки в событиях "ПередЗаписью" и "ПриЗаписи", нужно вывести "Вопрос" после этой проверки пользователю до окончательной записи элемента справочника.
Но выходит, если смотреть последовательность событий, то после "ПриЗаписи" в модуле объекта остаются только два события: "ПриЗаписиНаСервере" и "ПослеЗаписи" в модуле формы. В "ПриЗаписиНаСервере" нельзя клиентские функции вставлять, а в "ПослеЗаписи" нельзя отменить запись. Как можно поступить в этом случае?? |
|||
1
SergeyKB
24.11.14
✎
07:00
|
>в модуле объекта
исполняется на сервере, забудьте про интерактивную работу с клиентов оттуда C учётом, что Вопрос модальный диалог, а теперь 1С рекомендует внедрять через механизмы ассинхронных обработчиков, то лучше вам пересмореть сценарий\интерфейс работы а объяснить для начала, что будет в данном вопросе ? |
|||
2
mishkerdon
24.11.14
✎
07:08
|
(1) в данном вопросе выводится предупреждение об неустановленных реквизитах (с возможность продолжить или нет). Эти реквизиты устанавливаются или снимаются в проверке в модуле объекта.
|
|||
3
Cube
24.11.14
✎
07:16
|
(2) Что мешает сделать проверку в процедуре формы ПередЗаписью()?
|
|||
4
mishkerdon
24.11.14
✎
07:45
|
(3) проверка должна выполняться всегда, даже при записи из кода и т.п.
|
|||
5
Рэйв
24.11.14
✎
07:47
|
(4)Какие могут быть вопросы когда чтото неправильно заполенно?
В ПередЗаписью Отказ=Истина и всех в сад с сообщением пользователю. Пусть исправляют |
|||
6
SeraFim
24.11.14
✎
07:49
|
(4) ага, запускается фоновое задание с обменом. И у кого твой код будет спрашивать?
|
|||
7
Мимохожий Однако
24.11.14
✎
07:51
|
У нужных реквизитов установи режим выдачи ошибки при пустых значениях. Система сама спросит и пошлёт.
|
|||
8
Cube
24.11.14
✎
07:54
|
(4) Так ты делай процедуру &НаСервере в которой всё проверяешь и вызывай её в процедурах:
- в форме &НаКлиенте с выводом сообщений - в модуле объекта без вывода сообщений. Просто Отказ = Истина. |
|||
9
Cube
24.11.14
✎
07:56
|
(8) Можно сделать, чтобы функция проверки возвращала текст ошибки. И если текст ошибки не пустой, то не записывать. &НаКлиенте текст ошибки ещё и выводить пользователю в лицо.
|
|||
10
mishkerdon
24.11.14
✎
07:56
|
(5) (6) Нет подождите, я пишу про разные вещи - есть код проверки в модуле объекта (он проверяет статус реквизитов и устанавливает или снимает их) и есть код проверки заполненности одного реквизита (необязательное заполнение, т.е. "Вопрос" передается как ДаНет, пользователь может продолжить запись и без этого реквизита). Но проблема в том, что этот код правильно сработает только после проверки и установки реквизитов в модуле объекта.
|
|||
11
mishkerdon
24.11.14
✎
07:59
|
(8) пока так и сделал, т.е. вынес код проверки в модуле объекта из процедуры "ПриЗаписи" в отдельную процедуру, и вызываю ее и в "ПередЗаписью" на форме, и в "ПриЗаписи" в объекте. Но насколько это правильно не знаю, так как в будущем как раз таки этот код может стать рекурсивным.
|
|||
12
Рэйв
24.11.14
✎
08:01
|
(10)Если идет программная запись, значит все так и надо как есть.Потому что ты сам должен программно заполнить как надо.а если интерактивная запись, то спрашивай в модуле формы. В ПередЗаписью в модуле объекта паровоз уже ушел на сервер и там спрашивать уже не у кого.
|
|||
13
Рэйв
24.11.14
✎
08:04
|
+(12)>>Эти реквизиты устанавливаются или снимаются в проверке в модуле объекта.
ничего не мешает делать те же проверки в модуле формы. |
|||
14
mishkerdon
24.11.14
✎
08:07
|
(13) Вам наверно уже смешно, но дважды запускать эту проверку в одной транзакции нельзя :)
|
|||
15
Рэйв
24.11.14
✎
08:23
|
(14)Тогда скинь бремя метаний и сомнений и считай, что юзверь умный, и перед записью все заполнил как ему надо. А если не заполнил - то он сам себе злобный буратино:-)
|
|||
16
Kamas
24.11.14
✎
09:22
|
ВызватьИсключение "Злобный буратино сделай как надо";
|
|||
17
olegves
24.11.14
✎
09:36
|
(0) зачем коряво программить? При записи активна транзакция, и общение с юзверями не комильфо - длительная блокировка гарантирована.
Все общения с юзверями - вне транзакций - заруби себе на носу... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |