Имя: Пароль:
1C
1С v8
Как вывести предупреждение при проведении (упр. формы)
0 kavonline
 
20.03.12
13:54
Подскажите плз, как при проведении документа (упр. формы) вывести предупрждения. Метод "Сообщить" (и производные от него) не проходит т.к. обычно юзера делают "Провести и закрыть" и соответственно ничего не видят.
1 Нуф-Нуф
 
20.03.12
13:54
не при проведении, а перед записью
2 Господин ПЖ
 
20.03.12
13:54
давно не было предупреждений в проведении...
3 Cube
 
20.03.12
13:55
СообщениеПользователю
И
Отказ = Истина;
4 ll13
 
20.03.12
13:55
5 Cube
 
20.03.12
13:55
(1) Что остатков на складе не хватает, ага :)
6 Нуф-Нуф
 
20.03.12
13:56
(2)  кстати пару раз в своей практике натыкался... жесть...
7 kavonline
 
20.03.12
13:58
ну еще цены 0 и отличающиеся от прайса, да еще по мелочи
8 Азат
 
20.03.12
13:59
(6) ога, когда пакетное проведение пары тысяч документов запускаешь
9 kavonline
 
20.03.12
14:04
Можно константу сделать и при пакетном проведении через нее отключать вывод предупреждений
10 Cube
 
20.03.12
14:07
(9) Смысл? Кто потом это разгребать будет, что себестоимость рассчиталась неправильно из-за того, что поступление на секунду позже списания было сделано?
11 kavonline
 
21.03.12
11:23
Предложеное ll13 делает докумен не активным даже если хочешь его просто записать - неудобно.
12 ll13
 
21.03.12
11:47
(11) Домашнее задание: придумай как после вывода сообщения снова активизировать окно документа.
13 kavonline
 
21.03.12
12:03
Можно попробовать при выводе предупреждения при проведении установить специальный реквизит документа и истину и при ПередЗакрытием формы дать паузу. Как такой вариант?
14 ll13
 
21.03.12
12:23
Плохо, двойка.

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   ОкнаКлиентскогоПриложения = ПолучитьОкна();
   Для каждого ОкноКлиентскогоПриложения Из ОкнаКлиентскогоПриложения Цикл
       Если ОкноКлиентскогоПриложения.Основное Тогда
           ОкноКлиентскогоПриложения.Активизировать();
           Прервать;
       КонецЕсли;
   КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   Если НЕ Окно = АктивноеОкно() Тогда
       Окно.Активизировать();
   КонецЕсли;
КонецПроцедуры
15 kavonline
 
21.03.12
13:00
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   Если НЕ Окно = АктивноеОкно() Тогда
       Окно.Активизировать();
   КонецЕсли;
КонецПроцедуры

не отрабатывает

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   Если НЕ Этаформа.Окно = АктивноеОкно() Тогда
       ЭтаФорма.Окно.Активизировать();
   КонецЕсли;
КонецПроцедуры

так же не работает
16 ll13
 
21.03.12
13:01
Работает.
Полный код процедур ПередЗаписью() и ПослеЗаписи() покажи.
17 kavonline
 
21.03.12
13:04
ОкнаКлиентскогоПриложения = ПолучитьОкна();
Для каждого Окно Из ОкнаКлиентскогоПриложения Цикл
Если Окно = Этаформа.Окно Тогда
Окно.Активизировать();
Прервать;
КонецЕсли;
КонецЦикла;

Так тоже не пашет, конкретно не срабатывает Окно.Активизировать();
18 kavonline
 
21.03.12
13:06
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   ОкнаКлиентскогоПриложения = ПолучитьОкна();
   Для каждого Окно Из ОкнаКлиентскогоПриложения Цикл
       Если Окно.Основное Тогда
           Окно.Активизировать();
           Прервать;
       КонецЕсли;
   КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   
   //ЭтаФорма.Окно.Активизировать();
       
   ОкнаКлиентскогоПриложения = ПолучитьОкна();
   Для каждого Окно Из ОкнаКлиентскогоПриложения Цикл
       Если Окно = Этаформа.Окно Тогда
               Окно.Активизировать();
           Прервать;
       КонецЕсли;
   КонецЦикла;
     
КонецПроцедуры
19 ll13
 
21.03.12
13:10
Скопипасть код из (14), убедись что он рабочий.

А потом подумай почему твой код не работает ...
20 kavonline
 
21.03.12
13:17
ну код идентичный, я так пробовал
не пойму почему он не сработал
ткни меня плз