Имя: Пароль:
1C
1С v8
Конвертация данных
0 alina0587
 
25.02.12
15:12
Делаю правила обмена в конф. "Конвертация данных". Источник - конфигурация 7.7, приемник - конф. 8.2.
Проблема: в источнике есть справочник "ученики" с реквизитами родитель1, родитель2(тип -строка).
В приемнике - справочник "Ученики" с табличной частью "Родители", где в строках указывается ссылка на справочник "родители".

Делаю правило конвертации свойств из "родитель1" в реквизит строки ТЧ Родители - "родитель". Для этого сделано правило конвертации объектов из данных типа строка в реквизит "наименование" справочник "родители".

Пытаюсь делать какие-то настройки этих правил, но результат такой - к ученикам родители не цепляются, а сам справочник "родители" создается с пустыми наименованиями.

Подскажите, что делать? Как правильно настроить эти правила??
1 Rie
 
25.02.12
15:18
(0) Не совсем понятно. Или, вернее, совсем непонятно.
Должно быть ПКО с источником Строка и приемником СправочникСсылка.Родители.
В этом ПКО - есть ПКС без источника с приемником Наименование, в котором ПередВыгрузкой
Значение = Источник;
Так?
2 Рэйв
 
25.02.12
15:19
Самый простой способ.
Сделай в приемнике реквизиты Родитель1 И Родитель2. Настрой на них ПКС, а в ПослеЗагрузки делай одну строку в таб части по полученным реквизитам.  Оно конечно костыли, но это для тебя проще, чем объяснть тебе про ОбъектКоллекции....
3 Pasha
 
25.02.12
15:19
(0) Лучше в соответствующем обработчике скриптом собрать табличную часть ИМХО
4 Rie
 
25.02.12
15:20
+(1) Если так - то в ПКО для СправочникСсылка.Ученики -> СправочникСсылка.Ученики я бы сформировал таблицу значений (будущую табличную часть справочника), а табличную часть заполнял бы из входящих данных.

(Однако представляется несколько странным использование табличной части для родителей. Их же - не более 2-х, причём один из них - отец, а другой - мать. Не лучше ли завести соответствующие реквизиты?)
5 Сияющий Асинхраль
 
25.02.12
15:24
А вообще непонятно, кто придумал родителей в многострочную часть пихать, их что может быть более двух?
6 Рэйв
 
25.02.12
15:25
(5)Я как то справочник ПОЛ  видел:-)  Впечатлило.
7 alina0587
 
25.02.12
15:55
В приемнике создавать реквизиты я не могу, конфа типовая. Теперь вот сделала следующее. Сделала ПКГС Родители, там в обработчике перед выгрузкой написала
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Родитель");
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Родитель = Источник.Родитель1;
и внутри этой группы сделала ПКС из Родитель1 типа строка в реквизит ТЧ "Родитель" типа справочникССылка.Родители, по ПКО(из строки в реквизит наименование справочника.)

Заменила модуль для семерочной универсальной обработки обмена.

Но,при выгрузке в семерке пишет
"Ошибка получения свойства из объекта коллекции. Свойство: Родитель"
Где может быть ошибка?
8 alina0587
 
25.02.12
15:57
Rie,
"Не совсем понятно. Или, вернее, совсем непонятно.
Должно быть ПКО с источником Строка и приемником СправочникСсылка.Родители.
В этом ПКО - есть ПКС без источника с приемником Наименование, в котором ПередВыгрузкой
Значение = Источник;
Так?"

Да, все так
9 СамСуСам
 
25.02.12
16:05
(7) Галку "Получить из входящих данных" оставь только у группы "Родителя", а подчиненных элементов группы эту галку убери. В обработчике "Перед обработкой напиши, что-то вроде

КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Родитель");
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Родитель = Источник.Родитель1;
КоллекцияОбъектов.НоваяСтрока();
КоллекцияОбъектов.Родитель = Источник.Родитель2;
// и т.д.
ВходящиеДанные = СоздатьОбъект("СписокЗначений");
ВходящиеДанные.ДобавитьЗначение(ТабличнаяЧасть, "Родители");
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.