Имя: Пароль:
1C
1С v8
8.2.15 При проведении не срабатывает процедура модуля объекта "ПередЗаписью"
0 IamAlexy
 
24.06.12
12:50
С удивлением обнаружил следующий прикол на крайней платформе.

Есть документ.
В модуле документа есть процедура "ПередЗаписью" в которой стоит проверка срабатывающая при режиме записи "Проведение" (на предмет можно проводить или нет)

Процедуры "ОбработкаПроведения" нет (оная вынесена в подписку)

Так вот: если пользователь сначала записывает документ а потом проводит - процедура проверки срабатывает.
Если делает новый документ и сразу проводит (кнопку записать не нажимает а сразу "провести и закрыть") - процедура "Перед записью" не срабатывает.

чудеса блин...
1 Amra
 
24.06.12
12:54
(0) А с чего взял что не срабатывает? В смысле как определил?
2 mehfk
 
24.06.12
13:02
(0) Недавно наткнулся на баг типовой УТ 10.3
3 zak555
 
24.06.12
13:04
а если передЗаписью тоже вынести в подписку ?
4 zak555
 
24.06.12
13:04
обработкаПроведения  вмодуле есть ?
5 mehfk
 
24.06.12
13:08
(2) +
документ чекККМ
Функция ПровестиИРаспечататьЧек(Ответ, Отказ, ФормаДокумента, РучнойРежимПечати = Ложь) Экспорт

   Результат = Истина;
   Ответ     = "";

   Попытка
       ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);

должно быть

Функция ПровестиИРаспечататьЧек(Ответ, Отказ, ФормаДокумента, РучнойРежимПечати = Ложь) Экспорт

   Результат = Истина;
   Ответ     = "";

   Попытка
       Если НЕ ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение) Тогда
           Отказ = Истина;
           Результат = Ложь;
           Возврат Результат;
       КонецЕсли;
6 IamAlexy
 
24.06.12
13:15
(4) нет.
(1) а очень просто определил
в ПередЗАписью есть что то типа

Отказ = Истина;

которое не срабатывает если документ проводится но перед этим он записан в базу не был и срабатывает если сначала документ записать а уже потом проводить.
7 Amra
 
24.06.12
13:17
(6) НЕ сталкивался с таким, все вроде работает. А какая именно сборка?
8 IamAlexy
 
24.06.12
13:45
(7)8.2.15.317
9 zak555
 
24.06.12
13:48
код показывай =)
10 PiVa123
 
24.06.12
14:23
А процедура "ПередЗаписью" точно определена в событиях объекта(или формы) или она просто написана в соответствующем модуле ?
11 gae
 
24.06.12
14:37
(10) Так в модуле объекта достаточно просто процедуру-обработчик прописать.
12 zak555
 
24.06.12
14:38
(10) >в событиях объекта

это что-то новое
13 Мимохожий Однако
 
24.06.12
15:41
(0)Конфигурация в каком режиме: УФ или совместимом?
14 IamAlexy
 
24.06.12
20:40
(13) УФ
(10) первый раз столкнувшись стер ее и создал через список процедур и функций модуля...
на всякий случай :)

(9) код прост

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

отказ = истина;

конецПроцедуры;
15 эцп
 
24.06.12
20:43
(6) У тебя там запросов нет случайно?
16 IamAlexy
 
24.06.12
20:45
(15) ну вообще есть а что?
17 эцп
 
24.06.12
20:49
Если в запрос передается что-то типа:

Запрос.УстановитьПараметр("Ссылка", Ссылка);

то, не сработает, т.к. в режиме проведения документ может быть еще не записан и "Ссылка" ничего не содержит.

Но судя по коду в (14), странно.
18 IamAlexy
 
24.06.12
20:51
(17) нет, такого нет..
там задача простая в принципе была..

есть некий документ - заявка
необходимо проверить что содержимое заявки не дублируется в других заявках прежде чем эту заявку запускать в работу

собственно пользователи могут оформить любое количество заявок с любым содержимым но по некоторым признакам (не ссылка) нужно блокировать проведение документа если уже дубль есть..

собственно дубль есть

мало токо - прикол то в том что не срабатывает сама процедура даже без всяких запросов.. то есть прописать как в (14) - фиг.. неработает
19 эцп
 
24.06.12
20:58
(8) Проверяю у себя:
1) в нетленке в толстом клиенте в файловом режиме с отключенным режимом совместимости с отладчиком точка останова срабатывает всегда;
2) включил режим совместимости, тоже срабатывает.
20 IamAlexy
 
24.06.12
20:59
(19) в тонком клиенте в серверном режиме не работает..
21 _Demos_
 
24.06.12
21:01
(0)на курсы иди ... там тебя научат)
22 IamAlexy
 
24.06.12
21:02
(21) был
ненаучили

подскажите люди добрые.. кто знает.. что за магия такая...

не. я конечно сделал процедуру "ОбработкаПроведения" и туда положил проверку.. но по сути она то ненужна была в принципе...
23 _Demos_
 
24.06.12
21:03
(22)Передай значение
Отказ=Истина  в Обработку проведения
24 эцп
 
24.06.12
21:03
(20) у меня срабатывает
25 _Demos_
 
24.06.12
21:04
как в подписку передать не скажу
26 эцп
 
24.06.12
21:05
(20) подписок на событие нет?
27 IamAlexy
 
24.06.12
21:17
(23) в обработке сработало
(24) у тебя обраобтка проведения есть в модуле?
(26) есть
28 эцп
 
24.06.12
21:27
(27) ОбработкаПроведения есть, подписок нет
29 IamAlexy
 
24.06.12
21:27
(28) читай (0)
у меня несрабатывает при наличии подписки и отсутствии обраобтки "ОбработкаПроведения"
30 эцп
 
24.06.12
21:32
(29) А на что подписка? На какое событие?
31 IamAlexy
 
24.06.12
21:34
(30) обработка проведения
32 эцп
 
24.06.12
21:41
(31) Срабатывает
33 zak555
 
25.06.12
08:50
если попробовать на более младшем релизе ?
34 Bell
 
25.06.12
19:53
Перешел на 8.2.15 пропали проводки в документе. В 14 есть в 15 нет!