|
Сбор данных из нескольких баз 1С | ☑ | ||
---|---|---|---|---|
0
Viverna
08.10.13
✎
09:37
|
Думаю проблема довольно общая. Задача обычная - есть несколько одинаковых баз 1С 8.2 SQL, нужно собрать из них данные для отчетности (сбор данных каждый день).
Период хоть и закрывается - но с опозданием и "не для всех". Здесь я вижу две стандартные проблемы: 1. Если документ поменяли задним числом. 2. Если документ удалили задним числом. Как можно это решить? Поля ВерсияДанных в конфигурации нет. Есть ли какой то универсальный способ? Можно ли полностью полагаться на журнал регистрации событий - вылавливать событие изменения или удаления объекта? |
|||
1
Asmody
08.10.13
✎
09:38
|
планы обмена для как раз для этого придуманы
|
|||
2
1Сергей
08.10.13
✎
09:40
|
главная проблема - это синхронизация
|
|||
3
Viverna
08.10.13
✎
09:50
|
(1) мне данные не в 1С выгружать надо, в стороннюю программу
|
|||
4
Viverna
08.10.13
✎
09:51
|
(1) как в планах обмена решается эта проблема? за счет чего?
|
|||
5
andreymongol82
08.10.13
✎
09:52
|
(4) Там есть табличка где накапливаются изменения объектов
|
|||
6
1Сергей
08.10.13
✎
09:52
|
(4) фиксируются все факты изменения объектов
|
|||
7
1Сергей
08.10.13
✎
09:53
|
(5) не совсем изменения
|
|||
8
andreymongol82
08.10.13
✎
09:56
|
(7) Ну эт да. Если быть точным.
|
|||
9
Viverna
08.10.13
✎
13:08
|
(5) А где это волшебное "там"?
Т.е. я вот создам план обмена получается в базе источнике. Значит в ней в какой то табличке будут сохраняться все изменения объектов, которые я задам в настройках плана обмена. Все верно? |
|||
10
Viverna
08.10.13
✎
14:48
|
Аха. Поняла примерно.
_AccumRegChangeRec - тут список измененных документов. Он видимо очищается после обмена. Только вот даты там изменения нет. _Node<n> - таблица плана обмена. Даты видимо где то здесь. |
|||
11
ptiz
08.10.13
✎
14:49
|
(10) Дат нет. Есть список измененных объектов.
|
|||
12
ДенисЧ
08.10.13
✎
14:50
|
ТОлько учтите....
Прямое обращение к таблицам SQL запрещено лицензией.... |
|||
13
Галахад
гуру
08.10.13
✎
14:55
|
(10) А зачем дата? Выгрузили данные, очистили таблицу изменений.
Если, что-то появилось в таблице, значит нужно грузить снова. |
|||
14
andreymongol82
08.10.13
✎
14:58
|
(9) Для начала пример из СП
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(ИмяФайла); ЗаписьСообщения.НачатьЗапись(Запись, Узел); Выб = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения); Пока Выб.Следующий() Цикл Объект = Выб.Получить(); ЗаписатьXML(Запись, Объект); КонецЦикла; ЗаписьСообщения.ЗакончитьЗапись(); Запись.Закрыть(); |
|||
15
Viverna
08.10.13
✎
15:13
|
(13) Аха. Как то слабо себе представляется внешней программой чистить данные в таблице 1С...
Тем более с учетом (12) |
|||
16
pwei
08.10.13
✎
15:19
|
(15) данные очищаются методом УдалитьРегистрациюИзменений()
|
|||
17
wms
08.10.13
✎
15:23
|
(0)добавь в каждую базу 1С один РС ИзмененныеСсылкиДляВыгрузки
измерение- ОбъектСсылка ну и в реквизиты всякую инфу например дата изменения и подписке при записи пиши в него, а после выгрузки удаляй записи |
|||
18
badboychik
08.10.13
✎
15:26
|
(15) Почему слабо представляется? Про СОМ-соединение не слышали что ли?
|
|||
19
wms
08.10.13
✎
15:27
|
(15)если по Com не получится, то удаляй из 1С. регламентное задание крутится и читает данные из внешнего файла что удалить в (17) в РС
|
|||
20
badboychik
08.10.13
✎
15:28
|
(19) Нет, пусть регламентное задание само готовит файл изменений, передает во внешнюю программу и ждет ответа что данные приняты, потом удаляет изменения
|
|||
21
wms
08.10.13
✎
15:39
|
(20)или так. от задачи/данных плясать
|
|||
22
Jump
08.10.13
✎
15:41
|
(12)Шутишь?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |