Занятие № 14. Курс «1С:Конвертация данных 2.1 – Профессиональная настройка правил обмена и типовые сценарии переноса данных»
Обмен только измененными объектами
Изучите теорию модуля № 3:
- Глава 4. Универсальный обмен + планы обмена
- Глава 5. Обмен по расписанию
Выполните практическое задание:
Отчеты по домашним заданиям размещайте по ссылкам, указанным выше. Отчеты, опубликованные на этой странице, удаляются без предупреждения.
Ваши вопросы по материалам данного занятия задавайте в комментарии ниже.
Общие вопросы по курсу, не связанные с конкретным занятием, задавайте на странице: http://kursy-po-1c.ru/data-conv/all-hw/convdata-common-qa/
Общие вопросы по курсу, не связанные с конкретным занятием, задавайте на странице: http://kursy-po-1c.ru/data-conv/all-hw/convdata-common-qa/
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (41):
Комментарии закрыты
При изучении материала обнаружила, что при запуске Универсальной обработки V8Exchan82 выдаётся ошибка. Что можете посоветовать?
А запускали в какой версии платформы ?
Возможно, что пытаетесь запустить на платформе 8.3, а обработка от 8.2
Да, так и есть. Обработки от 8.2 на 8.3 не открываются, так как у них формат (внутренний) разный.
Либо открывайте на 8.2, либо пользуйтесь обработкой от 8.3 (v8Exchan83)
Некоторые обработки от 8.2 можно запустить на 8.3, открыв их в конфигураторе и сохранив. Но, насколько я помню, с этой обработкой не прокатит. Там возникают другие ошибки, уже на уровне кода на 1С
Речь вот об этой вкладке:
У меня вопрос по прочим обменам. При таких обменах используется справочник НастройкиОбменаДанными. На закладке элемента этого справочника “Обмен по правилам” есть “Настройки выгрузки”, где можно указать объект метаданных и настройку (Только по ссылке/Выгружать/Не выгружать).
1. Каким образом происходит заполнение этих настроек из правил обмена данными?
2. Если настройки не указаны ни для одного объекта- используются режим Выгружать?
3. Если настройки указаны только для части объектов, то для остальных будет использован режим Выгружать?
1) Только по ссылке – на закладке онлайн-обмен стоит галка “Выгружать объект (польностью) только при наличии на него ссылки
Не выгружать – стоит галка Отключить в ПВД
Выгружать – все остальное
Второй и третий вопрос не понял. Указаны и не указаны где ?
По 2 и 3 вопросу имеется в виду, что настройки не указаны в справочнике НастройкиОбменаДанными на закладке элемента этого справочника “Обмен по правилам” во вкладке “Настройки выгрузки”.
А такое разве возможно ? Зашел настройки, попытался удалить значение из колонки НастройкаВыгрузки. У меня не получилось.
Или Вы о чем-то другом ?
Это возможно в случае, если правила обмена меняются(добавляются какие-то объекты), но эта закладка повторно не перезаполняется. По-умолчанию она сама не заполняется и не перезаполняется.
А, вот Вы о чем. Если какого-либо объекта нет в ТЧ НастройкаВыгрузкиДанных, то все работает в соответствии с правилами регистрации и правилами конвертации. По-сути, эти настройки просто накладываются на те настройки, которые в правилах, изменяя их. Если настройки нет в ТЧ, то правила работают без изменений.
Здравствуйте!
Пытаюсь сделать автоматическую выгрузку по расписанию.
Использую произвольный алгоритм выгрузки. Есть ли готовые механизмы автоматической выгрузки для такой ситуации?
Насколько я понял при использовании планов обмена и механизма регистрации изменений нужно использовать в ПВД стандартную выборку.
Поясните пожалуйста этот момент.
Добрый день
Да, механизмы обменов в составе типовых конфигураций использую планы обмена. То есть выгружаются только те объекты, которые зарегистрированы к выгрузке. При этом в ПВД должен быть указан способ выборки Стандартная выборка.
Стандартного способа выполнять по расписанию ПВД с произвольным алгоритмом нет. Можно сделать такое программно, но с большой вероятностью это будет некорректное решение задачи, потому что без использования плана обмена невозможно гарантировать актуальность переносимых данных.
Объём данных небольшой, поэтому могу переносить все данные. Мне главное нужен готовый механизм автоматической выгрузки по правилам обмена с произвольным алгоритмом ПВД. Можете что-нибудь посоветовать? Или придётся самому писать процедуру для регламентного задания?
Ну тут да, либо вручную создавать регламентное задание. Либо, если есть план обмена, изменить правила так, чтобы ПВД было со стандартной выборкой, а данные выгружались из обработчика Перед выборкой данных с помощью метода ВыгрузитьПоПравилу(). Тогда можно стандартным способом обмен настроить. Только какой-нибудь один объект подходящего для ПВД типа зарегистрировать.
Некрасивое решение, но работать будет
Добрый день,Ольга.
Стоит та же задача,а именно: односторонний периодический обмен из ЗУП 2.5 в ЗУП 3.1 с помощью УОД и плана обмена. В правилах во многих пунктах ПВД стоит произвольный алгоритм.
Подскажите,в каком модуле-главе-уроке описывается информация про метод ВыгрузитьПоПравилу() ? Хотелось бы посмотреть пример,как этот метод использовать.
Добрый день
Можно посмотреть в занятии 1.8.6 “Конвертация Документа в Операцию”
ПодключитьОбработчикОжидания отключается во время блокировки программы – есть в файловой базе способ обойти отключение – поставил случайно на блокировку и обмен не произошел? Или все переносить на сервер и там обеспечивать непрерывный процесс
Здравствуйте!
ПодключитьОбработчикОжидания – это клиентский метод, он зависит от работы клиента. Если нужно настроить независимый обмен по расписанию, то да, лучше работать в клиент-серверном варианте.
Здравствуйте.
После отправки сообщения его номер постоянно увеличивается, есть ли какие ограничения на длину этого номера ?
И если эти ограничения есть, то как ведет себя система при обнулении счетчика ?
Здравствуйте!
Насчет максимального номера сообщения – не сталкивалась с ограничениями. Но обнулить счетчик можно, если сделать это в обеих базах.
Здравствуйте!
есть такое понятие как “фильтр выборочной регистрации объектов”- где и как он настраивается ?
Здравствуйте!
Фильтр выборочной регистрации настраивается в регистре сведений Правила для обмена данными. Когда правила обмена загружаются в этот регистр, они образуют новую запись, у которой есть реквизит ИспользоватьФильтрВыборочнойРегистрации. Если значение этого реквизита “Истина”, то на узлах данного конкретного плана обмена не будут регистрироваться объекты, у которых изменен тот реквизит, для которого не настроено ПКС в правилах обмена. То есть когда существующий в базе объект изменен и перезаписан, сначала происходит проверка, какие из реквизитов у него изменены. Если для какого-то из этих реквизита в правилах обмена, загруженных в регистр сведений, настроено ПКС, то дальше будут выполняться правила регистрации, чтобы выяснить, нужно регистрировать этот объект, или нет. А если ни для какого из измененных реквизитов ПКС не настроено, то объект не будет зарегистрирован.
Это сделано для того, чтобы объект не выгружался, если все равно изменена та информация, которая у него выгружаться не будет. С другой стороны, не все свойства объекта выгружаются с помощью ПКС, поэтому этот механизм отключаемый.
Добрый День!
вопрос: если у меня произвольный алгоритм выгрузки, например рег свед цены номенклатуры в источнике, в приемнике док установа цен, то какой объект рекомендуете регистрировать к обмену ? то есть необходимо переодически запукать произвольный алгоритм в ПВД,в котором я делаю различные произвольные выборки из базы источника
Здравствуйте!
Если Вы используете универсальный обмен, то можно регистрировать к выгрузке регистр сведений. Правда, при этом каждая запись попадет в отдельный документ.
здравствуйте! вопрос по домашнему заданию: создать одностороннюю выгрузку или двухстороннюю? если односторннюю , то это получается просто повторить то же самое , что в видео
Здравствуйте!
В ДЗ 3.14.1 требуется, чтобы из Исходной базы выгружались только те документы продажи, которые были изменены со времени последней выгрузки. Это задание не очень сложное, оно направлено на знакомство с механизмами регистрации.
Здравствуйте! Подскажите пожалуйста, как с помощью ФабрикиXDTO задавать табличные части документов (или других объектов). Или где можно про это прочитать.
Добрый день!
Эту тему мы планируем рассмотреть в рамках курса по Интеграции (сейчас он находится в стадии концептуальной проработки).
Уточните пожалуйста, в каких случаях может понадобиться запрет авторегистрации в Планах обмена, в кнопке “Состав”?
Авторегистрацию запрещают, если планируют регистрировать объекты программно, в зависимости от каких-то условий. Если разрешить авторегистрацию, то регистрироваться будет каждый измененный объект
Как работает механизм удаления регистрации изменений не всех, а только переданных объектов? Ведь процедура очистки знает только про номер сообщения… Выходит, кто-то должен повторно зарегистрировать изменения в невыгруженных объектах?
Тогда получится, что в таблице один и тот же объект может быть зарегистрирован многократно. При выгрузках он тоже будет записан много раз?
Здравствуйте!
Номер сообщения присваивается всем тем объектам, которые были выгружены в это сообщение. Поэтому, когда из другой базы приходит информация о загрузке, регистрация всех объектов с этим и меньшими номерами сообщения удаляется.
1)Когда возникают коллизии при обмене и как их разрешить?
2)Есть такая обработка ОбменДаннымиXML. Хотелось бы узнать о применении данной обработки.
1) Коллизии возникают, когда между двумя базами происходит обмен объектами, чтобы они были одинаковые. т.е. если в одной базе объект был изменен, то он должен измениться и во второй базе. Вот если он изменен в обеих базах одновременно, то возникает вопрос, какое из изменений считать правильным. Это и есть коллизия. Ее решает пользователь либо с помощью настройки приоритета, либо вручную. Вопрос о коллизиях возникает только при двустороннем обмене с использованием планов обмена. В разных типах обмена они разрешаются по-разному.
2)Обработка ОбменДаннымиXML используется для так называемых “Прочих обменов данными”. Эти обмены сейчас в новых конфигурациях отсутствуют, и используется обмен на основе БСП. Там – другая обработка, “КонвертацияОбъектовИнформационныхБаз”. Принцип работы всех трех обработок – УниверсальныйОбменДаннымиXML, ОбменДаннымиXML и КонвертацияОбъектовИнформационныхБаз очень похож. Общая схема одинаковая. Однако есть принципиальные различия в подготовке правил для них и в нюансах выгрузки и загрузки.
Так при каких случаях нужно создавать фоновое задание программно? Не проще всегда описывать предопределённое регламентное задание?
Здравствуйте!
Если создавать фоновое задание программно, то им можно более гибко управлять, запускать их по-разному в зависимости от каких-то условий, несколько сразу и т.д.
Здравствуйте!
Если мы:
в конечной БД экспортировали схему конечной БД в XDTO-пакет;
в исходной БД этот пакет импортировали;
в исходной БД дали ему Имя;
то зачем при создании ФабрикиXDTO задавать файл с пакетом а не использовать загруженный уже пакет(тем более 2-м параметром метода СоздатьФабрикуXDTO можно задвать “пакеты”)?
Я, правда, не смог “найти” нужный пакет в коллекции ФабрикаXDTO.Пакеты. Как найти импортированный пакет?
Здравствуйте!
Можно и так, и так. И использовать файл, и использовать пакет. Среди пакетов Фабрики загруженный обычно последний по индексу. Но его и не нужно искать. Если пакет уже загружен, то можно создавать объекты нужных типов, используя свойство глобального контекста ФабрикаXDTO.
Есть одна тонкость: пространство имен в загруженном пакете не должно пересекаться с пространством имен в конфигурации. Поэтому, скорее всего, в загруженном пакете его нужно будет изменить.
Добрый день!
При сериализации XDTO должны быть заполнены все реквизиты объекта?
Что будет при Десериализации если встретятся реквизиты со значением неопределенно?
Здравствуйте!
В пакете с описанием типов у реквизитов есть свойство “Возможно пустое”. Если оно Истина, то при десериализации пустого реквизита будет подставлено пустое значение по умолчанию. А если Ложь, то выдана ошибка
Не ясно, при каких условиях может возникнуть ситуация, когда у объектов, зарегистрированных к выгрузке, будут различаться номера сообщений? Ведь если происходит выгрузка, то синхронно все, что зарегистрировано, должно выгрузиться в транзакции с присвоением одинакового номера. Или есть исключения?
Здравствуйте!
Все, что зарегистрировано на узле, по которому происходит выгрузка, будет выгружено с присвоением номера сообщения (например, 1). Допустим, пока квитанция об успешной загрузке не пришла, регистрации не удаляются. Далее создаются новые объекты, и они тоже регистрируются к выгрузке. У них пока нет номера сообщения. Потом может произойти еще одна выгрузка, с номером сообщения 2, опять выгрузятся все зарегистрированные объекты. Но у тех объектов, которые уже выгружались, останется номер сообщения 1. А у тех, которые еще не выгружались, установится номер сообщения 2.