Имя: Пароль:
1C
1С v8
Глупый вопрос. УРБД, миграция, подписка на события...
,
0 fisher
 
12.03.12
19:11
В каком событии правильнее рулить (определять список получателей).
При записи объекта, перед записью объекта или фиолетово на самом деле?
Просто у меня бок всплыл...
Мигрирует в конкретный узел док или нет - определяется хитрым запросиком, в котором фигурирует ссылка на док (единообразно для дока и его движений).
Я провтыкал и для дока у меня эта фигня срабатывает в "Перед записью". Соответственно, возникает фигня с новыми документами. Они не уходят в нужный узел (ссылки еще нет), а их движения уходят (ссылка уже есть).
Чтобы полечить бяку достаточно в "При записи" засунуть всю енту фигню, или всё сложнее?
1 n koretsky
 
12.03.12
19:14
может, лучше в ПослеЗаписи()?
тогда точно уже все есть.
2 pumbaEO
 
12.03.12
19:20
(1) Разработчик платформы, что ли? У тебя есть подписка на событие "ПослеЗаписи"?

(0) Используй  "ПриЗаписи"
3 n koretsky
 
12.03.12
19:30
(2) не внимательно прочитал, что автор вопроса просил помощи касательно подписки на события.
извини меня, добрый человек.
4 ProgAL
 
12.03.12
19:41
У Гончарова в книге "Обмен данными" в перед записью. Стр 170-171.
ОбменДанными.Получатели.Добавить(Ссылка);
.
5 ProgAL
 
12.03.12
19:43
Хотя нет, там этот код выхзывается для не нового объекта.
6 DrShad
 
12.03.12
19:45
(2) приминительно к РИБ ошибка не простительная
7 DrShad
 
12.03.12
19:46
(4) книга Гончарова еще до иобретения подписок
8 DrShad
 
12.03.12
19:47
(0) а в снеовике нет УРБД
9 fisher
 
12.03.12
19:50
Так и не понял. "При записи" спасет отца русской демократии?
10 DrShad
 
12.03.12
19:51
(9) отца да, тебя нет
11 Serg_1960
 
12.03.12
19:58
(9) Да, имхо, спасёт. А учитывая "...определяется хитрым запросиком..." - не забывай сначало очищать регистрацию перед "хитрым запросом" :)
12 fisher
 
12.03.12
20:06
(11) Не уверен... Сейчас просто цейтнот, но какая-то хитрость была... По-моему, в "При записи" уже поздно править список получателей...
Хотелось-то как раз без чистки регистрации, когда она еще не прошла...
13 fisher
 
12.03.12
20:16
Чорд... Добрался до толстой книжки - список получателей таки только в перед записью можно редактировать... Паника... Придется серьезно рефакторить...
14 Serg_1960
 
12.03.12
20:19
(12) "но какая-то хитрость была" :) В подписке перед записью объекта надо "собирать" получателей. Объект.ОбменДанными.Получатели.Добавить(...);
15 Serg_1960
 
12.03.12
20:22
(13) А тебе сразу и предлагал: после записи делать твой "хитрый" запрос и удалять "лишнюю" регистрацию :( по мере необходимости :)
16 pumbaEO
 
12.03.12
20:28
УстановитьСсылкуНового ?
17 Serg_1960
 
12.03.12
20:28
PS: запрос "в котором фигурирует ссылка"(0) как бы предпологает, что объект уже записан в базу. Использование его для регистрации изменений (т.е. перед записью) - изврат получается. Имхо.
18 fisher
 
12.03.12
20:34
(15) Да понял я... Кумекаю как малой кровью выкрутиться...
(16) Не катит, мне ж по ссылке нужно до организации в доке еще добраться... Придется просто отдельно ситуацию с новыми обрабатывать...
(17) Ну так изначально ж рассказал что криво получилось. Просто рефакторился этот блок несколько раз и глаз замылился, что новые в пролете оказались.

В общем, всем спасибо. Ветка оправдала свое существование. В чем именно прокололся я уже сообразил. Дальше мои проблемы...
19 ProgAL
 
12.03.12
20:47
Так как правильно делать?
20 fisher
 
12.03.12
21:01
(19) Правильно делать что именно? Править список получателей правильно "Перед записью". При записи изменения уже зарегистрированы.
21 hhhh
 
12.03.12
22:33
(20) это бредовая идея - добираться до организации документа. Лучше добавь организацию как реквизит регистра.
22 DrShad
 
12.03.12
22:40
(21) какого еще накуй регистра?
23 fisher
 
13.03.12
11:46
(21) Ты про определение организации для набора движений? Теоретически идея правильная. Но рефакторить сильно дохрена. В самописке может и было бы правильно так сделать изначально (во все регистры организацию воткнуть). Но у меня реализация правил миграции такая, что все равно без запроса не обойтись. Поэтому лишнее соединение ничего не решает. А чтобы для каждого набора записей запрос не фигачить, результат анализа правил миграции для объекта-владельца возвращает функция общего модуля с повторным использованием возвращаемых значений.
24 fisher
 
13.03.12
11:55
(23) + Хотя нет... Вру... На реквизиты регистра можно относительно легко перейти, в принципе... Но, как я уже сказал, меня это не лечит. От запроса никуда не ухожу. Начать хотя бы с того, что в моем "наследии" места создания объектов в регистре хранятся... Всё остальное, теоретически, можно было бы кэшировать...