![]() |
![]() |
![]() |
|
Кто делал сравнение двух баз (справочники, документы)? Ваши варианты и предложения | ☑ | ||
---|---|---|---|---|
0
Serg_1960
24.11.08
✎
09:13
|
Есть две базы. Одна из них - копия другой. В ней были сделаны изменения пользователями, которые мне сейчас предстоит "выловить". Надо найти изменённые документы и записи справочников?
|
|||
1
Serg_1960
24.11.08
✎
09:14
|
Кроме "тупого" перебора значений через метаданные - более ничего в голову не приходит... Есть более "умное" решение? Или, может быть, уже есть готовое решение(обработка). Знаниями и ссылочками поделитесь?
|
|||
2
Нуф-Нуф
24.11.08
✎
09:15
|
более умное - монитор пользователей
|
|||
3
hulio_ekb
24.11.08
✎
09:18
|
Хм, а может сделать из них РБД, но не производить обмен, а сравнить таблицы изменений?
|
|||
4
Serg_1960
24.11.08
✎
09:18
|
(2) Ээээ? А подробнее? Утром в понедельник я особенно туплю :)
|
|||
5
H A D G E H O G s
24.11.08
✎
09:19
|
(0) Контрольная сумма на каждый СправочникОбъект/ДокументОбъект/ЗаписьРегистра.
|
|||
6
H A D G E H O G s
24.11.08
✎
09:19
|
(5) И при записи писать по всем реквизитам
|
|||
7
mageha
24.11.08
✎
09:19
|
планы обмена, регистрация изменений!!!
|
|||
8
Serg_1960
24.11.08
✎
09:20
|
(3) Умно :)Но не совсем :( Они "не РБД" и изменений никто не регистрировал ;)
|
|||
9
H A D G E H O G s
24.11.08
✎
09:21
|
(7) Тоже можно.. Это универсальней, но менее оптимально.
|
|||
10
Serg_1960
24.11.08
✎
09:22
|
(5) Контрольная сумма? Это Вы "просто так" сказали? Намекните кодом :(
|
|||
11
hulio_ekb
24.11.08
✎
09:22
|
(8) Дак их можно самому зарегистрировать ;)
|
|||
12
Mitriy
24.11.08
✎
09:22
|
(1) можно журнал регистрации изменений анализировать и сравнивать только то, что там фигурирует... если журнал включен, конечно...
|
|||
13
mageha
24.11.08
✎
09:23
|
(9) так проще зато!
|
|||
14
Serg_1960
24.11.08
✎
09:23
|
Коллеги! Изменения уже есть, - их ловить надо! А не те, которые будут "после" настройки РБД :(
|
|||
15
H A D G E H O G s
24.11.08
✎
09:24
|
(13) Зато в два раза медленней.
|
|||
16
H A D G E H O G s
24.11.08
✎
09:25
|
(14) Перебором, ИМХО
|
|||
17
Shurjk
24.11.08
✎
09:32
|
(14) Ну посмотри сначал итоги по регистрамна конец периода по тем которым они не сходятся смотри дальше двоичным поиском пока не найдешь регистратор. Ну это по документам, если интересуют их движения. По справочникам по моему только перебором.
|
|||
18
Нуф-Нуф
24.11.08
✎
09:34
|
заходишь в монитор - и смотришь все операции с базой с нужной тебе даты (с того момента когда пользователи могли что-то изменить).
|
|||
19
Serg_1960
24.11.08
✎
09:34
|
(17) +1 Сам я не додумался, - наверное мало думал :)
|
|||
20
DeoxyS
24.11.08
✎
09:36
|
(0) а "сравнить файлы..." ? с этим много чего интересного по моему можно придумать )...
|
|||
21
H A D G E H O G s
24.11.08
✎
09:37
|
(18) + 1. А еще можно фильтр одинаковый по метаданным наложить на ЖР в обоих базах, выгрузить результат в текст и сделать сравнение текстов в 1С.
|
|||
22
DeoxyS
24.11.08
✎
09:37
|
(21) баян ))))))))))))))
|
|||
23
H A D G E H O G s
24.11.08
✎
09:38
|
(22) Парралельная работа мысли..
|
|||
24
vde69
24.11.08
✎
09:41
|
на инфостаре видел готовую обработку по сверке, поищи
для справочников - http://www.infostart.ru/profile/6369/projects/706/ единственое надо будет заменить Записать() на Сообщить() и все |
|||
25
Serg_1960
24.11.08
✎
09:42
|
Так, так :)) Уже "горячо": выгрузить ЖР с даты создания копии в таблицы, сортирнуть по метаданным и сравнить...
|
|||
26
Serg_1960
24.11.08
✎
09:43
|
(24) Спасибо :) Я знал, что я не одинок в своём желании сравнить две базы :)
|
|||
27
Serg_1960
24.11.08
✎
09:47
|
Сорри, коллеги. Я выпал на энное время... изучаю обработку...
|
|||
28
dk
24.11.08
✎
09:48
|
имхо если надо знать точно, что есть изменения, а не факт перезаписи.
То только (5) - тормознуто, но надежно хотя (2) может не сильно будет от (5) отличаться по времени. |
|||
29
Serg_1960
24.11.08
✎
09:54
|
(28) Сорри, не понял про контрольную сумму. Это как? А "монитор" это что? Вы так журнал регистрации действий пользователей называете?А то "Монитор" и в отладчике есть :)
|
|||
30
dk
24.11.08
✎
10:01
|
хэш, контрольная сумма - повикипедь
суть - собираются все реквизиты и в соответствие им рассчитывает некая ф-ция. Функция такая, тобы при любом измененном реквизите значение изменялось (не совпадало). причем надо различать простые данные (число, строка, дата, перечисление) от ссылочных (справочник, документ). но функция, в твоем случае, не самая простая :( |
|||
31
Serg_1960
24.11.08
✎
10:10
|
(30) Спасибо. Понял. Термин "контрольная сумма" мне знаком :), но не в применении к 1С :( Пока "сам" не напишешь - контрольную сумму "не увидишь" :))
|
|||
32
Живой Ископаемый
24.11.08
✎
11:47
|
Если видов справочников/документом не много то
Можно воспользоваться обработкой с ИТС, универсальный обмен данных в формате ХМл.. повыгружать каждый спраовчник/документ в той и той базе, файлы сравнить... |
|||
33
H A D G E H O G s
24.11.08
✎
11:50
|
(30) Все просто, как сапог
|
|||
34
Живой Ископаемый
24.11.08
✎
11:52
|
хм.. сравнить только не 1С...
|
|||
35
KlesAlex
24.11.08
✎
11:55
|
(0) я бы попробовал сравнением сделать...обработка..суть - все что в журнале регистраций отображено....например было изменение документа...получаем документ - подключаемся к первой базе..сравниваем....по такой логике можно попробовать
|
|||
36
Живой Ископаемый
24.11.08
✎
11:57
|
в в77, когда я знал какие документы изменены - я просто в КА писал запрос, который показывал мне разницу... соединял ДХ и ДИ соответсвующих документов в рабочей базе и в бэкапе...
|
|||
37
Живой Ископаемый
24.11.08
✎
12:11
|
а, не, в8 тоже может сравнивать ХМЛ файлы как текстовые, при чем даже показывает их правильно... Так что, можно считать за способ...
|
|||
38
H A D G E H O G s
24.11.08
✎
12:14
|
Тупо завести Числовой РЕКВИЗИТ в справочниках/документах/регистрах (да, долго, но можно). Подписка на события справочника/документа ПриЗаписи(), с регистрами сложнее :-)
Перебор метаданные, извлечение данных. Ну и сходу, не вдаваясь в подробности: Для чисел используем их значения Для строк - их коды символов Для ссылок - переводим в число их идентификатор Хранилища значений конвертим в BASE64 - и как строку (но долго наверное) Дата - преобразуем в число Булево - в число. Все? Все вроде.. |
|||
41
Torquader
24.11.08
✎
18:33
|
А чем контрольная сумма быстрее простой выгрузки в файл ?
Конечно, будет очень медленно, но MD5 тоже не быстро считается. А вообще - цепануть базы по OLE выбрать из каждой по справочнику - отсортировать их по Коду (он уникальный) и пролистать, сравнивая - сразу появятся различия (предположительно, код элементов "зверями" не изменялся). |
|||
42
vde69
24.11.08
✎
18:47
|
||||
43
Ластик
24.11.08
✎
19:18
|
На ИТС есть обработка в универсальных отчетах и обработках "ВыгрузкаЗагрузкаДанныхXML.epf", выгрузить обе базы в XML и сравнить два файла.
|
|||
44
Живой Ископаемый
24.11.08
✎
19:20
|
(43) Боян! :)
|
|||
45
Asmody
модератор
24.11.08
✎
19:35
|
(43) фигня! делаем две выгрузки и скармливаем их комманде diff
|
|||
46
Ластик
24.11.08
✎
22:06
|
(44) ага... не заметил :)
(45) эт два dt чтоли сравнить? |
|||
47
UnAmerican
24.11.08
✎
22:27
|
В скуле берем два журнала регистраций и сравниваем. Получаем различия в строках. Так как журналы имеют свои свойства накапливаться, то отмечаем с какой строки смотреть. В общем одна средненькая хранимая процедурка на скуле.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |