|
Функция вопрос() на тонком клиенте | ☑ | ||
---|---|---|---|---|
0
AlexToo
07.01.14
✎
15:28
|
Здравствуйте, работаю с конфигурации унф тонкий клиент, при нажатии на кнопку провести, перед проведением необходимо проверить условие и если оно не выполнено задать вопрос. Процедура "Перед записью", в которой я пытаюсь добавить это условие и функцию вопрос, выполняется на сервере, как правильно тогда задать вопрос?
|
|||
1
Мимохожий Однако
07.01.14
✎
15:30
|
Если условие не выполняется, то надо выводить сообщение и отказ от проведения. Иначе при групповом проведении умрут все
|
|||
2
AlexToo
07.01.14
✎
15:32
|
это понятно, проблема в том что я не понимаю, как правильно вывести сообщение, функция вопрос() на сервере не выполняется
|
|||
3
Пеппи
07.01.14
✎
15:32
|
Сообщить() ?
|
|||
4
GROOVY
07.01.14
✎
15:35
|
Описать процедуру ПередЗаписью в модуле формы. Она на клиенте выполняется.
|
|||
5
AlexToo
07.01.14
✎
15:35
|
Сообщить() не подходит, ситуация такая есть документ в нем поле "основание", при проведении проверяется заполнено поле или нет, и если не заполнено появляется вопрос "Основание не заполнено, продолжить проведение документа" если пользователь нажимает "да"-то проводим, если "нет"-то соответственно не проводим. Как правильно прописать в коде этот вопрос?
|
|||
6
AlexToo
07.01.14
✎
15:36
|
(4) т.е. из сервера перенести в модуль формы?
|
|||
7
GROOVY
07.01.14
✎
15:38
|
Все, что связано с интерфейсом и взаимодействием с пользователем ОБЯЗАНО быть в модулях форм.
|
|||
8
AlexToo
07.01.14
✎
15:39
|
(7) данная процедура в модуле объекта описана, если я ее перенесу она не будет выполнятся
|
|||
9
Wobland
07.01.14
✎
15:42
|
(5) если не заполнено тогда сообщить+отказ. и всё
|
|||
10
GROOVY
07.01.14
✎
15:42
|
(8) Еще раз, не надо в модуль объекта пихать интерфейсные события. Для этого СПЕЦИАЛЬНО предназначен модуль формы. В модуле формы есть предопределенное событие ПередЗаписью, оно отрабатывает на клиенте.
|
|||
11
Wobland
07.01.14
✎
15:42
|
(9) +возврат
|
|||
12
Wobland
07.01.14
✎
15:43
|
(10) поубивал бы тех, кто мне мешает записывать неправильные документы ;)
|
|||
13
AlexToo
07.01.14
✎
15:45
|
(10) ну так-то не по моей воле в модуле объекта процедура, это типовая конфигурация. но о чем вы говорите поняла, спасибо)) (12) настаивают на том что бы именно был вопрос с выбором действия, поэтому сообщить не канает
|
|||
14
Alexman13
07.01.14
✎
15:46
|
фотку еще не просили?))
|
|||
15
Wobland
07.01.14
✎
15:46
|
(13) каких действий?
|
|||
16
Wobland
07.01.14
✎
15:47
|
(14) стартуй!
|
|||
17
AlexToo
07.01.14
✎
15:48
|
(15) либо проведение без основания, либо с закрытием вопроса и выбора основания
|
|||
18
Wobland
07.01.14
✎
15:49
|
(17) убедила. в форме и опиши свой вопрос. разумеется, после небольшой демонстрации
|
|||
19
Wobland
07.01.14
✎
15:49
|
(17) а твой вопрос к проведению не имеет никакого отношения
|
|||
20
GROOVY
07.01.14
✎
15:49
|
(13) В твоей воле написать процедуру в модуле формы.
&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ЧтоВКлюче = Ложь; Если НЕ ПараметрыЗаписи.Свойство("ЗаписатьБезВопросов") Тогда ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОтвет", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, "Все в порядке?",РежимДиалогаВопрос.ДаНет, 60); Отказ = Истина; КонецЕсли; КонецПроцедуры //Вынести в отдельную процедуру &НаКлиенте Процедура ОбработатьОтвет(РезультатВопроса, ДополнительныеПараметры) Экспорт Если РезультатВопроса = КодВозвратаДиалога.Да Тогда Записать(Новый Структура("ЗаписатьБезВопросов", Истина)); КонецЕсли; КонецПроцедуры |
|||
21
AlexToo
07.01.14
✎
15:58
|
(20) спасибо, попробую
|
|||
22
sikuda
07.01.14
✎
17:02
|
(20) А как сделать чтобы в 8.2.19.83 не ругался на "Тип не определен ОписаниеОповещения()"? Или только для 8.3?
|
|||
24
GROOVY
07.01.14
✎
17:25
|
8.3
|
|||
25
TamerlanDE
07.01.14
✎
17:33
|
(0) ОбработкаПроверкиЗаполненияНаСервере
|
|||
26
GROOVY
07.01.14
✎
17:35
|
(25) Мимо!
|
|||
27
TamerlanDE
10.01.14
✎
11:35
|
&НаСервере
Функция ПроверкаУсловия() Возврат (Объект.Реквизит1 <> Объект.Реквизит2); КонецФункции &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Отказ = ПроверкаУсловия(); ОшибкаПроверки = Отказ; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ПодключитьОбработчикОжидания("ПоказатьПредупреждение", 0.1, Истина); КонецПроцедуры &НаКлиенте Процедура ПоказатьПредупреждение() Если ОшибкаПроверки Тогда Ответ = Вопрос("Исправить ошибку?", РежимДиалогаВопрос.ДаНет); Если Ответ = КодВозвратаДиалога.Да Тогда Объект.Реквизит2 = Объект.Реквизит1; КонецЕсли; Иначе ПодключитьОбработчикОжидания("ПоказатьПредупреждение", 0.1, Истина); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) ОтключитьОбработчикОжидания("ПоказатьПредупреждение"); КонецПроцедуры |
|||
28
Жан Пердежон
10.01.14
✎
11:51
|
(27) изврат
|
|||
29
Жан Пердежон
10.01.14
✎
11:52
|
кстати, документ провести еще могут из формы списка, выбора и т.д.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |