Имя: Пароль:
1C
1С v8
Конвертация 2. Правило
0 nAPACEHAK
 
24.05.19
08:16
Доброго

Слишком большого опыта нет в конвертации. Не могу понять как сделать ПКО

Две разные конфы
В одной реквизит тип Справочник.МашМех. В другой - два справочника: Справочник.Маш и Справочник.Мех
(из одного сделано два)
Элементы МашМех перенесены в Маш и Мех.

В документе источника реквизит типа Спр.МашМех надо перенести в реквизит дока назначения  составного типа. Маш, Мех, Строка

что то вида

Если НЕ Справочник.Маш.НайтиПоНаименованию (Источник.<Чтототам_МашМех.Наименование> = Справочник.Маш.ПустаяСсылка() тогда
   Значение = Справочник.Маш.НайтиПоНаименованию (Источник.<Чтототам_МашМех.Наименование>;
ИначеЕсли НЕ Справочник.Мех.НайтиПоНаименованию (Источник.<Чтототам_МашМех.Наименование> = Справочник.Мех.ПустаяСсылка() тогда
   Значение = Справочник.Мех.НайтиПоНаименованию (Источник.<Чтототам_МашМех.Наименование>;
Иначе
   Значение = Источник.<Чтототам_МашМех.Наименование>;
КонецЕсли;  

Пробовал и через параметр и через значение. видать лыжи плохо смазал

Спасибо
1 K1RSAN
 
24.05.19
08:20
(0) А в первой конфе можно как-то различить Мех от Маша?
2 Йохохо
 
24.05.19
08:53
а реквизитов много в трех этих справочниках переносится?
3 nAPACEHAK
 
24.05.19
15:13
(1) нет
(2) много

справочник из одного переносился так: сначала вся куча в один, другой. Потом руками удалялось лишнее. там все в куче было и никаких признаков для отделения мух от котлет (только глядя по наименованию Камаз от Бензопила.. При чем Камаз может быть Камаз новый, Камаз1, Камаз сам сделал итд)
4 garantNo4x
 
24.05.19
15:19
у вас в одной конфигурации 1 справочник а принимает два ?
Ну тогда при выгрузке наверное надо или указать по какому правилу ПКО выгружать .. т.е. при выгрузке условие и принудительное указание правила
или при загрузке уже обрабатывать разделяя там в коде.
Но это я так .. особенно я не помню что там.
5 Glup0sti
 
24.05.19
15:52
удобней всего сделать 2 параметра в ПКО документа (маш и мех) и выгружать и так и так, в настройках этих правил поставить "не создавать новый". В обработчике после загрузки определить, какой параметр заполнен и подставить в документ
6 nAPACEHAK
 
24.05.19
15:54
(4) написал же. конфы две.
в одной конфе это МашМех
во второй 1)Маш 2)Мех

При выгрузке в ПКО указано выгружать МашМех.Наименование в строковый параметр

/Свойство><ЗначениеПараметра Имя="МашМех" Тип="Строка">
    <Значение>Автомобиль LADA LARGUS</Значение>

вот теперь, при загрузке, надо как то определиться, это наименование в Спр.Маш или Спр.Мех. Найденное значение и подставить в реквизит составного типа приемника (ну или какую нить пустую ссылку если ничего не нашли)
примерное условие выше

только не пойму в куда его привернуть

В ПКО пробовал и Перед загрузкой, и При загрузке, и Поля поиска..... не едут лыжи хоть убейся ((((
7 nAPACEHAK
 
24.05.19
15:55
(5) о. мысль
8 Йохохо
 
24.05.19
16:04
(7) на этапе выгрузки ни как не определить тип приемника? в типовых примерах кд гляньте "перечисление в справочник на этапе загрузки"
9 Йохохо
 
24.05.19
16:11
что то подумалось, что если код из (0) исправить для обработчика полей поиска, то всё взлетит
10 garantNo4x
 
24.05.19
16:37
v8: Конвертация данных: Один справочник в два вот так один справочник перегружается в два.
11 garantNo4x
 
24.05.19
16:38
если же у вас при выгрузке нельзя определить что на выходе, то вам поможет только секция призагрузке
12 nAPACEHAK
 
27.05.19
15:07
Если СтрНайти (Источник.Родитель.Наименование, "механизация") > 0
    Или СтрНайти (Источник.Наименование, "ЭСМ") > 0 Тогда
        ВыгрузитьПоПравилу (Источник,,ВходящиеДанные,,"МашМех_В_Мех");
        Сообщить (Источник.Код + "   " + Источник.Родитель.Наименование + "   " + Источник.Наименование + " мех");
Иначе
    ВыгрузитьПоПравилу (Источник,,ВходящиеДанные,,"МашМех_В_Маш");
    Сообщить (Источник.Код + "   " + Источник.Родитель.Наименование + "   " + Источник.Наименование + " МАШ");
КонецЕсли;
13 nAPACEHAK
 
27.05.19
15:10
вроде взлетело
ПКО МашМех_В_Маш, МашМех_в_Мех, Автомобили
и (12) в Перед выгрузкой в автомобили

в доке в ПКС правио Автомобили
14 Йохохо
 
27.05.19
15:17
(12) так если всё известно "если блаблабла ИмяПКО = "МатМех_В_Торжок" " и всё