|
Нажатие кнопки ОК(Стандартной) | ☑ | ||
---|---|---|---|---|
0
КВА
22.11.12
✎
21:35
|
Стоит задача, чтобы пользователь при создании документа мог оповестить своего руководителя об этом. И при нажатии кнопки ОК (Стандартной) отрабатывал код с оповещением. Прописал код в Процедуре ОбработкаПроведения (), при создании документа пользователь жмет записать все нормально в процедуру не заходит как и надо, при нажатии ОК все отрабатывает. Но тут пользователь решает посмотреть документ или его отредактировать смотрит или редактирует, жмет записать так как знает что при нажатии снова будет оповещен руководитель и тут весь облом оповещение отправляется как и при нажатии ОК так и при ЗАПИСИ. Но мне нужно чтобы только при ОК. Спрашивал у заказчика на счет того чтобы на форме сделать признак того что оповещение было отправлено не хотят. Хотят чтобы только при нажатии ОК отправлялось.
Установка в свойствах документа признака «Записывать модифицированные» не принес нужного результата. Документ не производит никаких движений по регистрам. Подскажите как сделать что бы это реализовать? |
|||
1
mexanik_96
22.11.12
✎
21:56
|
проверь на выбран()=0
|
|||
2
mexanik_96
22.11.12
✎
21:57
|
если док.выбран() = 0 тогда
{кодсообщения} конецесли |
|||
3
КВА
22.11.12
✎
22:04
|
(1) Метод Выбран() он для регистров и внешних источников или что то не понимаю((
|
|||
4
mexanik_96
22.11.12
✎
22:10
|
с семаком перепутал.
Если док.ЭтоНовый() Тогда КонецЕсли; |
|||
5
КВА
22.11.12
✎
22:12
|
(4)Да оно всегда должно отправляться при нажатии только ОК ((
|
|||
6
mexanik_96
22.11.12
✎
22:13
|
дак поставь после вызова нажатия кнопки
|
|||
7
mexanik_96
22.11.12
✎
22:13
|
потом проверка на новый если истина сообщать, иначе ничего не дать. Проблема в чем?
|
|||
8
mexanik_96
22.11.12
✎
22:14
|
дать = делать
|
|||
9
КВА
22.11.12
✎
22:19
|
(8)Они хотят чтобы всегда при нажатии ОК сообщало не зависимо новый или модифицированный.
|
|||
10
mexanik_96
22.11.12
✎
22:22
|
реквизит без вывода на форму?
|
|||
11
КВА
22.11.12
✎
22:22
|
Есть вариант спрашивать о желании отправить но это самый крайний вариант
|
|||
12
КВА
22.11.12
✎
22:25
|
(10)ты имееш виду что то вроде булево и при нажатии ОК он принемает одно а при нажатии Записать другое? Тогда где поймать что я выбрал Ок или Записать?
|
|||
13
mexanik_96
22.11.12
✎
22:29
|
примерно
|
|||
14
КВА
22.11.12
✎
22:30
|
элементыформы.ОсновныеДействияФормы.Кнопки где то там ? ок спс завтра попробую думаю что то выйдет
|
|||
15
mexanik_96
22.11.12
✎
22:31
|
зачем там? просто реквизит у дока, с именем флаг. никак чтоли не сделать?
|
|||
16
КВА
22.11.12
✎
22:34
|
(15)Млин а где мне узнать что пользователь нажал?(
|
|||
17
КВА
22.11.12
✎
22:38
|
(15)РежимЗаписи после Проведения документа всегда становится в значении ПРОВЕДЕНИЕ
|
|||
18
mexanik_96
22.11.12
✎
22:39
|
Если док.ЭтоНовый() Тогда
флаг =1; КонецЕсли; |
|||
19
mexanik_96
22.11.12
✎
22:40
|
флаг = реквизит документа
|
|||
20
КВА
22.11.12
✎
22:40
|
(18)Он после первого проведение уже не новый а они хотят чтобы всегда при нажатии ОК отробатывал.
|
|||
21
mexanik_96
22.11.12
✎
22:44
|
далее
если флаг = 1 тогда иначе еще писать? или сам все же?? |
|||
22
КВА
22.11.12
✎
22:48
|
(21) Млин я наверное что сложно объясняю впервый раз отработает нормально твой вариант с ЭтоНовый но последующии разы пользователь при нажатии на ОК не получит того чего хочит потому что док будет не новый (
|
|||
23
mexanik_96
22.11.12
✎
22:52
|
код показать можешь?
|
|||
24
КВА
22.11.12
✎
22:56
|
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Проверим на необходимость составления ЛПО Если НЕ ЛПОСформирован Тогда ФлагЛПО = Ложь; Для Каждого СтрокаЗаказа Из ПереченьЗаявки Цикл Сумма131 = 0; Счет131 = Лев(Строка(СтрокаЗаказа.СтатьиЗатрат.Счет), 3); Если Счет131 = "131" Тогда ФлагЛПО = Истина; Сумма131 = Сумма131 + СтрокаЗаказа.Сумма; КонецЕсли; КонецЦикла; Если ФлагЛПО Тогда ВалютаДоллар = Справочники.Валюты.НайтиПоКоду(840, Истина); СтруктураВалютаДоллар = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаДоллар, Дата); СтруктураВалютаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, Дата); СуммаВВалюте = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(Сумма131, Валюта, ВалютаДоллар, СтруктураВалютаДокумента.Курс, СтруктураВалютаДоллар.Курс); Если СуммаВВалюте > 5000 Тогда Отказ = Истина; Предупреждение("Необходимо заполнить форму LPO"); КонецЕсли; КонецЕсли; КонецЕсли; Если НЕ Инициатор = глЗначениеПеременной("глТекущийПользователь") Тогда ОбщегоНазначения.ОшибкаПриПроведении("Проведенным заявку может сделать только инициатор заявки!", Отказ); КонецЕсли; //Добавил Вот тут!!!! Если в первый раз то будет новый а как же с последующими разами???? Если РольДоступна("Инициатор") Тогда ОповеститьПоЭлПочте(1); КонецЕсли; //Конец КонецПроцедуры // ОбработкаПроведения() |
|||
25
mexanik_96
22.11.12
✎
23:02
|
а выполнить нажатие на кнопку ок нету?
убрать из обработки проведения. добавить проц нажатие на кнопку ок с кодом процедура нажатиеОк() ОбработкаПроведения(Отказ, РежимПроведения); Если РольДоступна("Инициатор") Тогда ОповеститьПоЭлПочте(1); КонецЕсли; конецпроцедуры |
|||
26
mexanik_96
22.11.12
✎
23:03
|
то есть с кнопки ок вызываешь и проведение и сообщение, по другому записывает и не сообщает. может быть так?
|
|||
27
КВА
22.11.12
✎
23:03
|
нету ана же стандартная ((
|
|||
28
mexanik_96
22.11.12
✎
23:08
|
добавить?
|
|||
29
КВА
22.11.12
✎
23:11
|
(28)над попробовать я тебя понял спс.
|
|||
30
Elf_80_lvl
22.11.12
✎
23:48
|
(0) Я всегда думал что такие задачи через подписку решаются... Надеюсь база управленческая, а не типовая бух =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |