Имя: Пароль:
1C
1С v8
План обмена. Повторно выгрузить измененные объекты за 14 год
, ,
0 mrParadox
 
21.01.14
16:33
Добрый день, коллеги.

Имеется 2 базы с настроенным обменом распределенной ИБ. Необходимо в 1 из баз повторно выгрузить все изменения, которые были осуществлены за 14 год. Как можно это сделать? Спасибо.
1 Maxus43
 
21.01.14
16:34
все изменения никак...
если есть версионирование - можно определить ссылочные типы, записи регистров не вычислить
2 Ksandr
 
21.01.14
16:34
конфа какая? в некоторых есть регистрация изменений, пишешь запрос с полем Ссылка, где Дата >= &Дата.
И собственно все.
Если такого в конфе нет то на ИС точно есть
3 mrParadox
 
21.01.14
16:38
конфигурация УПП последней версии
4 dmpl
 
21.01.14
16:41
(0) Из этой базы приходило подтверждение получения данных?
5 mrParadox
 
21.01.14
16:47
(4) Да. Первая база сейчас шлет пакет в 200 кб размером. В ней активная работа велась в этом году
6 mrParadox
 
21.01.14
16:48
вторая база настроена так, что только считывает изменения первой, а сама свои изменения не шлет в ответ, а шлет пустой пакет
7 Maxus43
 
21.01.14
16:50
что случилось то? зачем эти изменения опять посылать? из бэкапа подняли базу чтоль?
8 mrParadox
 
21.01.14
16:56
Случилось страшное. Первая база была скопирована в тестовую копию. НО обмен выключен на копии не был. Соответственно, эта копия базы отправила свои пакеты второй базе, из-за чего произошло рассогласование обмена между первой и второй базами
9 mrParadox
 
21.01.14
16:57
Причем первая база считает, что вторая все изменения успешно приняла, а по факту вторая база приняла пустые пакеты от копии первой.
10 Maxus43
 
21.01.14
16:58
в тестовой может легче посмотреть что менялось (по ЖР например), и перезаписать иди данные в настоящей базе
11 uup
 
21.01.14
16:59
(6) Есть обработка "Регистрация изменений для обмена"
можно ее изменить.

А вообще вот:

// Выбираем документы РасходнаяНакладная по складу узла
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ    Документ.РасходнаяНакладная
                       |ГДЕ Склад = &Склад");
Запрос.УстановитьПараметр("Склад", Узел.Склад);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    // регистрируем изменение документа для узла
    ПланыОбмена.ЗарегистрироватьИзменения(Узел, Выборка.Ссылка);  
КонецЦикла;

Только придется запрос строить динамически. Для каждого объекта метаданных.
12 mrParadox
 
21.01.14
16:59
(2) Что там на счет регистрации изменений? Есть что то подобное в УПП? Как достучаться туда?
13 Maxus43
 
21.01.14
17:01
зарегистрировать не проблема, тут проблема понять Что именно надо регистрировать
14 mrParadox
 
21.01.14
17:01
(10) В тестовой может ничего не менялось или совсем мало. Это не так важно, их было очень мало (база в основном простаивала). Важно что потеряны изменения в первой базе, которые были осуществлены после копирования в тестовую. В смысле для второй базы эти изменения потеряны.
15 mrParadox
 
21.01.14
17:03
(13) Регистрировать надо то, что было изменено в тестовой, и то, что было изменено в рабочей за период существования тестовой базы. Как получить последнее мне и хотелось бы знать больше всего
16 Maxus43
 
21.01.14
17:05
(15) см (1), что не понятно?
17 mrParadox
 
21.01.14
17:05
(11) Еще бы знать как вычислить объекты, измененные за период.
18 mrParadox
 
21.01.14
17:06
(16) Не сталкивался с версированием. Что это и как его едят?
19 Maxus43
 
21.01.14
17:07
(18) РС ВерсииОбъектов, история изменения там хранится, если включено
20 mrParadox
 
21.01.14
17:08
(19) Пусто :(
21 Maxus43
 
21.01.14
17:09
короче - в базе не хранится информация о том, что было изменено. Есть ЖР - там без регистров, только ссылки можно вычислить.
Чтобы понять что было изменено - надо что-то с чем-то сравнить
22 mrParadox
 
21.01.14
17:13
Тогда есть вариант сравнивать рабочую базу с тестовой копией и все различия регистрировать в рабочей.
23 mrParadox
 
21.01.14
17:13
Только как это осуществить на УПП объемом в 10 ГБ слабо себе представляю
24 Maxus43
 
21.01.14
17:13
(22) как вариант, но это ещё тот гемор будет думается мне
25 mrParadox
 
21.01.14
17:17
Другой вариант - поднять руки вверх и идти сдаваться. Вторая база ведется с середины декабря. И начать вести эту базу заново. Финансисты полютуют немного, да успокоятся. Помочь им вбить ранее внесеные данные. Правда есть риск лишиться премии.
26 temsa
 
21.01.14
17:23
1. найти умельцев умеющих менять номер сообщения в принмающей базе.
2. Выгрузить данные из реальнй ПБ  в ЦБ потом сделать полную выгрузку.
3. Выгрузить даные из реал ПБ в копию ПБ.

Одно из трех!
27 Maxus43
 
21.01.14
17:24
вбить данные всмысле документы? це перенести из рабочей и провести. Справочники тоже перенести можно, я говорю что например изменения в независимых регистрах уже тяжело отловить. А доки и справочники - фигня
28 mrParadox
 
21.01.14
17:28
(27) Предщложи пример отследить доки и справочники
29 Maxus43
 
21.01.14
17:30
(28) зачем их отслеживать? если ведётся с середины декабря - перелить просто все документы из рабочей в эту, все документы которые щас есть в базе куда заливать
30 mrParadox
 
21.01.14
17:32
скорее всего потеряна последняя неделя. Последний документ во второй базе от 14 января
31 mrParadox
 
21.01.14
17:33
думаю перезалить перерегистрировать доки, которых просто нет во второй базе ну или просто начиная с начала этого года
32 EugeniaK
 
21.01.14
17:33
Доки выгрузить по дате.
Используемые значения справочников сами выгрузятся с доками.
На остальное забить.
33 mrParadox
 
21.01.14
17:34
проблем не будет при обмене, если просто в планах обмена подогнать номера сообщений у этих баз под правильные?
34 vhl
 
21.01.14
17:47
Пометь все объекты как измененные и выгрузи. В чем проблема то?
35 SUA
 
21.01.14
17:49
(34)кстати да
10Gb ниочем
36 SUA
 
21.01.14
17:50
можно по очереди по метаданным если долго
37 mrParadox
 
22.01.14
09:34
(34) Тогда пропадут те изменения в документах, которые были произведены в базе 2
38 Рэйв
 
22.01.14
09:39
(0)Запиши все заново за 2014 год.
39 mrParadox
 
22.01.14
09:42
(38) за эту потеряную неделю в первой базе редактировалось много документов за весь 4 квартал 13 года, соответственно эти изменения будут упущены
40 mrParadox
 
23.01.14
16:40
Проблему решил.
Способ решения:
1) Из журнала регистрации выбрал перечень всех измененных документов и справочников за период отсутствия обмена между базами, выгрузил их в ЕКСЕЛЬ. Документы по номеру и дате, справочники по наименованию. В обоих случаях еще тип метаданных использовался.
2) Написал обработку, которая по номеру, дате и типу метаданных для документа и наименованию и типу метаданных для справочника регистрирует в базе №1 изменения  ПланыОбмена.ЗарегистрироватьИзменения(Узел, Выборка.Ссылка)
3) Зарегистрировал изменения изменения с помощью этой обработки для всех этих справочников и документов, которые были изменены в первой базе за время отсутствия(рассинхронизации) обмена между базами.
4) Подогнал номера сообщений в планах обмена и произвел обмен между базами.
5) Совместно с бухгалтерией сравнил оборотно-сальдовые ведомости и перепровел различные закрытия месяца чтобы оборотки обоих баз сошлись.
41 vhl
 
23.01.14
17:58
(37) У тебя все равно обмен односторонний и если в основной базе что-то меняют, то и в дочерней пропадает
Независимо от того, куда вы едете — это в гору и против ветра!