Имя: Пароль:
1C
1С v8
Помогите определится с архитектурным решением загрузки регистров
0 dimpson
 
14.01.15
12:59
Добрый день!
Не могу определиться с выбором архитектуры для задачи. Может у кого-нибудь есть опыт. Задача в принципе простая:

Есть некая самописная конфигурация (звучит уже страшно :) - сбор отчетности. Данные загружаются из множества систем и данных очень и очень много (т.е. оптимизация также важна).

1. Допустим, пришли данные из какой-нибудь системы за март-май.
Я создаю документ-манифест (нужно некое описалово к загрузке и нужен регистратор к регистру накопления) и делаю сразу проводки (без табличной части) в регистр накопления (или сведений - в зависимости от данных). В дальнейшем документ перепровести нельзя (одно из спасительных условий задачи).

2. Далее пришли данные из той же системы, но за апрель-июнь, т.е. возникло пересечение периодов. Причем некоторые данные прошлой загрузки стали неактуальны, т.е. их надо удалить. Создаю документ по аналогии с пунктом 1.

И тут возникает у меня делема.
Можно удалить все данные за апрель-май. В регистре накопления удалять записи другого регистратора мне кажется не комильфо. Сторнировать - бардак какой-то получается - сторнировать тысячу проводок.. хотя может это решение. К тому же желательно (не критично, но очень желательно) оставить историю загрузки по Документу из пункта 1 (можно, конечно, и другими методами сохранять историю).
С регистром сведений - проще - он может работать без регистратора.

Есть желание использовать реквизит "Активность". Но, во-первых, не уверен, что это положительно скажется на быстродействии, во-вторых, ни разу не видел использование данного свойства в стандартных конфигурациях, что наталкивает на мысль о нецелесообразности использования данной фичи.



Может есть какие-нибудь идеи?
(Задача не уникальная - скорее всего есть простое стандартное решение, но вот туплю и все тут)
1 vicof
 
14.01.15
13:04
Сделай по регистратору на каждый месяц
2 StaticUnsafe
 
14.01.15
13:05
Разбивай данные на меньшие периоды, например по месяцам, или по неделям. И вводи их со своим регистратором. В дальнейшем обрабатывать данные состоящие из меньших порций проще.
3 dimpson
 
14.01.15
13:12
Сорри - не уточнил.
Периодичность для некоторых отчетов - месяц.
Для некоторых - час.
Документ на каждый час - спасибо, подумаю.
4 dimpson
 
14.01.15
13:14
Может кто посвятит - насколько критично для производительности использование свойства активность (построения отчетов с условием по активности)?
5 H A D G E H O G s
 
14.01.15
13:17
(4) Критично.
Активность не входит в кластерный индекс
6 Зеленый пень
 
14.01.15
13:21
Как вариант - переносить устаревшие записи в отдельный регистр-копию. Вроде и данные есть, но не мешают, а если там у них активность снять, то и в итогах регистра-копии мешаться не будут.
7 Aceforg
 
14.01.15
13:21
(5) Если в отчетах используются только виртуальные таблицы, тоже критично?
8 МихаилМ
 
14.01.15
13:25
данные должны иметь возможность перезагрузки
соответственно их нужно хранить как реплики источники
так и источники (если это файлы)

разделите задачу на подзадачи


1) обработка данных

сохранение данных и формирование предобработанных данных
и алгоритмов обработки либо ссылки на версии обработок
тк  структуры данных источников и алгоритмы могут меняться


2) ввод данных в учетную систему

  тогда можно загружать только недостающие данные
  + корректировочную информацию.


Я бы советовал 1) выделить в отдельную бд  для удобства
резервного копирования.
т.к. важность вспомогательных данных меньше, а объемы
данных сопоставимы.
9 H A D G E H O G s
 
14.01.15
13:26
(7) Если регистр - оборотный - то нет, если остаточный - и по нему строятся обороты, либо берутся остатки ~на дату~ - то критично.
10 ifso
 
14.01.15
13:32
для налорга готовишь систему сбора НДСных деклараций, не ?)
11 H A D G E H O G s
 
14.01.15
13:36
Ну как критично - если ты планируешь 100% использовать индексы, отлаживать, оптимизировать - тогда критично, иначе - пофиг.
12 Лефмихалыч
 
14.01.15
13:50
(0) добавь еще одно спасительное условие "данные загружаются не меньше, чем за месяц" (или неделю или день или как хочешь) и записывай в приемник помесячно (понедельно и т.д.). Соответственно при перезагрузке просто заменяй движения у соответствующего периода
13 dimpson
 
14.01.15
14:37
(10) нет. задача локального масштаба (правда организация мега большая)
14 dimpson
 
14.01.15
14:39
Всем спасибо - буду курить тему!
15 StaticUnsafe
 
15.01.15
11:09
(5) в 8.3 уже входит
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн