Имя: Пароль:
1C
1С v8
КД перенос справочниа КонтактныеЛица
0 Wefast
 
24.11.15
03:33
БСО => УСО(на основе УПП)

В БСО это просто справочник с ссылкой на контрагента.

В УСО же это два справочниа и регистр сведений.
В КонтактноеЛицоКонтрагентов указывается контактное лицо и ссылка на контрагента.

В контактном лице есть таб часть(регистр) в которой не понятно что за инфа. Там можно указать период, контрагента, КЛ контрагента и дату увольненияю. Как это относится к КЛ не ясно.

На регистр я решил забить пока. Не уверен что туда нужно что то переносить.

В ПКО КонтактныеЛицаКонтрагентов (КонтактныеЛица => КЛКонтрагентов)
в событие при выгрузке я пишу:
Если Справочники.КонтактныеЛица.НайтиПоНаименованию(Объект.Наименование) <> Справочники.КонтактныеЛица.ПустаяСсылка() Тогда
    
    КЛ = Справочники.КонтактныеЛица.СоздатьЭлемент();
    Кл.Фамилия = Объект.Фамилия;
    Кл.Имя = Объект.Имя;
    Кл.Наименование = Объект.Наименование;
    Кл.Отчество = Объект.Отчество;
    КЛ.Пол = Объект.Пол;
    Кл.ПометкаУдаления = Объект.ПометкаУдаления;
    Кл.Фамилия = Объект.Фамилия;
    Кл.Записать();
    
    Объект.ОбъектВладелец = Кл.Ссылка;
    
КонецЕсли;

Ну и в общем ошибок не выдает. Но и элементы справочника КЛ не создает.
1 Альбатрос
 
24.11.15
05:39
(0) Посмотри типовой пример КД 1 в 2
2 Альбатрос
 
24.11.15
05:40
И чо ты там в ПриВыгрузке создаешь?
3 cw014
 
24.11.15
07:14
(2) +1
4 cw014
 
24.11.15
07:15
У тебя у Источника и приемника одинаковые поля. Сделай нормальную ПКО, без извратов
5 Wefast
 
24.11.15
09:53
(2) Контактное лицо создаю, и записываю ссылку нового КЛ в КЛК
(4) Да, но контактные лица там спрошлые имена без отчеств и фамилий. Повторяются.

Мне надо чтобы КЛК и КЛ создавались вместе и связывались между собой.

Мне нужно сделать:
Создать ПКС. Источник - поставить галочку получить данные из вх данных. Приемник поставить нужный мне реквизит( Контактное лицо) и правило указать (Контактные лица => Контактные лица)?

Где то нужно указать что он будет искать по этом правилу, какое именно контактное лицо. Но как?  (Думаю уникальность контактного лица в источнике можно узнать по дате рождения, контрагенте и имени.)
6 Альбатрос
 
24.11.15
10:04
Я них*я не понял. В источнике у тебя один справочник "Контактные лица". В приемнике что?
7 Альбатрос
 
24.11.15
10:05
и хорош сокращать, ни хрена не понятно
8 Wefast
 
24.11.15
10:06
(6) в источника Контактные лица, в приемнике Контактные лица и Контактные лица контрагентов. Во второй есть ссылка на первый.
9 Альбатрос
 
24.11.15
10:10
(8)
1. Делаешь два ПКО - "Контактные лица" и "Контактные лица контрагентов"
2. В ПКО "Контактные лица контрагентов" у тебя будет ПКС "Контактное лицо". В нем указываешь созданное тобой первое правило, а в ПередВыгрузкой для этого ПКС пишешь Значение = Источник.
10 Wefast
 
24.11.15
10:48
(9) В приемнике у контактного лица не указан контрагент. Т.е. связь идет по имени. Но имена одинаковые есть. Даты рождения не у всех заполнены.
Если делать одноразовую загрузку то можно конечно поиск по коду сделать для уникальности.

Но если мне понадобится загрузить еще или из другой базы в этот справочник то врят ли выйдет что то хорошее.

В любом случае спасибо. Очень помогло.

Вопрос в догонку. В обоих справочниках прикреплен регистр Контактная информация.

Из справочника в регистр я переносил по новому созданному ПКО.

А как тут поступить? чтобы запись создавалась в момент создания Контактного лица. А не переносить регистр с поиском контактного лица(что как выяснилось затруднительно)?
11 Альбатрос
 
24.11.15
11:43
(10) Вот лень тебе типовые правила посмотреть, да?

перенос записи РС штрихкоды с номенклатурой, обработчик "ПослеВыгрузки" ПКО "Номенклатура":

Если Не Источник.ЭтоГруппа тогда
    
    Запросы.ШтрихКод.УстановитьПараметр("Позиция", Источник.ссылка);
    Выборка = Запросы.Штрихкод.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        
        ИсходящиеДанные            = Новый Структура("Владелец, ШтрихКод, ТипШтрихКода, ЕдиницаИзмерения, качество");
        ИсходящиеДанные.ШтрихКод        = Выборка.ШтрихКод;
        ИсходящиеДанные.Владелец        = Источник.Ссылка;
        ИсходящиеДанные.ТипШтрихкода        = Выборка.ТипШтрихКода;
        ИсходящиеДанные.ЕдиницаИзмерения            = Выборка.ЕдиницаИзмерения;
        ИсходящиеДанные.Качество = "Новый";
        ВыгрузитьПоПравилу( , , ИсходящиеДанные, , "ШтрихКоды");
        
    КонецЕсли;    

    
КонецЕсли;
12 Альбатрос
 
24.11.15
11:44
(11) это мое, не из типовых, но принцип тот же.
13 Wefast
 
24.11.15
12:30
(11) да, так и сделал.

Проблема теперь вот в чем.

У меня есть ПКО КонтактныеЛицаКонтрагентов.
Там поля
Код, наименование, Владелец, КонтактноеЛицо
Что то там еще

Если я отключаю Владельца( а это Контрагент) то выгружаются все элементы и загружаются тоже все.

Если же я выгружаю с владельцем. Но выгружается только часть контактных лиц контрагентов.

Т.е. они не выгружаются из-за контрагента. В обеих базах контрагент этот есть. От остальных отличий вроде нет.

Условий каких то на ПКО контрагенты - нет.

Куда еще посмотреть не знаю. Может есть какие то идеи на этот счет?
14 Альбатрос
 
24.11.15
12:39
(13) Изначально источником для всего должен быть контрагент.
15 cw014
 
24.11.15
12:45
Вот млин, неумеха.
1) У тебя есть источник "Контактные лица". По ним можно найти ссылку на "Контакнтые лица контрагентов". У этого справочника можно вытащить владельца.
2) У тебя есть источник "Контактные лица", который инициируется из правил. Передавать во ВходящиеДанные ссылку на контрагента
16 Wefast
 
24.11.15
12:50
(14) не понял? Есть какой то порядок выгрузки объектов и он на что то влияет?

Я отмечаю выгружать только КЛ.
Почему он найдя Контрагента(а он его должен найти потому как он там есть) он идет дальше по цепочке ПКО, хотя к примеру стоит галочка не изменять данные у имеющихся объектов?
Ошибка была в ПКО договоров контрагентов и после нее загрузка прекращалась

(15) Выше уже нашлись необходимые ответы. С Входящими данными не приходилось работать. Не знаю что там и как.
2 + 2 = 3.9999999999999999999999999999999...