Имя: Пароль:
1C
1С v8
КД 3.0 Добавить новый объект в структуру формата данных
0 ac13
 
25.02.20
16:36
В КД 3.0 загружены структуры метаданных двух баз, загружены структуры форматов данных и правила синхронизации двух баз.
Необходимо настроить новое правило конвертации между двумя справочниками разными справочниками. Например "Здания" и "Объекты строительства".
Проблема в том, что "Здания" присутствуют в структуре формата данных, а объекты строительства нет.
Как добавить новый объект в структуру формата данных?
1 VladZ
 
25.02.20
16:38
(0) Первый вопрос: почему именно КД3?
2 ac13
 
25.02.20
16:42
(1) потому что нужна настройка синхронизации баз на УФ через универсальный формат данных по расписанию. КД2 не подходит
3 VladZ
 
25.02.20
17:03
(2) А базы какие?
4 goodprog
 
25.02.20
17:10
(0) Это зачем? Цель универсального обмена в том, что его не нужно поддерживать от релиза к релизу. Пожалуйста запускайте обмены последовательно, сначала универсальный, затем ваши правила на КД2.
5 ac13
 
25.02.20
21:11
(4) как по расписанию можно использовать правила на КД 2.0?
(3) БП и дописанная УТ
6 Aleksey
 
25.02.20
21:15
(5) а в чем проблема по расписанию делать? КД2 вполне поддерживать автозагрузку через передачу параметров.
Далее вариант
1. Типовой функционал дополнительные отчеты и обработки поддерживают запуск по расписанию. Пишем обработку которая сформирует параметры для кд2 и запустить обработку с параметрами
2. Если это не типовая и не нужно обмен раз в 1 секунду - платформа вполне себе поддерживает запуск с передачей обработки в качестве параметра. Т.е. в обработки пишем тот же код по запуску и запускаем 1С с указанием в качестве параметра нашу обработку. Расписание задаем или в винде или в любом планировщике
7 ac13
 
25.02.20
21:20
(6) а регистрация изменений в таком режиме работает? нужно только измененные объекты выгружать
8 ДенисЧ
 
25.02.20
21:22
(7) Ты не поверишь... Но до того, как в 1с начали раздавать ЛСД (после чего был придуман КД3) - обмены на регулярной основе ходили в КД2. И изменения ходили, и ответы-квитанции прилетали...
9 ac13
 
25.02.20
21:26
(6) этот вариант слишком сложный
10 Aleksey
 
25.02.20
21:32
(7) а какая разница как выгружать руками или через параметры?
11 kofeinik
 
25.02.20
21:36
(4) а почему тогда регулярно синхронизация типовых перестает работать после обновления?
12 ac13
 
25.02.20
21:40
А есть вариант в свежий релиз бухгалтерии для универсального обмена запихнуть свои правила из КД?
там сейчас всё порезано и все обмены дописываются только через EnterpriseData, что очень неудобно.
Реально простой обмен между свежими релизами управляемых форм дописать весьма сложно.
13 ac13
 
25.02.20
21:45
Я бы допилил обмен через универсальный формат, только нигде не могу найти доступной для понимания информации как настраивать нетиповой обмен на упр. формах
14 ac13
 
26.02.20
07:46
Есть кто сильные по данной теме?
15 ac13
 
26.02.20
08:02
Вот ещё, может кто знает, если я добавил объект в структуру формата, как этот объект отразить в составе отправляемых данных?
16 Mankubus
 
26.02.20
08:22
(15) добавить ПКО и ПВД в общий модуль МенеджерОбменаЧерезУниверсальныйФормат
17 ac13
 
26.02.20
08:34
(16) это сделал, но в списке состава отправляемых данных справочник всё равно не появился
18 goodprog
 
26.02.20
09:11
(11) а вы не знаете причины?)
19 Rema Dan
 
26.02.20
12:02
(17) Если допиливать универсальный обмен, то для добавления нового объекта кроме редактирования модуля нужно ещё дополнить состав плана обмена, добавить новые объекты в подписки на событие регистрирующие изменения, добавить новые объекты в правила регистрации и, самое веселое, описать новые объекты в схеме данных (XDTO-пакете).
20 Rema Dan
 
26.02.20
12:05
(19)+ Важно помнить, что дорабатывать нужно как базу отправителя, так и базу получателя. Если получатель не найдёт в своей схеме данных новые объекты, то и разобрать он их не сможет.
21 ac13
 
26.02.20
12:43
(20) благодарю.
А есть вариант не меняя схему XDTO-пакета все объекты прописать через AdditionalInfo?
Например, если у меня самописные справочники или регистры сведений.
Нигде нет доступной информации как это делается ...
22 Rema Dan
 
26.02.20
12:59
(21) Данные всё равно нужно в каком-то виде выгружать. В теории можно одни данные маскировать под другие. Т.е. например можно выгружать документ Акт выполненных работ как документы реализация товаров (благо реквизиты похожи), а в AdditionalInfo выгружать признак того что это "Акт". Тогда при загрузке можно это увидеть и загрузить другим правилом. Однако при таком подходе потом начинаются интересные проблемы с выгрузкой ссылок на такие документы в других объектах, что требует ещё более изощрённых костылей. Я как-то дорабатывал передачу новых (нетиповых) справочников в обмене между двумя КА2 расширением. Расширение добавляло свою собственную схему данных (XDTO-пакете) (почти полностью идентичную оригинальной) и подменяло код выбора схемы.
23 ac13
 
26.02.20
13:10
(22) а где и в каком виде нужно прописать подмену Реализации на Акт через AdditionalInfo?
24 Rema Dan
 
26.02.20
13:17
(23) В ПВД со стороны загрузки. Там есть возможность заглянуть в XDTO данные, увидеть там "AdditionalInfo.Акт = Истина" и выбрать другое ПКО. Однако когда из других объектов обрабатывается ссылка на такой "Акт", то там уже ПВД не срабатывает и в XDTO данные заглянуть очень проблемно. Порядок прихода данных по обмену по умолчанию беспорядочен и получается тебе нужно принять решение грузить ссылку на "Акт" или на "Реализацию", но данных для принятия решения в обрабатываемом объекте нет, как нет и ещё самого документа, т.к. он в файле обмена дальше будет обработан ещё не скоро.
25 ac13
 
26.02.20
13:20
(24) спасибо за подробное описание. Да, вариант не из простых. Наверное все же лучше добавлять необходимые объекты в пакет XDTO
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший