Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Есть какой-то аналог глобальной переменной в 1С 8?

Есть какой-то аналог глобальной переменной в 1С 8?
Я
   DrWeb
 
28.05.20 - 18:29
Как я уже писал в Как в фоновом задании узнать завершено ли проведение документа остатки при перепроведении документа изменяются 4 раза. Автоудаление движений по двум регистрам (которые меня интересуют) и затем запись новых движений в эти же регистры.

Сделал подписку на события ПередЗаписью (чтобы отследить удаляемые из документа товары) и ПриЗаписи для наборов записей по этим регистрам. Соответственно имею 8 вызовов, в которых собираю массив товаров, требующих обновления остатков во внешней системе.

Теперь вопрос: Где хранить этот массив, чтобы он был доступен во всех восьми вызовах обработчиков событий (разных объектов иначе бы заюзал ДополнительныеСвойства) и затем в фоновом задании, обновляющем остатки во внешней системе?

Напрашивается вроде ВременноеХранилище, но тогда нужно сгенерить какой-то адрес и дальше сделать его доступным во всех этих вызовах. Как? Или может быть как-то еще?
   MyNick
 
1 - 28.05.20 - 18:31
Ну у тебя же полосочка длинная, должен же понимать, что этот твой огромный колосс не устоит на ногах. Меняй его на что-то более устойчивое.
   Вафель
 
2 - 28.05.20 - 18:32
параметр сеанса
   Chameleon1980
 
3 - 28.05.20 - 18:33
хз в константу
   Chameleon1980
 
4 - 28.05.20 - 18:33
будет видно во всех сеаесах даже. для сеанса хз в (2)
   MyNick
 
5 - 28.05.20 - 18:36
(4) сеанс ликвидируется в самый неудачный момент (а это точно произойдет), и все тру ляля по одному месту.
Не надо городить колхоз.
   Волшебник
 
Модератор
6 - 28.05.20 - 18:36
(0) Заведи план обмена
   DrWeb
 
7 - 28.05.20 - 18:37
(6) К этому и склоняюсь, но думал обойтись без лишних обращений к БД
   Волшебник
 
Модератор
8 - 28.05.20 - 18:40
(7) Не надо городить колхоз.
   H A D G E H O G s
 
9 - 28.05.20 - 18:41
Параметр сеанса для этого и создан
   DrWeb
 
10 - 28.05.20 - 18:42
(8) Ок. Спасибо. Убедил )
   DrWeb
 
11 - 28.05.20 - 18:45
(10) Если что-то пойдет не так и транзакция в документе завершится, а онлайн обновление упадет, то ждать когда по этим же товарам будут следующие движения можно долго, а так при следующем обмене из плана все изменения накатятся. Наверное да, так правильно.

Я правда планы обмена никогда не юзал. Пойду курить доки
   Волшебник
 
Модератор
12 - 28.05.20 - 18:46
(11) Ой, там легко. Создай предопределённый узел, настрой состав.
Записал регистрацию изменений, выгрузил, удалил регистрацию изменений.
   DrWeb
 
13 - 28.05.20 - 18:55
(12) Со слова "Предопределенный" становится не понятно. Ну я подозреваю, что это похоже на предопределенные элементы справочников например, но я сильно от этого далёк. Что-то слышал краем уха, что они бывают ))
   MyNick
 
14 - 28.05.20 - 19:20
(11) не очищай данные узла, если "обновление упадет". Прогрузишь следующим регламентом.
   vde69
 
15 - 28.05.20 - 19:26
(0) однозначно ПОСЛЕДОВАТЕЛЬНОСТЬ
   vde69
 
16 - 28.05.20 - 19:28
(15) +
1. в случае сбоя сразу видно и номенклатуру и регистратор
2. сразу можно включать в последовательнось документы имеющие взаимное влияние
3. удобный механизм востановления, в том числе при штатном перепроведении
   Cyberhawk
 
17 - 28.05.20 - 19:43
(16) Как ты в последовательности собираешься хранить только измененную номенклатуру?
   vde69
 
18 - 28.05.20 - 19:46
(17) последовательность с 1 измерением "номенклатура", ему надо контролировать удаление номенклатуры из документа, и когда удалили он хочет ее удалять в других документах. Это 100% задача для последовательности
   МаленькийВопросик
 
19 - 28.05.20 - 19:48
почему константа не подойдет?
   Cyberhawk
 
20 - 28.05.20 - 19:48
(18) А какие в этом случае преимущества у последовательности перед регистром сведений? Гранулярность до момента времени наверное только, по сравнению с измерением РС, где максимум только миллисекунды хранить можно. Но ведь можно в РС и сам документ точно так же схоронить.
   МаленькийВопросик
 
21 - 28.05.20 - 19:49
а вообще похоже не правильно задача поставлена... городьбы много
   vde69
 
22 - 28.05.20 - 19:50
хотя конечно если он делает интерфейс к внешней базе, то может логичнее будет план обменов...

на самом деле все завит от того надо где-то в других документах что-то делать или нет (например пересчитать партии во фифо)
   vde69
 
23 - 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/ (Обмен через регистр сведений)
   DrWeb
 
26 - 28.05.20 - 20:56
Да не. Решил через регистр сведений. Кстати это решает проблему и с завершением транзакции.

1. Запускаю фоновое, которое раз в секунду опрашивает регистр сведений.
2. Пишу в регистр сведений с одним измерением "Номенклатура".
3. Когда фоновое что-то получило из регистра - значит и транзакция завершена и она обновляет остатки во внешней системе. Вуаля.

Осталось придумать как не запускать 8 фоновых заданий по 8 событиям. Ну положим 4 можно сразу отфильтровать это ПередЗаписью.
Остается 4 вызова ПриЗаписи. Понять сколько их будет реально 4, 2 или одно (если движения только по одному регистру и это отмена проведения) не возможно. Поэтому фоновое запускается в первом же вызове ПриЗаписи.

Но пока не понятно как не запускать новые фоновые в оставшихся вызовах ПриЗаписи если таковые будут.
   DrWeb
 
27 - 28.05.20 - 21:14
А, понятно. Просто фоновое запускается событием ПередЗаписью самого документа. Оно срабатывает и при перепроведении или отмене проведения из формы списка
   vde69
 
28 - 28.05.20 - 21:47
(27) не правильно, изменение регистра может быть без записи документа. Вариантов масса...

самое правильно подписка на событие ПриЗаписи у регистра, там в собитии можно отследить это удаление или запись
   DrWeb
 
29 - 28.05.20 - 22:25
(28) Приведите пример изменения регистра ТоварыНаСкладах (УТ 10.3) без записи документа. Точнее без генерации события ПередЗаписью
   DrWeb
 
30 - 28.05.20 - 22:26
(28) "ПриЗаписи у регистра" там идет сбор данных, проблема в том, что эти события вызываются слишком много раз для одного проведения, а мне нужно одно фоновое задание, которое подождет пока документ проведется. см. ссылку в (0) если интересно
 
 Рекламное место пустует
   vde69
 
31 - 28.05.20 - 22:59
(29) например типовой обмен данными с режимом загрузки движений


Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.