Имя: Пароль:
1C
 
Подписки на события. Как проконтролировать отказ
0 Zixxx
 
30.11.14
19:37
Для справочника использую событие подписки "ПриЗаписи", в момент которого справочник переносится в удаленную базу с идентификатором текущей базы. Проблема заключается в том что в Модуле формы справочника если в событии "ПриЗаписи" не заполнен вес происходит Отказ = Истина и объект не записывается.

Из-за этого происходит дублирование справочников, так как обмен идет по уникальным идентификаторам.

Как решит этот момент, у кого какие мысли?
1 shuhard
 
30.11.14
19:54
(0) и объект не записывается, Из-за этого происходит дублирование справочников, так как обмен идет по уникальным идентификаторам.


одна из обезьянок врёт
2 Zixxx
 
30.11.14
20:01
(1) Посмотри мои темы там я тебе один раз уже написал что ты животное, вроде ты не против был
3 Zixxx
 
30.11.14
20:08
Собственно в событии ПриЗаписи есть уже ссылка следовательно и ID, событие ПриЗаписи в подписке выполняется первым, событие ПриЗаписи в модуле формы выполняется вторым и отменяет запись объекта.
4 hhhh
 
30.11.14
20:11
заполнить вес еще не предлагали?
5 Zixxx
 
30.11.14
20:19
(4) Не подойдет, справочников много, могут в другом справочнике в форме сделать отказ, не надежно получается
6 Zixxx
 
30.11.14
20:41
Есть дурацкий совсем вариант в подписке ПриЗаписи помещать ссылку в регистр сведений, а по этому регистру идти регламентным заданием, смысл регламентного задания перезаписать объект, если успешно перезаписан тогда указываем статус обработан. Все что обработано уйдет в обмен, то что не обработано, есть ошибка блокировки, в дальнейшем просто исчезнет из базы само собой по правилу описанному в (3)
7 GedKo
 
30.11.14
20:44
(6) транзакцию в удаленной базе не?
послезаписи не?
8 Zixxx
 
30.11.14
20:45
(7) 1С не поддерживает распределенные транзакции, следовательно нет. У справочника есть подписка ПослеЗаписи?
9 Zixxx
 
30.11.14
20:48
(7) Да и самое интересное что транзакция закрывается в подписке ПриЗаписи, ебъект можно использовать как ссылка, записать его в регистр и он там будет. А вот после события ПриЗаписи в модуле формы, объект перестанет существовать и например в том регистре в который мы его записали на его месте будет <Объект не найден>
10 GedKo
 
30.11.14
20:58
(9) ты это еще в модуль формы пихаешь? ой-ой-ой...

зы. а зачем онлайн обмен нужен? рег.задание и вуаля.
11 Zixxx
 
30.11.14
21:08
(10) Я ничего в модуль формы не пихаю, как есть так есть, пишу совместимо. Онлайн или офлайн не имеет значения, если в событии ПриЗаписи модуля формы будет предупреждение пользователю после которого идет отказ и пользователь уйдет домой то ты получишь тоже самое что и в (0). Просто на онлайн обмене это проявиться может с большей вероятностью
12 Zixxx
 
30.11.14
21:33
С планами обмена та же песня. Предположим что пользователю при записи система выдала предупреждение, если он ответит нет будет Отказ = Истина. Пользователь получил предупреждение и пошел по своим делам. В этот момент происходит чтение изменений для РБД и записи улетают в другую базу. Пользователь приходит и нажимает "нет". Получаем ситуацию когда в источнике нет данных а в приемнике есть.
13 Zixxx
 
30.11.14
21:40
Получаем следующее... При использовании обменов данными не рекомендуется использовать в событии МФ ПриЗаписи Отказ = Истина.

А в каких ситуациях бывает потребность сделать отказ при записи а не перед записью?
14 Andrewww123
 
01.12.14
02:35
Посмотрел в УТ 11, нигде в "ПриЗаписи" отказ не устанавливается. Это логично, потому как отказ в результате проверки заполненности реквизитов нужно устанавливать в "ПередЗаписью"
15 Поpyчик-4
 
01.12.14
07:27
(14) ОбработкаПроверкиЗаполнения
16 Мимохожий Однако
 
01.12.14
07:42
(0)Ты бы не стеснялся, а показал код, указал конфигурацию. Не все здесь телепаты.
17 Zixxx
 
01.12.14
07:47
(16) Что именное тебе не понятно?
18 Галахад
 
гуру
01.12.14
07:55
Для кого планы обмена придумали?
19 DrZombi
 
гуру
01.12.14
08:06
(0) Откажись от обработчика. И пиши там же , где и При записи происходит отказ.

У 1С Обработчик мертворожденный... Лучше по старинке, как 1С 7.7
20 DrZombi
 
гуру
01.12.14
08:07
(1) Почему? Смотря, что первым отрабатывает. Либо При записи в модуле справочника, либо обработчик событий :)
21 ifso
 
01.12.14
08:30
суть топика ради (2) ?)
22 User_Agronom
 
01.12.14
08:39
(0)...справочник переносится в удаленную базу...
...Модуле формы справочника если в событии "ПриЗаписи" не заполнен вес происходит Отказ = Истина и объект не записывается...

Если мой телепат понял правильно, тогда проверку заполнености веса нужно перенести в модуль объекта.
23 Zixxx
 
01.12.14
09:23
(18) С планами обмена будет такой же баг если не учитывать то что в (13)
24 Zixxx
 
01.12.14
09:24
(22) Главное чтобы потом некоторые особи из (1) не наплодили гемороя. А так можно сделать как и в (13)
25 Kalambur
 
01.12.14
10:03
овнкод изначально, ибо не было этого топика, будь проверка веса в ПередЗаписью
26 Zixxx
 
02.12.14
12:46
(25) Собственно вопрос, кто и с какой целью мог возвести Отказ в Истину ПриЗаписи, почему не ПередЗаписью и если это есть в ПриЗаписи то для чего?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.