Есть такой XDTO пакет
как по нему создать XML файл? Не могу понять как обратиться к элементу Контрагенты. Нашел в Интернете, что можно обратиться через Корневое свойство, но при сохранении файла выдает ошибку. Также не могу понять как создать элемент Руководитель.
-
Вопрос заданболее трёх лет назад
-
1693 просмотра
5
комментариев
Пригласить эксперта
Ответы на вопрос 2
![]()
Там вся фишка во вложенных типах. Для более подробного анализа нужен XSD файл.
Комментировать
Похожие вопросы
-
Показать ещё
Загружается…
30 янв. 2023, в 12:59
15000 руб./за проект
30 янв. 2023, в 12:56
50000 руб./за проект
30 янв. 2023, в 12:52
5000 руб./за проект
Минуточку внимания
-
Всем добрый день.
То ли слепой, то ли чего то не понимаю.Есть простой до жути код.
хмл = Новый ЗаписьXML(); хмл.ОткрытьФайл(Файл); хмл.ЗаписатьОбъявлениеXML(); //Блок клиента хмл.ЗаписатьНачалоЭлемента("Клиент"); хмл.ЗаписатьНачалоЭлемента("ФИО"); хмл.записатьТекст(XMLСтрока(ФИО)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьНачалоЭлемента("ID"); хмл.записатьТекст(XMLСтрока(ID)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьКонецЭлемента(); //Блок товаров хмл.ЗаписатьНачалоЭлемента("ТоварыВЧеке"); Для каждого стр из Товары Цикл хмл.ЗаписатьНачалоЭлемента("Товар"); хмл.ЗаписатьНачалоЭлемента("Артикул"); хмл.ЗаписатьТекст(XMLСтрока(Стр.Артикул)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьНачалоЭлемента("Наименование"); хмл.ЗаписатьТекст(XMLСтрока(Стр.Номенклатура)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьНачалоЭлемента("Цена"); хмл.ЗаписатьТекст(XMLСтрока(Стр.Цена)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьНачалоЭлемента("Количество"); хмл.ЗаписатьТекст(XMLСтрока(Стр.Количество)); хмл.ЗаписатьКонецЭлемента(); хмл.ЗаписатьКонецЭлемента(); КонецЦикла; хмл.ЗаписатьКонецЭлемента(); хмл.Закрыть();Ругается на строчку
{Документ.ЧекККМ.Форма.ФормаДокумента.Форма(1434)}: Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)
хмл.ЗаписатьНачалоЭлемента(«ТоварыВЧеке»);
по причине:
Ошибочный порядок записи XMLХотя до этого все элементы закрыты, и это начало нового элемента.
В чем косяк ?
-
Решено.
Называется, учите други структуру =)
2 корневых элемента не могло быть.
Нужен был 1 общий.
В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.
Исправляем ситуацию
Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.
Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.

Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.
|
Пользователь 25773 Эксперт Сообщений: 848 |
#1 0 24.01.2014 17:12:23 При выгрузке товаров получаем вот такое окно:
Ошибка возникает в последнем дополнении Битрикса для «1С Управление торговлей» 10.3.26.2. Ошибка возникает при выгрузке файла offers.xml, если ни у одного товара нет цен. ////////////////////////// Зачем написал? Чтобы все знали. Когда уже будет публичный баг-трекер , где можно увидеть все косяки той или иной версии? У нас 2 программиста 3 часа искали в 1С, почему такая ошибка. Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |
||
|
Пользователь 25773 Эксперт Сообщений: 848 |
#2 0 27.01.2014 16:48:46 Найден баг. Строка 2404. Внутренняя обработка ОбменССайтом Кто-то из старой версии не убрал важный фрагмент и сделал одно лишнее закрытие тега XML.
Этот фрагмент следует убрать. Например так: Исходный текст:
Заменить на
Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |
||||||
|
Администратор Сообщений: 4915 |
В ближайшей версии модуля обмена эта бага будет поправлена. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
А можно тупо выложить дополнение-фикс для той же версии 1С? Вот идея — исправлять критическе ошибки в тот же день http://idea.1c-bitrix.ru/significantly-accelerate-product-updates-fix-critical-bugs/ Сколько еще ждать ближайшую версию модуля? Пол-года? |
|
Администратор Сообщений: 4915 |
Я пересобрал версию модуля вчера. На днях должна обновиться на сайте. Я кста, тоже считаю, что критичные ошибки должны правиться очень оперативно. Другое дело с адаптациями… И да, много кто уже поставил последний модуль и только от вас пришло сообщение о ошибке, поэтому ошибка не столь критична. Она вылазит только при определенных условиях. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
Спасибо. Я надеюсь ошибка с частями архива тоже будет исправлена: http://dev.1c-bitrix.ru/community/forums/forum26/topic60094/ |
|
Администратор Сообщений: 4915 |
Она тоже. Но в тоже время для УПП, КА и продуктов стран СНГ пока обновлена. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#8 0 29.01.2014 11:12:24
Поставили, ошибку получили. КА 1.1.42.2 |
||
|
Администратор Сообщений: 4915 |
В КА исправлено в модуле версии 1.1.42.4. Просто она еще не обновлена на сайте. |
|
Администратор Сообщений: 4915 |
#10 0 29.01.2014 12:25:44 По поводу размера — нужно смотреть сами XML файлы. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#11 0 30.01.2014 14:10:45 Обновленный модуль для КА России выложен неправильно. Внутри модуль от УТ Беларуси |
|
Александр Денисюк
Администратор Сообщений: 4915 |
#12 0 30.01.2014 16:03:35
Сообщил людям. Сейчас должны поправить. |
||
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#13 0 30.01.2014 16:28:22 Что то как то не сложилось с этим обновлением. Пытаюсь удалить реализацию. Вылетает ошибка
Если закоментировать
То все удаляется, но опять с ошибками. |
||||
|
Администратор Сообщений: 4915 |
#14 0 30.01.2014 21:21:45 Это все из за конфигурации. Модуль для КА делался на основе УТ. А конфигурации немного отличаются. Всех отличий не учтешь. Посмотрю в чем дело. Оказалось, что в КА(да и скорее всего УПП), нет функции ОбщегоНазначения.ЕстьТабЧастьДокумента. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#15 0 31.01.2014 11:02:18
И тут понеслось. Обмен заказами не обновляет заказы.
|
||||
|
Администратор Сообщений: 4915 |
#16 0 31.01.2014 11:17:47 Вполне вероятно — связано с предыдущей ошибкой. Посмотрю. Сегодня думаю поправлю. |
|
Администратор Сообщений: 4915 |
#17 0 31.01.2014 11:50:23 Тут можно скачать новую версию КА. На Сайте она обновится чуть позже. Проверил подписки на события + перезапись заказов. http://yadi.sk/d/iZGB0A6fH47cC |
|
Пользователь 25773 Эксперт Сообщений: 848 |
#18 0 31.01.2014 16:28:37 исправленная версия для 10.3.26.4 http://1c.1c-bitrix.ru/ecommerce/download.php Версия с ошибками версия была для 10.3.26.2. Мы не смогли у 1С найти 10.3.26.4. Её не бывает. Следующая после 10.3.26.2 идет 10.3.27.1 Будет ли работать дополнение и оказываться техническая поддержка если мы поставим дополнение для 10.3.26.4 на 10.3.26.2? |
|
Администратор Сообщений: 4915 |
#19 0 31.01.2014 19:29:36 Эм. Это версия модуля. При запуске установщика пишется для какой она версии. Если память не изменяет 10.3.26.2. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
#20 0 31.01.2014 20:03:09 Да верно, в коде у вас 2.9.26.4 для УТ 10.3.26.2. Исправьте на странице http://1c.1c-bitrix.ru/ecommerce/download.php название версии. Это ошибка. Мы заставили заказчика искать несуществующую версию 1С. Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |