|
Конвертация данных: Один справочник в два | ☑ | ||
---|---|---|---|---|
0
abask
11.08.11
✎
15:44
|
Не могу разобраться...
Делаю перенос контактных лиц из БП в УТ В БП один справочник КонтактныеЛица в УТ два КонтактныеЛица и КонтактныеЛицаКонтрагентов Справочник КонтактныеЛицаКонтрагентов содержит ссылку на КонтактныеЛица подкиньте мысль как это правильно делается... |
|||
1
Живой Ископаемый
11.08.11
✎
15:46
|
два правила
|
|||
2
abask
11.08.11
✎
15:46
|
(2) ПВД или ПКО?
|
|||
3
PVV65
11.08.11
✎
15:47
|
(2) ПКО
|
|||
4
abask
11.08.11
✎
15:49
|
(3) с запросом типа этого
Запрос = Новый Запрос(" |ВЫБРАТЬ | КонтактнаяИнформация.Объект, | КонтактнаяИнформация.Тип, | КонтактнаяИнформация.Вид, | КонтактнаяИнформация.Представление, | КонтактнаяИнформация.Поле1, | КонтактнаяИнформация.Поле2, | КонтактнаяИнформация.Поле3, | КонтактнаяИнформация.Поле4, | КонтактнаяИнформация.Поле5, | КонтактнаяИнформация.Поле6, | КонтактнаяИнформация.Поле7, | КонтактнаяИнформация.Поле8, | КонтактнаяИнформация.Поле9, | КонтактнаяИнформация.Поле10, | КонтактнаяИнформация.Комментарий, | КонтактнаяИнформация.ЗначениеПоУмолчанию, | КонтактнаяИнформация.ТипДома, | КонтактнаяИнформация.ТипКорпуса, | КонтактнаяИнформация.ТипКвартиры |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект"); Запрос.УстановитьПараметр("Объект", Источник); Выборка = Запрос.Выполнить().Выбрать(); Сообщить(Выборка.Количество()); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация"); КонецЦикла; |
|||
5
abask
11.08.11
✎
15:49
|
?
|
|||
6
Живой Ископаемый
11.08.11
✎
15:51
|
Пока Выборка.Следующий() Цикл
ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация"); ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация2"); КонецЦикла; |
|||
7
abask
11.08.11
✎
16:29
|
сделал два ПКО
КонтактныеЛица и КонтактныеЛицаКонтрагентов в ПКО КонтактныеЛицаКонтрагентов в обработчик ПослеВыгрузки поместил этот код Запрос = Новый Запрос(" |ВЫБРАТЬ | КонтактныеЛица.Ссылка КАК КонтактноеЛицо, | КонтактныеЛица.ОбъектВладелец, | КонтактныеЛица.Наименование, | КонтактныеЛица.Роль, | КонтактныеЛица.Должность |ИЗ | Справочник.КонтактныеЛица КАК КонтактныеЛица |ГДЕ | КонтактныеЛица.Ссылка = &Объект"); Запрос.УстановитьПараметр("Объект", Источник); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка, , , , "КонтактныеЛицаКонтрагентов"); ВыгрузитьПоПравилу(Выборка, , , , "КонтактныеЛица"); КонецЦикла; выдает такую ошибку ОписаниеОшибки = Ошибка при вызове метода контекста (Выполнить): {(11, 24)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. КонтактныеЛица.Ссылка <<?>>= &Объект хотя при отладке типы вроде совпадают |
|||
8
Buster007
11.08.11
✎
16:48
|
а Источник точно тип Ссылка? может быть Источник.Ссылка?
|
|||
9
abask
11.08.11
✎
16:53
|
Источник.Ссылка - то же самое
|
|||
10
PVV65
11.08.11
✎
17:03
|
(7)
1. В ПКО КонтактныеЛицаКонтрагентов Источник - КонтактныеЛица или КонтактныеЛицаКонтрагентов? 2. Вместо обработчика ПослеВыгрузки - ПередВыгрузкой. |
|||
11
abask
11.08.11
✎
17:26
|
(10)
Источник КонтактныеЛица и там и там КонтактныеЛицаКонтрагентов в БП нету |
|||
12
PVV65
12.08.11
✎
08:51
|
Создаешь ПКО "КонтактныеЛица" - Источник "КонтактныеЛица", приемник "КонтактныеЛица".
В обработчике ПередВыгрузкой пишешь - ВыгрузитьПоПравилу(Источник, , , , "КонтактныеЛицаКонтрагентов"); Создаешь ПКО "КонтактныеЛицаКонтрагентов" - Источника нет, приемник "КонтактныеЛицаКонтрагентов". В обоих ПКО синхронизируешь свойства. |
|||
13
PVV65
12.08.11
✎
08:52
|
+(12) В ПКО "КонтактныеЛицаКонтрагентов" - Источник "КонтактныеЛица".
|
|||
14
abask
12.08.11
✎
10:44
|
Не помогло
(12) с чем синхронизировать свойство КонтактноеЛицо в ПКО КонтактныеЛицаКонтрагентов? |
|||
15
PVV65
12.08.11
✎
10:49
|
(12) Если я правильно понимаю структуру метаданных, то в ПКС КонтактноеЛицо - Источник - нет, Приемник - КонтактноеЛицо, Перед Выгрузкой - "Значение = Источник".
|
|||
16
abask
12.08.11
✎
11:51
|
тогда ошибка
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10224)}: Поле объекта не обнаружено (КонтактныеЛица) видимо нужно в ПКО или ПВД КонтактныеЛица предусмотреть, чтобы не обрабатывалось это ПКС |
|||
17
PVV65
12.08.11
✎
12:03
|
(16) В (15) у меня не было "КонтактныеЛица". Что там у тебя напутано. "КонтактныеЛица" - это справочник. Где у тебя "КонтактныеЛица" - поле объекта?
|
|||
18
abask
12.08.11
✎
12:42
|
Поле объекта КонтактноеЛицо есть в справочнике КонтактныеЛицаКонтрагентов
Мы выгружаем КонтактныеЛица по правилу КонтактныеЛицаКонтрагентов (12) Вот отсюда, похоже, и проблема... |
|||
19
abask
12.08.11
✎
12:44
|
упс, а ведь там (16) не КонтактноеЛицо, а КонтактныеЛица, сейчас буду разбираться
|
|||
20
PVV65
12.08.11
✎
12:52
|
(18) В (16) написано >> Поле объекта не обнаружено (КонтактныеЛица). В (18) пишешь >> Поле объекта КонтактноеЛицо есть в справочнике.
Как решается эта задача: 1. ПКО "КонтактныеЛица" - в обработчике ПередВыгрузкой - ВыгрузитьПоПравилу(Источник, , , , "КонтактныеЛицаКонтрагентов"); + анализ надо ли выгружать. Источник "КонтактныеЛица", приемник - "КонтактныеЛица". ПКС - стандартные. 2. ПКО "КонтактныеЛицаКонтрагентов" - обработчиков нет. Источник "КонтактныеЛица", приемник - "КонтактныеЛицаКонтрагентов". ПКС - стандартные. |
|||
21
abask
14.08.11
✎
11:03
|
Все равно в УТ в справочнике КонтактныеЛицаКонтрагентов не создается ссылка на элемент справочника Контактные лица
Не поленился - специально создал с нуля две тестовые конфигурации для тестирования. Положил сюда http://depositfiles.com/files/uy8bdpvwg размер 22 кб |
|||
22
abask
14.08.11
✎
21:51
|
Задача решена. Правила Обмена для моих тестовых конфигураций тут http://depositfiles.com/files/xnw5pgbre
В трех словах решение такое: 1. Создаем все, что создается автоматически. 2. Создаем ПКО КонтактныеЛица -> КонтактныеЛицаКонтрагентов и автоматически для него ПВД 3. В ПКО КонтактныеЛицаКонтрагентов добавляем ПКС Источник - Пустой, Приемник - КонтактноеЛицо. 4. Для этого ПКС указываем ПравилоКонвертации - КонтактныеЛица. 5. Для этого же ПКС алгоритм перед выгрузкой: Значение = Источник; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |