|
Есть какой-то аналог глобальной переменной в 1С 8? | ☑ | ||
---|---|---|---|---|
0
DrWeb
28.05.20
✎
18:29
|
Как я уже писал в Как в фоновом задании узнать завершено ли проведение документа остатки при перепроведении документа изменяются 4 раза. Автоудаление движений по двум регистрам (которые меня интересуют) и затем запись новых движений в эти же регистры.
Сделал подписку на события ПередЗаписью (чтобы отследить удаляемые из документа товары) и ПриЗаписи для наборов записей по этим регистрам. Соответственно имею 8 вызовов, в которых собираю массив товаров, требующих обновления остатков во внешней системе. Теперь вопрос: Где хранить этот массив, чтобы он был доступен во всех восьми вызовах обработчиков событий (разных объектов иначе бы заюзал ДополнительныеСвойства) и затем в фоновом задании, обновляющем остатки во внешней системе? Напрашивается вроде ВременноеХранилище, но тогда нужно сгенерить какой-то адрес и дальше сделать его доступным во всех этих вызовах. Как? Или может быть как-то еще? |
|||
1
MyNick
28.05.20
✎
18:31
|
Ну у тебя же полосочка длинная, должен же понимать, что этот твой огромный колосс не устоит на ногах. Меняй его на что-то более устойчивое.
|
|||
2
Вафель
28.05.20
✎
18:32
|
параметр сеанса
|
|||
3
Chameleon1980
28.05.20
✎
18:33
|
хз в константу
|
|||
4
Chameleon1980
28.05.20
✎
18:33
|
будет видно во всех сеаесах даже. для сеанса хз в (2)
|
|||
5
MyNick
28.05.20
✎
18:36
|
(4) сеанс ликвидируется в самый неудачный момент (а это точно произойдет), и все тру ляля по одному месту.
Не надо городить колхоз. |
|||
6
Волшебник
модератор
28.05.20
✎
18:36
|
(0) Заведи план обмена
|
|||
7
DrWeb
28.05.20
✎
18:37
|
(6) К этому и склоняюсь, но думал обойтись без лишних обращений к БД
|
|||
8
Волшебник
модератор
28.05.20
✎
18:40
|
(7) Не надо городить колхоз.
|
|||
9
H A D G E H O G s
28.05.20
✎
18:41
|
Параметр сеанса для этого и создан
|
|||
10
DrWeb
28.05.20
✎
18:42
|
(8) Ок. Спасибо. Убедил )
|
|||
11
DrWeb
28.05.20
✎
18:45
|
(10) Если что-то пойдет не так и транзакция в документе завершится, а онлайн обновление упадет, то ждать когда по этим же товарам будут следующие движения можно долго, а так при следующем обмене из плана все изменения накатятся. Наверное да, так правильно.
Я правда планы обмена никогда не юзал. Пойду курить доки |
|||
12
Волшебник
модератор
28.05.20
✎
18:46
|
(11) Ой, там легко. Создай предопределённый узел, настрой состав.
Записал регистрацию изменений, выгрузил, удалил регистрацию изменений. |
|||
13
DrWeb
28.05.20
✎
18:55
|
(12) Со слова "Предопределенный" становится не понятно. Ну я подозреваю, что это похоже на предопределенные элементы справочников например, но я сильно от этого далёк. Что-то слышал краем уха, что они бывают ))
|
|||
14
MyNick
28.05.20
✎
19:20
|
(11) не очищай данные узла, если "обновление упадет". Прогрузишь следующим регламентом.
|
|||
15
vde69
28.05.20
✎
19:26
|
(0) однозначно ПОСЛЕДОВАТЕЛЬНОСТЬ
|
|||
16
vde69
28.05.20
✎
19:28
|
(15) +
1. в случае сбоя сразу видно и номенклатуру и регистратор 2. сразу можно включать в последовательнось документы имеющие взаимное влияние 3. удобный механизм востановления, в том числе при штатном перепроведении |
|||
17
Cyberhawk
28.05.20
✎
19:43
|
(16) Как ты в последовательности собираешься хранить только измененную номенклатуру?
|
|||
18
vde69
28.05.20
✎
19:46
|
(17) последовательность с 1 измерением "номенклатура", ему надо контролировать удаление номенклатуры из документа, и когда удалили он хочет ее удалять в других документах. Это 100% задача для последовательности
|
|||
19
Маленький Вопросик
28.05.20
✎
19:48
|
почему константа не подойдет?
|
|||
20
Cyberhawk
28.05.20
✎
19:48
|
(18) А какие в этом случае преимущества у последовательности перед регистром сведений? Гранулярность до момента времени наверное только, по сравнению с измерением РС, где максимум только миллисекунды хранить можно. Но ведь можно в РС и сам документ точно так же схоронить.
|
|||
21
Маленький Вопросик
28.05.20
✎
19:49
|
а вообще похоже не правильно задача поставлена... городьбы много
|
|||
22
vde69
28.05.20
✎
19:50
|
хотя конечно если он делает интерфейс к внешней базе, то может логичнее будет план обменов...
на самом деле все завит от того надо где-то в других документах что-то делать или нет (например пересчитать партии во фифо) |
|||
23
vde69
28.05.20
✎
19:51
|
(20) последовательность работает с регистратором, а РС тебе придется делать независимый. Это я к вопросу блокировок и скорости работы индексов
|
|||
24
Маленький Вопросик
28.05.20
✎
19:56
|
(23) тут вопрос еще не ясно каким рабочим способом решать, а ты уже про скорости работы индексов....
|
|||
25
Маленький Вопросик
28.05.20
✎
20:01
|
даже не через константу, наверное так можно что-то подобное... http://catalog.mista.ru/public/1142470/ (Обмен через регистр сведений)
|
|||
26
DrWeb
28.05.20
✎
20:56
|
Да не. Решил через регистр сведений. Кстати это решает проблему и с завершением транзакции.
1. Запускаю фоновое, которое раз в секунду опрашивает регистр сведений. 2. Пишу в регистр сведений с одним измерением "Номенклатура". 3. Когда фоновое что-то получило из регистра - значит и транзакция завершена и она обновляет остатки во внешней системе. Вуаля. Осталось придумать как не запускать 8 фоновых заданий по 8 событиям. Ну положим 4 можно сразу отфильтровать это ПередЗаписью. Остается 4 вызова ПриЗаписи. Понять сколько их будет реально 4, 2 или одно (если движения только по одному регистру и это отмена проведения) не возможно. Поэтому фоновое запускается в первом же вызове ПриЗаписи. Но пока не понятно как не запускать новые фоновые в оставшихся вызовах ПриЗаписи если таковые будут. |
|||
27
DrWeb
28.05.20
✎
21:14
|
А, понятно. Просто фоновое запускается событием ПередЗаписью самого документа. Оно срабатывает и при перепроведении или отмене проведения из формы списка
|
|||
28
vde69
28.05.20
✎
21:47
|
(27) не правильно, изменение регистра может быть без записи документа. Вариантов масса...
самое правильно подписка на событие ПриЗаписи у регистра, там в собитии можно отследить это удаление или запись |
|||
29
DrWeb
28.05.20
✎
22:25
|
(28) Приведите пример изменения регистра ТоварыНаСкладах (УТ 10.3) без записи документа. Точнее без генерации события ПередЗаписью
|
|||
30
DrWeb
28.05.20
✎
22:26
|
(28) "ПриЗаписи у регистра" там идет сбор данных, проблема в том, что эти события вызываются слишком много раз для одного проведения, а мне нужно одно фоновое задание, которое подождет пока документ проведется. см. ссылку в (0) если интересно
|
|||
31
vde69
28.05.20
✎
22:59
|
(29) например типовой обмен данными с режимом загрузки движений
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |