Имя: Пароль:
1C
1С v8
Как сконвертировать данные?
0 vladimir80
 
04.05.16
16:26
Доброго дня!
Пытаюсь настроить обмен между самописной конфигурацией 8,2 и типовой УНФ 1.6.5. Возник затык в переносе свойств (вернее наборов свойств) номенклатуры.

В источнике это ТЧ в ПВХ, в которой ссылки на виды товаров, которым данное свойство доступно.

В УНФ это должна быть ссылка на набордополнительныхреквизитовисведений, в ТЧ которого нужно разместить весь набор свойств.

Прошу сильно не пинать, только начал разбираться с конвертациями и слабо понимаю, как переносить данные произвольными наборами. Да и как в таком случае сохранить guid не совсем понятно. Если не сложно - укажите порядок действий, где подготовить данные для выгрузки и как их поймать при загрузке?
1 mikecool
 
04.05.16
16:30
для начала нужно понять - что есть источник и что есть приемник
потом остается дело техники
2 vladimir80
 
04.05.16
17:26
Источник - запрос. Приемник - элемент справочника.
3 vladimir80
 
05.05.16
01:18
Наверное что-то типа этого - http://1cdlasebya.blogspot.ru/2015/04/1.html

Во всяком случае произвольный набор данных таким образом переносится. Хотя более чем уверен, что есть механизм, которым можно формировать нужную структуру при выгрузке.

Литература на эту тему как-то не курится совсем, примеры стандартные в основном везде. Было бы здорово, если была бы карта/блок-схема событий и передаваемых параметров, с расписанными действиями, когда создается первичный набор данных, когда он преобразовывается, когда записывается в файл и т.п., было бы в разы проще понимать сей процесс.
4 ИсчадиеADO
 
05.05.16
02:12
(2) я бы сделал так: 1) в правиле конвертации объекта ПКО (источник пустой, приемник - спр.Наборы доп реквизитов и сведений) поле наименование по которому идет поиск (берется из входящих данных) и правило конвертации группы свойств (ПКГС) (т.е. ТЧ справочника) берется из входящих данных

2) в правиле выгрузки данных ПВД собираем запросом данные. При обходе есть 2 варианта: или формировать Таблицу значения ВыборкаДанных (точное наименование переменной посмотри в справке к обработчикам в самой конфе) с колонками Наименование и МояТабличнаяЧасть (в этом случае кстати в ПКО нужно убрать галки, что реквизиты берутся из вход данных). или при обходе выборки запроса писать ВыгрузитьПоПравилу(,  ИсходящиеДанные)  - где ИсходящиеДанные - это структура с ключами Наименование и МояТабличнаяЧасть (пример с выгрузитьПоПравилу посмотри в типовых правилах).

Наименование сформировать самостоятельно. Если я правильно понял, 1 вид товара = 1 набор доп свойств? В таком случае поиск в ПКО можешь вообще по ссылке делать

3) нужно определить ключ выгружаемых данных, свойство в ПКО, которое позволит системе запомнить, что данный набор уже выгружался в рамках данной выгрузки. Это если данное ПКО вызывается не только из ПВД но и из других ПКО, иначе кеширование не нужно
5 vladimir80
 
05.05.16
15:40
(4) Спасибо! Методом проб и ошибок сделал!
Да, в приемнике допреквизиты к справочнику категории номенклатуры. К каждому свой набор свойств. Но в источнике все наоборот, поэтому к со стороны источника ссылки нет.

В приемнике:
СправочникСсылка.КатегорииНоменклатуры с реквизитом "НаборСвойств" типа СпавочникСсылка.НаборДополнительныхРеквизитовИСведений.

В источнике (запрос):
Структура (СправочникСсылка.ВИдТовара, ТЗ с набором свойств)

То есть зацепиться можно только на соответствии ссылки в выборке (вид товара) и ссылки КатегорииНоменклатуры. До таких моментов я еще не дошел
6 ИсчадиеADO
 
05.05.16
17:46
(5) если ты про кеширование, то забей тогда. Поставь у пко флаг "не запоминать выгруженные объекты"
7 vladimir80
 
06.05.16
13:31
(6) Нет, про перенос ссылки набора свойств во "владельца" - справочник категорииноменклатуры... Решил это, добавив после обработки загрузки код поиска категории по наименованию = наименованию набора свойств. Все получилось. Хотя целостная картинка все равно не складывается... Обработкой перенес бы все за час, но понимаю что надо КД изучать...
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший