Имя: Пароль:
1C
1С v8
Как зарегистрировать в узле все справочники, связанные с документом?
0 MaxS
 
14.03.14
18:02
Некоторое время вели учет в УТ 11. Потом настроили односторонний обмен УТ 11 -> БП 3.0.
Перед первым обменом сбросили регистрацию всех объектов в обоих базах.
При обмене документами, естественно получаем битые ссылки в БП, т.к. справочники не переносились.

Есть ли универсальная обработка регистрации справочников и их ссылочных реквизитов, на которые есть ссылки из документа?
1 Fram
 
14.03.14
18:23
(0) меняй правила чтобы по ссылкам объекты тоже выгружались
2 MaxS
 
14.03.14
18:26
(1) Это разовая процедура - зарегистрировать в узле обмена.
Менять правила, значит перелопатить их полностью. :(

В случае изменения справочника он и так перейдёт в БП.
3 VikingKosmo
 
14.03.14
18:27
Справочников в обмене УТ-БП два десятка
4 Fram
 
14.03.14
18:28
(2) поставить 20-30 галочек
5 VikingKosmo
 
14.03.14
18:28
Обработку написать которая зарегистрирует изменения этих справочников можно минут за 10
6 Aleksey
 
14.03.14
18:29
а встроенная чем не нравится?
7 MaxS
 
14.03.14
18:29
(3) Все справочники не нужны.
УТ 11 сильно доработана, там есть нетиповые документы, которые используют типовые справочники.
8 VikingKosmo
 
14.03.14
18:43
(7) нетиповые документы прописаны в ПравилахОбмена?
9 MaxS
 
14.03.14
18:50
(8) Некоторые прописаны.

Нужны не все элементы справочников, а только те, которые в составе документов, которые переносятся в БП.
И реквизиты этих справочников тоже должны быть заполнены в БП.
10 Fram
 
14.03.14
18:57
(9) давно бы уже проставил галочки в правилах и выгрузил
11 VikingKosmo
 
14.03.14
19:03
(10) Или написать рекурсивный поиск используемых значений...
12 MaxS
 
14.03.14
19:16
(10) Какие галочки? ))
(11) Этот вопрос в (0). Есть такая обработка? На инфостарте, например?
13 VikingKosmo
 
14.03.14
19:22
(12) я что то подобное сам писал. Про Инфостарт, я хз, это там искать надо.
14 Fram
 
15.03.14
18:52
15 Fram
 
15.03.14
18:52
+(14) вернее наоборот - проставить эти галочки
16 Fram
 
15.03.14
18:53
+(15) тьфу.. снять галочки
17 MaxS
 
16.03.14
09:33
(16) Галочки и так сняты.
Это работает, если обычный обмен универсальной обработкой.

Здесь в обмен попадает только то, что зарегистрировано в узле, т.е. только измененными объектами.
Правила обмена не занимаются регистрацией объектов обмена.
18 hhhh
 
16.03.14
10:27
(17) ну там есть обработка "регистрация изменений". Можно всё что хочешь зарегистрировать. Если в ут11 нет, можно с Ут10 скачать или с бп20 и запустать в режиме обычных форм.
19 MaxS
 
16.03.14
11:01
(18) Так и у меня есть - от последней конвертации, для УФ.
Как это поможет зарегистрировать _элементы_ справочников (не виды), связанных с документами? Разве, что мега запрос написать...

Выбрать
Документ.Реквизит1 как СсылкаСправочникаДляРегистрацииВУзле
Из документ как документ
где документ дата >&ДатаНач
Объединить все
Выбрать
Документ.Реквизит2
Из документ как документ
где документ дата >&ДатаНач
...
Объединить все
Выбрать
Документ.Реквизит1.Реквизит1
Из документ как документ
где документ дата >&ДатаНач
Объединить все
Выбрать
Документ.Реквизит2.Реквизит1
Из документ как документ
где документ дата >&ДатаНач
...

Проще написать обработку, которую запускать в приемнике. Анализ документов за период, рекурсивный поиск битых ссылок, подключение к базе источнику и поиск там соответствующего документа и регистрация справочника.

Эту обработку сделать внешней и запускать фоновым заданием какое-то время, пока все не наладится.
20 ДенисЧ
 
16.03.14
11:13
Давно уже написал бы....
Такое рисуется за пару часов...
А ты 2е суток с Муму любовью занимаешься....
21 MaxS
 
16.03.14
12:04
(20) Не нужно мне тыкать и указывать что делать. Хорошо?
Прежде чем изобретать велосипед, предпринимается попытка найти его.
Когда и что делать я сам знаю.
22 KarpovDeniska
 
16.03.14
13:23
(21) ну так посмотри, что делает эта галочка из (14) и как отрабатывает в правилах обмена, либо посмотри универсальный обмен XML, там тоже есть галочки выгружать подчиненные. Но как тебе уже написали , это делается максимум за 2 часа.
23 ДенисЧ
 
16.03.14
13:27
(21) Какие мы злые...
24 Fram
 
16.03.14
16:29
(17) Ошибаешься. Механизм выгрузки через правила всегда руководствуется правилами. Регистрация объектов это предыдущий более верхний уровень.
Т.е. если указанная мною галка не стоит, то механизм КД всегда выгрузит объекты по ссылкам, если для них есть правила.
25 MaxS
 
16.03.14
18:42
(24) (22) В типовой УТ 11
Модуль ОбменДаннымиСервер
Функция ПолучитьОбработкуОбменаДаннымиДляВыгрузки
...
ОбработкаОбменаДанными = Обработки.КонвертацияОбъектовИнформационныхБаз.Создать();
ОбработкаОбменаДанными.РежимОбмена = "Выгрузка";
ОбработкаОбменаДанными.НеВыгружатьОбъектыПоСсылкам = Истина;

Потом эта переменная используется в функции ВыгрузитьПоПравилу...

Т.е. то, что зарегистрировано, то и выгружается.
Если допустить выгрузку по ссылкам при обмене между базами, объемы обмена значительно возрастут.

Этот вариант с выгрузкой по ссылкам если и применять, то в последнюю очередь. Самый щадящий вариант - один раз зарегистрировать нужные элементы справочников.
26 Fram
 
16.03.14
20:42
(25) Ты можешь все документы зарегистрировать. Их, наверно, не так уж много видов, даже если много самих данных. Остальное паровозом приедет. И это выполнить только один раз ночью.
27 MaxS
 
18.03.14
07:29
(26) Не подходит такой вариант, т.к. будет переноситься по ссылкам всё в обход правил регистрации, игнорируя отбор по организации...

Сделал обработку, которая запускается в БП, в документах ищет битые ссылки, в УТ ищет аналогичный документ, регистрирует эти справочники в УТ и реквизиты справочника.
Но делается это не за 2 часа. т.к. много времени нужно только на то, чтобы сопоставить разные типы и наименования реквизитов разных баз.
Идеально было бы подгружать правила обмена УТ-БП, где все соответствия установлены, но это долго для разовой задачи.

На инфостарте кое что находил, но это для идентичных распределенных баз.