Вход | Регистрация

1С:Предприятие ::

Метки:

v7.7 Отказ от сохранения документа

Я
   va53
 
08.12.04 - 17:29
Есть процедура ПриЗаписи(). А если отказались от записи документа- можно ли отловить это событие и проделать какую-нибудь процедуру
 
 
   Балбес
 
1 - 08.12.04 - 17:40
Есть предопределенная Процедура ОтказалисьОтЗаписи(). Описание встроенного язака том 1 стр.235. в самом низу.
   SiMazx
 
2 - 08.12.04 - 17:42
Поздравляю, Шарик, ты - балбес...
   Бивень
 
3 - 08.12.04 - 17:44
(1) Это ж в 3-ем томе ОВЯ ...
   Балбес
 
4 - 08.12.04 - 17:51
(3) Сморозил...
   YF
 
5 - 08.12.04 - 17:54
(1)

Испугал - я уж хотел было в ЖКК лезть :))

А вопрос то интересен. Я вот не знаю ответа, а хотелось бы тоже.

Может в ПриЗакрытии отловить?
   IgorKa
6 - 08.12.04 - 18:02
ВводНового() тебе поможет
   Кортес
 
7 - 08.12.04 - 18:05
ПриЗакрытии() если Выбран()=1 тогда проверим модифицированность
   va53
 
8 - 09.12.04 - 08:38
Проблема вот в чем. Куча менеджеров выписывает заказы из справочника-прайса. Исторически сложилось (конфа сильно переделана под склад), что остатки (не все остатки склада,а именно те, которые на продажу) хранятся не в регистре, а в справочнике. Чтоб другой менеджер видел, сколько уже заказано в спр. есть реквизит Заказано. Он по мере заказов нарастает. Так вот менеджер создал документ Заказ, а потом передумал его сохранять - нужно чтоб реквизит Заказано вернулся взад.
(7) Менеджер все время добавляет, удаляет строки в док.Заказ, поэтому всегда признак модифиц.=1
   321
 
9 - 09.12.04 - 08:43
(8)Cомнительно что остатки хранятся в справочнике, скорее всего просто сущ-ет текстовая графа, в которой функция возвращает остаток. Поэтому пока док не проведен ничего не зафиксируется
   va53
 
10 - 09.12.04 - 09:07
(8) Именно в справочнике. А делается так:
Находимся в доке, далее в процедуре ОбработкаПодбора(Выб)
Спр=СоздатьОбъект("Справочник.ТоварыПрайс");
......
//уменьшаем кол-во

Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
ТекЭл=Спр.ТекущийЭлемент();
Если ТекЭл=Выб Тогда
БылоЗаказано=Спр.Заказано;
Спр.Заказано=БылоЗаказано+Кол;//Кол- сколько заказано в текущем док

Спр.Свободно=Спр.Остаток-Спр.Заказано;
Спр.Записать();
прервать;
КонецЕсли;
Просьба код не критиковать-работает и довольно быстро и не предлагать регистры
поскольку поздно уже пить боржоми.
 
  Рекламное место пустует
   321
 
11 - 09.12.04 - 09:13
(10) Это пока быстро, а как справочник подрастет...
Лучше сразу позиционироваться на ВЫБ, например
Если Спр.НайтиЭлемент(выб)=1 тогда
....//дальнейшие действия
   Diter
 
12 - 09.12.04 - 09:32
(0) ИМХО можно сделать так. В процедуре ВводНового() некой переменной присваивай значение "0". ПриЗаписи() меняй на "1". ПриЗакрытии() проверяй. Если "0" возвращай все изменения в справочниках на место, если "1" то ничго не делай, просто закрывай форму.
   SnarkHunter
 
13 - 09.12.04 - 09:46
Я в шоке...
   Де Лопа де Вега
 
14 - 09.12.04 - 09:47
(13) Да что ты. Вся Испания в шоке!
   Rovan
 
15 - 09.12.04 - 11:21
(10) Это ужасно...такова я еще не... мне плохо...дайте пива запить....
   1С Дурочка
16 - 09.12.04 - 12:57
Если ты так дорожишь этим решением и не хочешь от него отказываться, перенеси хотя бы свой код из обработки подбора (кстати, многие заполняют insertом) в процедуру при записи. Не забудь отработать ситуацию, когда в записанном документе что-то исправляют.


Список тем форума
Рекламное место пустует  
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует