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

Свободные остатки УТ 11.4.10.75

Свободные остатки УТ 11.4.10.75
Я
   lubitelxml
 
05.08.21 - 12:56
Всем доброго дня. Вопрос в следующем - есть регистр накопления Свободные остатки, мне необходимо при проведении документа (любого) отслеживать - какие изменения будут записаны в регистр. Смотрю в модуле набора записей есть процедура
СформироватьТаблицуИзмененийДвижений(). Вопрос - как мне получить по каким номенклатура + характеристика + склад идет изменение?
   Мультук
 
1 - 05.08.21 - 13:14
(0)

ПроведениеСерверУТ.ВыполнитьКонтрольРезультатовПроведения(...)

Объект.ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы;

Временная таблица "ДвиженияСвободныеОстаткиИзменение"

P.S.

Ты бы лучше написал какую задачу пытаешься решить.
SQL-сервер конечной железный, но иногда его жаль.
   lubitelxml
 
2 - 05.08.21 - 13:19
(1) задача такая - база сильно доработана, подбор сильно тормозит (очень много доп. данных выведено на форму), было принято решение добавить РС для данных по номенклатуре - туда писать остатки и еще с десяток ресурсов. Регламентом ночью этот РС будет пересчитан, но при проведении в течении необходимо отлавливать изменение остатков и менять в своем РС. Вот и хочу отследить по каким измерениям нужно пересчитать
   lubitelxml
 
3 - 05.08.21 - 13:20
+(2) после вынесения всего этого в РС, получил ускорение в несколько раз
   ildary
 
4 - 05.08.21 - 13:24
(2) Такая же идея пришла в голову фирме 1С и они переделали хранение свободных остатков в версии 11.5.7, и Вам придется переделывать свой костылик, когда придёт время обновляться на эту версию (это будет нескоро).
   lubitelxml
 
5 - 05.08.21 - 13:25
Если получить вот так: Для каждого запись из ЭтотОбъект Цикл в процедуре СформироватьТаблицуИзмененийДвижений() - какие тут могут быть подводные камни? и правильно ли так изменения получать?
   lubitelxml
 
6 - 05.08.21 - 13:26
(4) эх... на 11.5 не скоро будет переход, пишем свое
   DrShad
 
7 - 05.08.21 - 13:30
(5) а если будет записан пустой набор? т.е. отмена проведения
   lubitelxml
 
8 - 05.08.21 - 13:33
(7) ну вот поэтому и создал тему. Подскажите - как правильно сделать
   lodger
 
9 - 05.08.21 - 13:36
(2) почему нельзя остатки брать из своего РС и подкидывать ему обороты из РН за последние нерассчитанные часы?
   lubitelxml
 
10 - 05.08.21 - 13:38
(9) потому что в базе 150 человек активно колотят документы, надо сразу дублировать запись из РН в свой РС, иначе данные могут быть неактуальные
   DrShad
 
11 - 05.08.21 - 13:42
(10) был у меня клиент 3 менеджера и два кладовщика, но подбор тормозил жутко - пришлось именно его оптимизировать. разным менеджерам нужная разная инфа, а не все что есть
   DrShad
 
12 - 05.08.21 - 13:44
кстати очень помогло использование общих модулей с повторным использованием, зуб даю что вы при своих поделках этим не заморачивались )))
   lubitelxml
 
13 - 05.08.21 - 13:53
(12) не очень вижу что там можно закешировать, данные меняются
   lubitelxml
 
14 - 05.08.21 - 14:29
ап. Как правильно такое организовать? уверен что делалось уже кем то такое и не раз. УТ 11.5 конечно вариант посмотреть, но может кто подскажет что-то еще?
   lubitelxml
 
15 - 05.08.21 - 16:29
Неужели никто ничего дельного не посоветует?
   Kassern
 
16 - 05.08.21 - 16:35
(2) план обмена используйте, через него регистрируйте изменения документов в течение дня. Далее регламентным заданием пробегайте по изменениям и по ним уже обновляйте ваш РС. Что считать изменением, это уже вам решать, можете свою функцию проверки создать, если она не сильно долгая по выполнению. А по результату уже записывать изменение в узел. Можете все записывать в узел без проверки, а далее по измененным данным (что за записали) делаете запрос к вашему РС, сравниваете 2 таблицы, если значения отличаются, то для тех строк записываете новые значения.
   Мультук
 
17 - 05.08.21 - 16:42
Одно не пойму.

РегистрНакопления.СвободныеОстатки.Остатки () -- это агрегат (итоги).
Данный регистр пересчитывается (блокировки, оптимизация, бла-бла-бла) на уровне платформы.
Почему, регистр сведений изобретаемый топикпастером, софтовый аналог этого агрегата, на прикладном уровне будет заполняться и работать быстрее?
   Kassern
 
18 - 05.08.21 - 16:49
(17) скорее всего запрос сложный у него в подборе с кучей соединений и условий. Вот он и хочет львиную часть на формирование переложить на регламент, а в течение дня пользоваться уже результирующим РС.
   lubitelxml
 
19 - 05.08.21 - 17:06
(18) именно так, там кроме остатков еще ресурсов более 10 штук, все собирается из множества таблиц
   lubitelxml
 
20 - 05.08.21 - 17:34
+(19) из-за этого тормозит динамический список так, что работать невозможно, РС дал ускорение в 3-4 раза, осталось данные в течении дня актуализировать
   Kassern
 
21 - 05.08.21 - 17:37
(20) я ж вам расписал как это сделать, самый безобидный способ, регать все изменения по нужным объектам в план и далее сравнивать в вашим РС, там где значения поменялись, те записи обновлять.
   lubitelxml
 
22 - 05.08.21 - 17:43
(21) неужели нет универсального способа? Нельзя отследить движения регистра, без разницы, пустой набор или нет? не очень хочется по документно регистрировать изменения
   BeerHelpsMeWin
 
23 - 05.08.21 - 18:31
Подписка на событие "ПриЗаписи" регистра накоплений не подойдет?
   lubitelxml
 
24 - 05.08.21 - 18:42
(23) когда идет движение расход или приход - все видно, проблема с отменой проведения документа, это я поймать не могу в ПриЗаписи
   lubitelxml
 
25 - 05.08.21 - 19:18
В общем вижу сейчас 2 варианта - вариант из (16), и вариант - создать подписку с событием ОбработкаУдаленияПроведения для всех документов которые могут двигать СвободныеОстатки, и уже там проверять по ТЧ изменились ли остатки, если да - обновлять эту запись в своем регистре. Пока склоняюсь ко второму варианту, поскольку с планами обмена очень мало сталкивался.
На что еще стоит обратить внимание?
   unknown181538
 
26 - 05.08.21 - 20:17
(11) Из оптимизаций на маленьких базах - в файловой помогает включение индексирования в измерениях регистра.
   lubitelxml
 
27 - 05.08.21 - 20:25
(26) с этим вопросов нет.
   ildary
 
28 - 06.08.21 - 08:21
(25) есть ещё один вариант - написать свою обработку рабочего места, чтобы в ней не было километрового типового запроса.
   Kassern
 
29 - 06.08.21 - 09:17
(25) только вот нужно понимать сколько времени будет ваша проверка отрабатывать. К примеру у вас в день проводят 2000 документов, если проверка занимает 3-5 сек, то это будет просто жесть, вас юзверы съедят. А еще есть различные случаи, когда надо за старый период документы провести, или там месяц закрыть. Если в этом случае будете свою проверку юзать, то время выполнения значительно увеличится. Еще не дай бог проблемы с блокировкой таблиц появится. Так что надо все это дело учитывать, прежде чем утяжелять проведение документов.
   lubitelxml
 
30 - 06.08.21 - 11:34
(28) ну вот сейчас начал проверять на большом объеме данных - не устраивает все равно скорость работы "подбор в документы продаж". Походу придется вообще запрос типовой убирать (я его оптимизировал).
(29) в фоновое задание вынесу проверку/обнновление
 
 


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