AdditionalInfo как описать структуры таб части?

1. UberElder 25.09.19 09:23 Сейчас в теме
Добрый день уважаемые коллеги. Столкнулся с такой проблемой, что необходимо было настроить синхронизацию между базами Управление Нашей Строительной Фирмой 1.6 (УНСФ) и Бухгалтерия Строительной Организации 3.1(БСО). Насколько я понял синхронизация у них происходит через универсальный формат, который в свою очередь сделан с помощью Конвертации Данных 3(КД 3). Вроде бы ничего такого с одной стороны так как все выгружается, но когда понадобилось выгрузить документ ОтчетПереработчика из УНСФ, оказалось что в типовых правилах обмена в XDTO пакете ED 1.6 и позднее не предусмотрены правила для табличной части Отходы. Поэтому по статье с ИС решил сделать перенос ТЧ через AdditionalInfo, и тут передо мной встала проблема, а как правильно описать структуру ТЧ. На данный момент насколько я смог разобраться то я просто помещаю ТЧ в AdditionalInfo, и он как-то не понимает мои данные ТЧ, кроме числовых значений. Подскажите как правильней передавать ТЧ через AdditionalInfo? И как ее описать? Модуль менеджера обмена приложу в файле.
Прикрепленные файлы:
Общий модуль МенеджерОбменаЧерезУниверсальныйФормат16_ Модуль(2).txt
Найденные решения
14. MaxS 2964 26.09.19 11:36 Сейчас в теме
(12) Как вариант - там это есть для любой представленной конфигурации в полнофункциональных правилах https://infostart.ru/public/632263/ - в расширении модули с правилами для типовых форматов и для доработанного формата. Там же в расширении доработанный формат обмена.

Сделать копию типового формата оказалось не так просто Пришлось выгрузить конфигурацию в файлы, сделать копию формата, исправить пространство имен и загрузить обратно. Потом скопировать новый пакет в расширение.
На всякий случай информирую. формат обмена 1.601 и 1.701 мной уже использовался, Если будете создавать свой, используйте другие номера.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. NatalkaBal 29 25.09.19 09:53 Сейчас в теме
(1)А какой Объект формата используется в этом ПКО? Если ОтчетПереработчика, то там есть табличная часть Материалы, Услуги, Продукция
3. UberElder 25.09.19 09:56 Сейчас в теме
(2) ОтчетПереработчика, если я правильно понял суть вашего вопроса
4. NatalkaBal 29 25.09.19 10:04 Сейчас в теме
(3)Вместо AdditionalInfo можно попробовать воспользоватся ДополнительныеРеквизиты или использовать флаг Используется алгоритм конвертации, и описать заполнения вручную

https://forum.infostart.ru/forum15/topic190942/
5. UberElder 25.09.19 10:22 Сейчас в теме
(4) Я уже добавлял ТЧ в ПКО и в ПКС его свойствах ставил используется алгоритм, но он как будто бы не видит этого описания
6. NatalkaBal 29 25.09.19 10:35 Сейчас в теме
(5)Не видит на стороне отправки или при получении?
7. UberElder 25.09.19 10:41 Сейчас в теме
(6) При отправке, там выгружается по типа
Прикрепленные файлы:
8. NatalkaBal 29 25.09.19 10:55 Сейчас в теме
(7)А при получении в обработчике При конвертации данных XDTO что прописано
9. UberElder 25.09.19 10:57 Сейчас в теме
(8) А получать я его еще не пробовал, так как кажется что неверно выгружает, поэтому даже не смотрел получение, думаете он все корректно выгружает?
10. NatalkaBal 29 25.09.19 11:27 Сейчас в теме
(9)Нет, так как эту структуру сложно будет вставить ПолученныеДанные.ДополнительныеСвойства.Вставить("Отходы".........);
Надо по другому пробовать. В этом ПКО все табличные части задействованы, может стоить использовать их
11. UberElder 25.09.19 11:52 Сейчас в теме
(10)
УстановитьПользовательскийПрефиксНомера(ПолученныеДанные, ДанныеXDTO, "О");

Если ЭтоЗагрузкаКлючевыхСвойств(ДанныеXDTO) Тогда
	Возврат;
КонецЕсли;

ДобавитьДоговорВДопСвойства(ПолученныеДанные, ДанныеXDTO);
ДобавитьВалютуВДопСвойства(ПолученныеДанные, ДанныеXDTO);
ДобавитьПодразделениеВДопСвойства(ПолученныеДанные, ДанныеXDTO);
ДобавитьПодразделениеВДопСвойства(ПолученныеДанные, ДанныеXDTO, "ПодразделениеЗатрат", "ПодразделениеЗатрат");

МассивСтрокПродукция = Новый Массив;
Если ДанныеXDTO.Свойство("Продукция")
	И ЗначениеЗаполнено(ДанныеXDTO.Продукция) Тогда

	ПравилаЗаполнения = Новый Соответствие;
	ПравилаЗаполнения.Вставить("Номенклатура", "Номенклатура");
	ПравилаЗаполнения.Вставить("Количество", "Количество");
	
	Для Каждого Строка Из ДанныеXDTO.Продукция Цикл
		СтруктураДанныхСтроки = ДанныеКоллекцииВВидеСтруктуры(Строка, ПравилаЗаполнения);
		МассивСтрокПродукция.Добавить(СтруктураДанныхСтроки);
	КонецЦикла;
	Если МассивСтрокПродукция.Количество() > 0 Тогда
		ПолученныеДанные.ДополнительныеСвойства.Вставить("Продукция", МассивСтрокПродукция);
	КонецЕсли;
КонецЕсли;

МассивСтрокУслуги = Новый Массив;

Если ДанныеXDTO.Свойство("Услуги")
	И ЗначениеЗаполнено(ДанныеXDTO.Услуги) Тогда

	ПравилаЗаполнения = Новый Соответствие;
	ПравилаЗаполнения.Вставить("Номенклатура", "Номенклатура");
	ПравилаЗаполнения.Вставить("Количество", "Количество");
	ПравилаЗаполнения.Вставить("Содержание", "Содержание");
	ПравилаЗаполнения.Вставить("СтавкаНДС", "СтавкаНДС");
	ПравилаЗаполнения.Вставить("Сумма", "Сумма");
	ПравилаЗаполнения.Вставить("СуммаНДС", "СуммаНДС");
	ПравилаЗаполнения.Вставить("Цена", "Цена");
	Для Каждого Строка Из ДанныеXDTO.Услуги Цикл
		СтруктураДанныхСтроки = ДанныеКоллекцииВВидеСтруктуры(Строка, ПравилаЗаполнения);
		МассивСтрокУслуги.Добавить(СтруктураДанныхСтроки);
	КонецЦикла;
	Если МассивСтрокУслуги.Количество() > 0 Тогда
		ПолученныеДанные.ДополнительныеСвойства.Вставить("Услуги", МассивСтрокУслуги);
	КонецЕсли;
КонецЕсли;

МассивСтрокМатериалы = Новый Массив;
Если ДанныеXDTO.Свойство("Материалы")
	И ЗначениеЗаполнено(ДанныеXDTO.Материалы) Тогда

	ПравилаЗаполнения = Новый Соответствие;
	ПравилаЗаполнения.Вставить("Номенклатура", "Номенклатура");
	ПравилаЗаполнения.Вставить("Количество", "Количество");
	
	Для Каждого Строка Из ДанныеXDTO.Материалы Цикл
		СтруктураДанныхСтроки = ДанныеКоллекцииВВидеСтруктуры(Строка, ПравилаЗаполнения);
		МассивСтрокМатериалы.Добавить(СтруктураДанныхСтроки);
	КонецЦикла;
	Если МассивСтрокМатериалы.Количество() > 0 Тогда
		ПолученныеДанные.ДополнительныеСвойства.Вставить("ИспользованныеМатериалы", МассивСтрокМатериалы);
	КонецЕсли;
КонецЕсли;
Показать

Пока там как то так, но видимо придется приспосабливать, я ошибся сказав что есть на получение правила, перепутал с другим документом
12. UberElder 25.09.19 15:48 Сейчас в теме
Я так понимаю что править пакет ED не вариант? Так как это уже будет не универсально? А можно пакет добавить в расширение и модуль менеджера обмена тоже в туда же чтобы просто там правки вносить?
14. MaxS 2964 26.09.19 11:36 Сейчас в теме
(12) Как вариант - там это есть для любой представленной конфигурации в полнофункциональных правилах https://infostart.ru/public/632263/ - в расширении модули с правилами для типовых форматов и для доработанного формата. Там же в расширении доработанный формат обмена.

Сделать копию типового формата оказалось не так просто Пришлось выгрузить конфигурацию в файлы, сделать копию формата, исправить пространство имен и загрузить обратно. Потом скопировать новый пакет в расширение.
На всякий случай информирую. формат обмена 1.601 и 1.701 мной уже использовался, Если будете создавать свой, используйте другие номера.
13. UberElder 26.09.19 07:17 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот