Отсутствует обязательное свойство 1с обмен
1.4. При выполнении криптооперации возникают ошибки вида: «Код ошибки 102. Сертификат недействителен. Цепочка сертификатов обработана, но прервана на корневом сертификате, который не является доверенным»
- Корневой сертификат УЦ, которому принадлежит личный сертификат, не включен в список доверенных в ОС
- Установить корневой сертификат УЦ в ОС, при необходимости вручную указать место, куда установить – «Доверенные корневые центры сертификации»
1.5. При попытке авторизации на сервере «Такском» возникают ошибки вида: «Ошибка работы с Интернет: доступ запрещен (403)»
1.6. При выполнении криптооперации возникают ошибки вида: «Сертификат, связанный с закрытой частью ключа, указывает на модуль криптографии, отличный от текущего…»
- Отличаются типы криптопровайдера, заданные в настройках информационной базы и указанные в сертификате ЭЦП (назначаются в момент выпуска сертификата УЦ).
- Данные по наиболее распространенным криптопровайдерам, сертифицированные ФСБ:
- КриптоПро CSP:"Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" (тип 75),
- Signal-COM CSP: "Signal-COM CPGOST Cryptographic Provider" (тип 75),
- ViPNet CSP: "Infotecs Cryptographic Service Provider" (тип 2)
- Привести типы криптопровайдера к одному значению:
- либо указать правильный тип в общих настройках криптографии информационной базы;
- либо переустановить личный сертификат ЭЦП, если он содержал при выпуске правильный тип (для КриптоПро необходимо переустанавливать через оснастку КриптоПРО CSP, установка личного сертификата).
- Получить полную информацию по сертификатам подписи можно командой "certmgr.exe -s my" (сама утилита certmgr.exe, например, входит в комплект Visual Studio)
1.7. Используется КриптоПро CSP 3.6, изредка «слетает» тип криптопровайдера у сертификата ЭЦП. После переустановки личного сертификата через оснастку КриптоПРО CSP все начинает работать
- Внести изменения в настройку криптосредства в ОС:
- Отключить механизм Winlogon (в КриптоПро CSP задать параметр "Отключить КриптоПро Winlogon" = Истина).
- Убрать регистрацию носителей ключей в Winlogon (Calais) (отключить службу «Распространение сертификатов» или в свойствах соответствующих носителей в Оборудовании(КриптоПро CSP) снять галку об использовании при входе в ОС)
1.8. При выполнении криптооперации возникают ошибки вида: «…указан неправильный пароль доступа к закрытому ключу, сертификат не связан с закрытым ключом и др.».
Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.
Ошибка при вызове метода контекста (Расшифровать): Ошибка интерфейса модуля криптографии. Неверный параметр Keyset (набор ключей)
- Неверные настройки криптографии в ОС и/или в «1С:Предприятии»
- Повторно выполнить настройку криптографии на компьютере. Варианты:
- Переустановить личный сертификат.
- Провести тестирование контейнера закр. ключа, связанного с сертификатом.
- Сбросить пароль на контейнер закр. ключа.
- Повторно перенести контейнер закр. ключа в реестр (при необходимости).
- В «1С:Предприятии»:
- Пометить на удаление, сменить краткое имя сертификата ЭЦП, например, поставив префикс «Не использовать», чтобы не спутать с новым элементом справочника.
- Добавить в ИБ «1С:Предприятия» сертификат из хранилища сертификатов, для которого была проведена повторная установка.
- Провести «Тест настроек сертификата».
- Указать новый элемент справочника «Сертификаты ЭЦП» в Соглашении.
- Провести «Тест настроек соглашения»
1.9. На тестовой базе успешно проведен тестовый обмен ЭД, но все то же самое на рабочей базе не удается, даже тест настроек соглашения не проходит
- Тестовая база – файловый режим, рабочая база – клиент-серверный
- Выполнить настройку криптографии для клиент-серверного варианта работы согласно инструкции
- Отправка данных на сервис «Такском» выполняется с сервера, а пароль можно ввести только на клиенте
- Выделить отдельный сертификат ЭЦП, который не подписывает ЭД, для проведения сеансов связи с «Такском» в клиент-серверном варианте. В карточке сертификата ЭЦП установить опцию «Запомнить пароль». Для подписи ЭД в компании использовать другие сертификаты
1.11. При работе через веб-браузер в момент обращения к криптопровайдеру возникает ошибка: «Расширение для работы с криптографией не подключено, операция прервана»
- Не установлено расширение криптографии при работе через веб-браузер
- Установить требуемый компонент платформы.
- При первом обращении к криптопровайдеру возникнет запрос на установку компонента «Расширение для работы с криптографией». Необходимо согласиться на установку компонента.
- При необходимости дополнительно ознакомиться с особенностями использования криптографии в веб-браузере
2. Получение ИД и работа с приглашениями
2.1. При попытке «Получить уникальный идентификатор» в Соглашении не происходит никакой реакции в системе.
Или выдает ошибку интернет-поддержки пользователей – «Соединение отсутствует». При нажатии «Повторить соединение» соединение установлено, но подключения к сервису не происходит .
- Ошибки кеширования данных, ошибка встраивания в конфигурацию
- Закрыть обработку интернет-поддержки пользователей, если открыта.
- Очистить вручную все содержимое регистра «Параметры интернет-поддержки».
- Повторить попытку получения идентификатора (придется заново авторизоваться в системе – ввести свои логин и пароль).
- Если не получится, обратиться в техподдержку «1С»
2.2. В «1С:Предприятии» в момент получения уникального идентификатора сервис возвращает неправильный ИД участника.
- Допущена ошибка при регистрации данных об участнике: названии юрлица, ИНН, КПП, сертификата подписи
- Часто возникает при регистрации разветвленной филиальной структуры с одноименными юрлицами.
- Внимательно следить при оформлении заявки на получение ИД участника обмена. В случае обнаружения ошибки обратиться в техподдержку «Такском»
2.3. В форме Соглашения нет ссылки на автоматическое получение уникального ИД участника, как описано в документации, только поле для ручного ввода ИД.
- В конфигурацию не встроена интернет-поддержка пользователей (ИПП) фирмы «1С», автоматическое получение ИД участника возможно только из типовых решений «1С»
- Зайти в личный кабинет пользователя веб-ИТС и заполнить заявку на подключение к «1С-Такском» вручную. После одобрения заявки и получения ответа указанный ИД участника ввести в это поле Соглашения
2.4. В «1С» не приходит приглашение по обмену от контрагента, хотя тот точно отправлял и ждет ответа.
- Несколько ИД участников на одну и ту же организацию с одними данными ИНН и КПП
2.5. Обмен с поставщиком настроен, в Соглашении об использовании электронных документов через оператора ЭДО статус «Присоединен».
- Неверные данные в ИБ получателя:
- уникальный идентификатор организации,
- сертификат подписи организации
- Указать в Соглашении сертификат подписи, который подавался при регистрации, запросить повторно получение ИД участника (должен вернуться правильный ИД), обновить статусы приглашений контрагентам с сервиса
2.6. При работе с приглашениями возникают ошибки вида: «Ошибка при выполнении файловой операции 'AcceptContact?id=' по причине:
Здравствуйте, форумчане.
Подскажите - от чего могут быть проблемы при выгрузке данных, в которых участвует Валюта?
У нас Комплексная автоматизация 2.4.5.86 (платформа 8.3.11.2954).
Хотя, код у этой валюты нормальный - "643".
И если проблеммы в ней, то почему не все данные, где есть валюта Рубль, кричат на эту ошибку?
Выгрузку я делаю через "Синхронизацию данных", выбрал "Синхронизация данных через универсальный формат".
Значит используется одноименный ПланОбмена.
Событие: Отправка.
ПОД: Справочник_ДоговорыКонтрагентов_Отправка.
ПКО: Справочник_ДоговорыКонтрагентов.
Объект: Справочник объект: Договоры с контрагентами, Договор с Тестофф ООО (e1cib/data/Справочник.ДоговорыКонтрагентов?ref=98517824af3703d411e719d61119dcc3).
по причине:
Ошибка проверки данных XDTO:
Структура объекта '/КлючевыеСвойства' не соответствует типу: КлючевыеСвойстваДоговор
Проверка свойства 'ВалютаВзаиморасчетов':
имя: ВалютаВзаиморасчетов
тип: КлючевыеСвойстваВалюта
Не установлено значение одного из следующих свойств: Контрагент
Событие: Отправка.
ПОД: Справочник_БанковскиеСчетаКонтрагентов_Отправка.
ПКО: Справочник_БанковскиеСчетаКонтрагентов_Отправка.
Объект: Справочник объект: Банковские счета, основной (e1cib/data/Справочник.БанковскиеСчетаКонтрагентов?ref=914d001bfc2089c811df99af98e115e3).
по причине:
Ошибка проверки данных XDTO:
Структура объекта '/ВалютаДенежныхСредств' не соответствует типу: КлючевыеСвойстваВалюта
Проверка свойства 'Код':
имя: Код
тип:
Отсутствует обязательное свойство
В правилах бывает что договор не подходит и формируют новый договор в виде структуры. И контрагент теряется.
Или записывают контрагента не туда. Нужно в ключевые свойства, например.
(5)
Я передал полный текст ошибки в (4). Там последняя фраза именно такая - "Отсутствует обязательное свойство"
(6) Интересно.
Видимо, у меня контрагент как-то потерялся. Потомучто в этом договоре Контрагент есть, я проверил.
У меня в этих местах ничего не дорабатывалось, значит там вероятно нет ошибок. ;)
Если база файловая, можно с ключом в конфигураторе РежимОтладки запустить обработку из конфигурации "Выгрузка загрузка EnterpriseData", выбрать данные, включить остановку по ошибке и пробовать выгружать. Посмотреть что в переменной ОбъектXDTO и в Объект.
В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.
В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.
И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.
Далее запустил синхронизацию на стороне УТ. Выгрузка данных не произошла. В журнале регистрации появились ошибки:
Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:
Структура объекта '/БанковскийСчетКонтрагента/Банк' не соответствует типу: КлючевыеСвойстваБанк
Проверка свойства 'БИК':
форма: Элемент
имя: БИК
тип:
Отсутствует обязательное свойство
Объект: ДоговорСКонтрагентом № .
Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.
Событие: Обмен данными
: Аварийно завершился рабочий процесс фонового задания
ВызватьИсключение(ТекстОшибки);
Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.
При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.
В итоге я загрузил в "Конвертация данных 3.0" следующие данные:
- Тексты общего модуля "МенеджерОбменаДаннымиЧерезУниверсальныйФормат" из двух баз
- Схема обеих баз
- Описание формата EnterpriseData (из одной любой базы)
- Правила конвертации
После загрузки открыл в "Конвертация данных 3.0" правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой "Выгрузить модуль менеджера обмена". Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.
Поэксперементировав с настройкой правил в "Конвертация данных 3.0", я для себя заключил, что в случае, когда вносимые правки незначительны, проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле "МенеджерОбменаДаннымиЧерезУниверсальныйФормат". Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией " Конвертация данных 3.0".
Задачу по добавлению документа "Заказ поставщику" в план обмена я выполнял с помощью " Конвертация данных 3.0". В стандартном варианте УТ - БП этого документа в плане обмена нет.
Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации "Конвертация данных 2.0".
Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.
P.S. Если есть вопросы и собственные наблюдения по обмену данными через Универсальный формат и конфигурации " Конвертация данных 3.0", пишите в комментариях. Будем обмениваться опытом.
- Синхронизация данных
- Универсальный формат EntepriseData
- Конвертация данных 3.0
- Конвертация данных 2.0
- Управление торговлей
- Бухгалтерия предприятия
Комментарии
Подскажите, а как убрать из конфигурации механизм EnterpriseData? Чтобы его там не было. чтобы не тащить xdto. Хочу простой план обмена без правил. А он новый план обмена начинает выдавать ошибку чтения xml-файла обмена, так как в нем грузится EnterpriseData.
Изменить нужно следующее: И в УТ, и в БП нужно добавить в формат EnterpriseData новый объект – ЗаказПоставщику и прописать его свойства, в том числе ключевые. После этого выгрузить структуру формата и всё остальное, что нужно, в КД 3.0. Там настроить правила конвертации данных, объектов, свойств. После настройки перенести тексты модуля менеджера обмена для УТ и БП в конфигурации.
Ещё нужно добавить ЗаказПоставщику в правила регистрации в УТ. Это делается в КД 2.0.
Изменить нужно следующее: И в УТ, и в БП нужно добавить в формат EnterpriseData новый объект – ЗаказПоставщику и прописать его свойства, в том числе ключевые. После этого выгрузить структуру формата и всё остальное, что нужно, в КД 3.0. Там настроить правила конвертации данных, объектов, свойств. После настройки перенести тексты модуля менеджера обмена для УТ и БП в конфигурации.
Ещё нужно добавить ЗаказПоставщику в правила регистрации в УТ. Это делается в КД 2.0.
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
Да, проблема есть. По крайней мере в "Бухгалтерия предприятия 3.0.43.155". Пришлось изменить два общих модуля: ОбменДаннымиXDTOСервер и ОбменДаннымиСобытия
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
- Главная
- Программирование 1С
- Обмен данными через универсальный формат EnterpriseData. Настройка с помощью конфигурации "Конвертация данных 3.0"
Обмен данными через универсальный формат EnterpriseData. Настройка с помощью конфигурации "Конвертация данных 3.0"
В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.
В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.
И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.
Далее запустил синхронизацию на стороне УТ. Выгрузка данных не произошла. В журнале регистрации появились ошибки:
Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:
Структура объекта '/БанковскийСчетКонтрагента/Банк' не соответствует типу: КлючевыеСвойстваБанк
Проверка свойства 'БИК':
форма: Элемент
имя: БИК
тип:
Отсутствует обязательное свойство
Объект: ДоговорСКонтрагентом № .
Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.
Событие: Обмен данными
: Аварийно завершился рабочий процесс фонового задания
ВызватьИсключение(ТекстОшибки);
Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.
При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.
В итоге я загрузил в "Конвертация данных 3.0" следующие данные:
- Тексты общего модуля "МенеджерОбменаДаннымиЧерезУниверсальныйФормат" из двух баз
- Схема обеих баз
- Описание формата EnterpriseData (из одной любой базы)
- Правила конвертации
После загрузки открыл в "Конвертация данных 3.0" правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой "Выгрузить модуль менеджера обмена". Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.
Поэксперементировав с настройкой правил в "Конвертация данных 3.0", я для себя заключил, что в случае, когда вносимые правки незначительны, проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле "МенеджерОбменаДаннымиЧерезУниверсальныйФормат". Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией " Конвертация данных 3.0".
Задачу по добавлению документа "Заказ поставщику" в план обмена я выполнял с помощью " Конвертация данных 3.0". В стандартном варианте УТ - БП этого документа в плане обмена нет.
Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации "Конвертация данных 2.0".
Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.
P.S. Если есть вопросы и собственные наблюдения по обмену данными через Универсальный формат и конфигурации " Конвертация данных 3.0", пишите в комментариях. Будем обмениваться опытом.
- Синхронизация данных
- Универсальный формат EntepriseData
- Конвертация данных 3.0
- Конвертация данных 2.0
- Управление торговлей
- Бухгалтерия предприятия
Комментарии
Подскажите, а как убрать из конфигурации механизм EnterpriseData? Чтобы его там не было. чтобы не тащить xdto. Хочу простой план обмена без правил. А он новый план обмена начинает выдавать ошибку чтения xml-файла обмена, так как в нем грузится EnterpriseData.
Изменить нужно следующее: И в УТ, и в БП нужно добавить в формат EnterpriseData новый объект – ЗаказПоставщику и прописать его свойства, в том числе ключевые. После этого выгрузить структуру формата и всё остальное, что нужно, в КД 3.0. Там настроить правила конвертации данных, объектов, свойств. После настройки перенести тексты модуля менеджера обмена для УТ и БП в конфигурации.
Ещё нужно добавить ЗаказПоставщику в правила регистрации в УТ. Это делается в КД 2.0.
Изменить нужно следующее: И в УТ, и в БП нужно добавить в формат EnterpriseData новый объект – ЗаказПоставщику и прописать его свойства, в том числе ключевые. После этого выгрузить структуру формата и всё остальное, что нужно, в КД 3.0. Там настроить правила конвертации данных, объектов, свойств. После настройки перенести тексты модуля менеджера обмена для УТ и БП в конфигурации.
Ещё нужно добавить ЗаказПоставщику в правила регистрации в УТ. Это делается в КД 2.0.
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
Да, проблема есть. По крайней мере в "Бухгалтерия предприятия 3.0.43.155". Пришлось изменить два общих модуля: ОбменДаннымиXDTOСервер и ОбменДаннымиСобытия
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
Гарантируем стабильный обмен без ошибок между программами 1С. Гарантии фиксируем в договоре.
Одним из самых популярных форматов данных, используемых практически в любой компании, является XML (расширяемый язык разметки). Разработчики 1С создали специальный объект XDTO для удобства своих клиентов и простого взаимодействия с файлами XML, поэтому программисту 1С важно работать с этими объектами платформы, так как обмен данными через XML встречается постоянно.
Преимущества механизма XDTO
Этот функционал создавался как удобный инструмент обмена данными между конфигурациями и другими приложениями. Также этот механизм используют для работы с web-сервисами и для обработки произвольных данных. Большое преимущество XDTO перед другими способами – в нем есть возможность обращаться к файлу XML, как к объекту 1С. То есть все реквизиты можно будет получить, описывая структуру через точку, не задумываясь о скобках, тегах и атрибутах.
Взаимодействие с файлами XML происходит по заранее установленным правилам, описанным в объекте структуры конфигурации – XDTO – пакеты в 1С 8.3. Суть этих элементов структуры в том, что они представляют собой схемы, по которым будут распознаваться данные из XML-файлов. В типовых конфигурациях уже присутствуют подобные объекты, но при работе с конкретными файлами понадобятся другие схемы.
Существует два способа добавить XDTO-пакет в конфигурацию:
-
Собственноручно создать. Этот вариант подойдет при самостоятельной работе с XML определенного формата. Зная, какие данные будут подаваться на вход для импорта с использованием XDTO, можно заранее создать в конфигурации нужный объект. Этот вариант хорош, если обмен данными налажен и никаких изменений не планируется;
Рис.1 XDTO пакеты
Чтобы загрузить данные из присланной нам схемы, необходимо в режиме конфигуратор открыть раздел «Общие» и «XDTO-пакеты». Через контекстное меню выбрать пункт «Импорт XML-схемы…», выбрать файл и подтвердить пространство имен, взятое из файла. После этого необходимо обновить конфигурацию, и предварительные настройки сделаны.
Но на самом деле в последнем случае нам необязательно создавать XDTO-пакеты в конфигурации 1С 8.3. Существует возможность только использовать XSD-схему, присланную нам из отдельного файла, не внося изменения в структуру базы 1С. Для этого нужно воспользоваться кодом, объясняющим платформе 1С, какой тип объекта с какими параметрами будет загружаться.
Это происходит следующими командами:
Экспорт и импорт файла
После того как мы разобрались с принципами использования пакетов XDTO, нужно посмотреть на механику работы с файлами XML. Лучше всего это будет видно на простом примере, чтобы понять основы. Добавим новый элемент в раздел XDTO-пакетов и настроим его следующим образом:
- Заполняем URI-пространство имен в свойствах XDTO пакета. Среди разработчиков 1С принято заполнять этот реквизит адресом страницы, заполненной описанием тех данных, с которыми происходит работа. Это помогает в работе, но не всегда возможно. В иных случаях заполняют произвольным текстом;
- Задаем тип объекта и его свойства, используя контекстное меню. Задаем имя этих параметров и для свойств определяем тип, выбирая его из предложенных платформой.
Рис.2 Параметры пакета
Следующим этапом будет написание процедуры для создания файла XML по описанной выше схеме. Код достаточно прост, поскольку создан XDTO-пакет, а у элемента всего 2 свойства – «Наименование» и «Артикул». Обращаться к конкретной схеме позволяет объект платформы «ФабрикаXDTO». Сама процедура состоит из:
- Определение схемы будущей XML;
- Заполнение свойств номенклатуры;
- Создание нового XML файла.
Чтение XML-файлов с помощью конкретной фабрики XDTO по уже созданному в конфигурации пакету ничуть не сложнее. Алгоритм похож по структуре и отличается только операциями взаимодействия с XML-файлами. В данном случае нам нужно воспользоваться объектом платформы «ЧтениеXML» и прочитать содержимое в переменную. На выходе у нее будет тип «ОбъектXDTO», и вы сможете обращаться ко всем ее свойствам через точку.
Теперь попробуем прочитать файл, схемы которого нет в нашей конфигурации. Для этого экспортируем XDTO-пакет в файл формата xsd и удалим схему из конфигурации. После этого нам придется объяснить платформе, откуда ей брать схему читаемой XML-кодом, продемонстрированным ранее. Однако в простейших случаях 1С самостоятельно может распознать все свойства.
Рис.3 Экспорт XDTO-пакета
Лучше все-таки не рассчитывать на понятливость платформы 1С, а использовать точную схему XML. Многие специалисты используют сторонний софт для их создания, но для этого необходим достаточно большой опыт и уровень подготовки. Работа с пакетами XDTO требует внимания и соблюдения точного соответствия файлов заданной схеме, чтобы минимизировать возможные ошибки.
Исправление ошибок
Одной из достаточно распространенных ошибок, связанных с работой с XDTO-пакетами, является «Ошибка преобразования данных XDTO». Ее суть заключается в том, что платформа не может разобрать данный ей XML-файл по заданной схеме. При получении подобной ошибки при импорте данных, необходимо проверить формат файлов – возможно, присутствуют незакрытые теги.
Зачастую проблема с ошибками преобразования данных возникает и по другим причинам:
- Ошибки в обновлении платформы или конфигурации;
- Обмен между базами разных версий;
- Недочеты в алгоритме приема данных;
- Проблемы с временной памятью конкретного компьютера.
Рис.4 Ошибка преобразования данных
Рис.5 Ошибка проверки данных
Более сложная для анализа проблема, если при обмене информацией 1С выдает ошибку о несоответствии типов XDTO. В этом случае придется проверять все данные, находить ошибки и их причины. В некоторых случаях ошибки могут быть в коде, иногда – в данных информационной базы. Чтобы это понять, необходимо иметь доступ к базам причастным к обмену и четко понимать всю суть происходящего экспорта и импорта.
Рис.6 Несоответствие типов XDTO
На первый взгляд работа с XDTO достаточно сложна, поэтому на первое время рекомендуется добавлять XDTO-пакеты в 1С для большего порядка и учета. Конечно, все нюансы изучить сразу невозможно, но в процессе работы вы будете продолжать учиться. Но с уверенной теоретической базой намного удобнее начинать разбираться в этом вопросе.
Читайте также: