Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Июн 2021, 07:53
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Универсальный обмен данными XML как регламентное задание  (Прочитано 2242 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AIFrame

  • *****
  • Регистрация: 2015-07-22
  • Сообщений: 1395
  • РЕПУТАЦИЯ: 184
  • КПД: 13%
  • Профессия: Программист 1С
Есть база УТ 10.3 и база Розница 2.2
Есть рабочие правила обмена, по которым в режиме выгрузки\загрузки из файла все происходит.
Розница->УТ - без структуры отборов, только периоды, т.е. тупо все.
УТ->Розница - есть структура отборов, только опр. организации и элементы справочников и регистров.
Интересует best-practice решения для использования обработки "Универсальный обмен данными XML" как регламентного задания.
Если писать обработку для вызова обработки "Универсальный обмен данными XML" и задавать параметры - не понятно, как задавать структуру отбора для загруженных правил.


Оффлайн AIFrame

  • *****
  • Регистрация: 2015-07-22
  • Сообщений: 1395
  • РЕПУТАЦИЯ: 184
  • КПД: 13%
  • Профессия: Программист 1С
В общем, делать буду автовыгрузкой по планировщику. Обработку написал, но на отборах по регистру возникли проблемы
		// Штрихкоды
// ЕдиницаИзмерения.ЕдиницаПоКлассификатору = шт.
Если Наименование = "Штрихкоды" Тогда
ТекущееПВД = СтрокаУровня2;

Построитель = Новый ПостроительОтчета;
Если ТекущееПВД.ИмяОбъектаДляЗапросаРегистра <> Неопределено Тогда
Построитель.Текст =
"ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапросаРегистра + " КАК _
|
|
|{ГДЕ _.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапросаРегистра, ".", "_") + "}";
КонецЕсли;
Отбор = Построитель.Отбор;

Если Отбор.Найти("РегистрСведений_Штрихкоды") = Неопределено Тогда
Отбор.Добавить("РегистрСведений_Штрихкоды");
КонецЕсли;

Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.КлассификаторЕдиницИзмерения"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , );

Отбор["РегистрСведений_Штрихкоды"].Использование = Истина;
Отбор["РегистрСведений_Штрихкоды"].Значение = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("штука");
Отбор["РегистрСведений_Штрихкоды"].ВидСравнения = ВидСравнения.Равно;

ДоступностьПостроителя = Истина;

Если Построитель.Отбор.Количество() > 0 Тогда
ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор    = ИСТИНА;
КонецЕсли;
КонецЕсли;
В результате добавления этого отбора выгрузка кончается ошибкой
Цитировать
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10271)}: Ошибка при получении значения атрибута контекста (Результат): {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
По справочникам и документам отбор проходит без проблем. В регистрах оно как-то по другому, не пойму, что ему надо.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
72 Сообщений
LexaK
62 Сообщений
antoneus antoneus
31 Сообщений
Ивашка
27 Сообщений
KATERINA 861
23 Сообщений
neek666
22 Сообщений
SSC
15 Сообщений
alexandr_ll
15 Сообщений
Алексей_1985_06
11 Сообщений
BuhRust
8 Сообщений

* Кто онлайн

  • Точка Гостей: 183
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск