|   |   | 
| 
 | Конвертация данных. Поставление значения в базе-приемнике. | ☑ | ||
|---|---|---|---|---|
| 0
    
        breakthrough 18.02.16✎ 12:37 | 
        Здравствуйте.
 При конвертации необходимо, чтобы в базе-приемнике у перегруженных объектов проставлялась организация, которой нет в базе-источнике. Сделал ПКО для поиска по ИНН и КПП и проставил его для свойства организация в другом. Загвоздка в том, что если мы не заполняем это свойство совсем, то возникает ошибка во время выгрузки. Но к сожалению, не всегда есть возможность заполнить это свойство даже "левой" организацией из базы-источника. Пробовал заполнять свойство объекта в обработчике для ПКО "после загрузки" результат никакой. Тем более что выгружаю регистры и проставлять организацию в каждой записи. Подскажите решение. Заранее спасибо! | |||
| 1
    
        Spieluhr 18.02.16✎ 12:51 | 
        Передавать в Параметры каждого объекта ИНН и КПП искомой организации.
 Искать ПослеЗагрузки по Параметры.ИНН + Параметры.КПП | |||
| 2
    
        mikecool 18.02.16✎ 12:54 | 
        послезагрузки найти организацию и прописать     | |||
| 3
    
        breakthrough 18.02.16✎ 12:56 | 
        (1) Сейчас так и сделано. Параметры заполнены. Делаю запросом поиск по справочнику и заполняю объект:
 // Если НЕ ОбъектНайден Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Организации.Ссылка |ИЗ | Справочник.Организации КАК Организации |ГДЕ | Организации.ИНН = &ИНН | И Организации.КПП = &КПП"; Запрос.УстановитьПараметр("ИНН", Параметры.ИНН); Запрос.УстановитьПараметр("КПП", Параметры.КПП_Головная); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); ВыборкаДетальныеЗаписи.Следующий(); Объект =ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Объект.Записать(); // КонецЕсли; Все равно пусто. | |||
| 4
    
        Alex S D 18.02.16✎ 13:00 | 
        "Но к сожалению, не всегда есть возможность заполнить это свойство даже "левой" организацией из базы-источника." А что в этом случае должно заполниться?     | |||
| 5
    
        Alex S D 18.02.16✎ 13:00 | 
        ты же в параметры передаешь что-то. не понимаю ..     | |||
| 6
    
        los_hooliganos 18.02.16✎ 13:03 | 
        (0) Давай код из ПКО 
 И вопрос: ПКО на реквизит или на весь объект? | |||
| 7
    
        breakthrough 18.02.16✎ 13:03 | 
        (4) Ну, я имею в виду, если использовать для свойства "Организация" отдельное ПКО, где идет поиск по двум полям вида
 Для ПКС ИНН: Значение = Параметры.ИНН; Для ПКС КПП: Значение = Параметры.КПП_Головная; | |||
| 8
    
        los_hooliganos 18.02.16✎ 13:04 | 
        При выгрузки ставь пустую ссылку на Организацию     | |||
| 9
    
        los_hooliganos 18.02.16✎ 13:04 | 
        (7) Што ето за изврат?     | |||
| 10
    
        breakthrough 18.02.16✎ 13:09 | 
        (8) Пробовал. Пустая ссылка не канает.
 (9) Пардоньте, о каком изврате идете речь? Вполне нормальное решение явно указать значения свойств, тем более они не ссылочного типа и по ним двум осуществляется поиск объекта. "Поиск по ссылке" разумеется выключен. | |||
| 11
    
        Ma3eIIa 18.02.16✎ 13:11 | ||||
| 12
    
        breakthrough 18.02.16✎ 13:12 | 
        (11) Спасибо. Читал и то и другое. Там не совсем про это.     | |||
| 13
    
        Ma3eIIa 18.02.16✎ 13:14 | 
        Почему же ? после загрузки берешь свой параметр организация и поиск в приемнике. Разве не то ?     | |||
| 14
    
        Ma3eIIa 18.02.16✎ 13:15 | 
        (13) делаешь алгоритм. и просто делаешь его вызов. где тебе нужно поменять организацию. все.     | |||
| 15
    
        Spieluhr 18.02.16✎ 13:15 | 
        (3) Объект.Организация = ВыборкаДетальныеЗаписи.Ссылка     | |||
| 16
    
        breakthrough 18.02.16✎ 13:15 | 
        (13) Все верно. Я так и делаю. Но в результате получаю незаполненный реквизит. Вот и пытаюсь понять что я делаю не так.     | |||
| 17
    
        Ma3eIIa 18.02.16✎ 13:16 | 
        (16) Точно в обработчике после загрузки ?     | |||
| 18
    
        breakthrough 18.02.16✎ 13:16 | 
        (15) Да, так и есть. Я просто скинул код из ПКО для Организаций. Спасибо.     | |||
| 19
    
        breakthrough 18.02.16✎ 13:16 | 
        (17) Клянусь)     | |||
| 20
    
        Ma3eIIa 18.02.16✎ 13:20 | 
        Вообще не где или только в регистре пусто ?     | |||
| 21
    
        breakthrough 18.02.16✎ 13:20 | 
        Ладно, понимаю, что где-то тупанул. Буду разбираться.
 Всем большое спасибо! Просто еще трудность в том, что если заполнять не одиночный объект, а я получаю данные из ПВД как ВходящиеДанные и загружаю их в регистр через Документ "Перенос данных", то как поставлять значение свойства для записей регистра? | |||
| 22
    
        Ma3eIIa 18.02.16✎ 13:22 | ||||
| 23
    
        Ma3eIIa 18.02.16✎ 13:22 | 
        (21) правило создай отдельное. где источник пуст. тогда будет коллекция. если он указан будет 1 обхект     | |||
| 24
    
        Ma3eIIa 18.02.16✎ 13:24 | 
        (21) я вечером залезу к клиенту гляну правила которые делал. у меня обмен не с типовой базой. что то вроде этого делал. напишу сюда     | |||
| 25
    
        breakthrough 18.02.16✎ 13:25 | 
        (24) Спасибо! Буду очень признателен.     | |||
| 26
    
        Boroda 18.02.16✎ 13:30 | 
        В (3) передаваемые параметры не те же что параметры объекта.
 К параметрам объекта необходимо обращаться через "ПараметрыОбъекта". | |||
| 27
    
        breakthrough 18.02.16✎ 13:32 | 
        (26) Ну это я знаю. Вопрос, зачем мне обращаться к ПараметрамОбъекта? Я использую глобальные параметры конвертации.     | |||
| 28
    
        NicolayNN 18.02.16✎ 13:39 | 
        В обработчике "После загрузки" подставлять нужное значение, типа Объект.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН","4217137777");
 Не подходит? | |||
| 29
    
        breakthrough 18.02.16✎ 13:41 | 
        (28) Подходит. Но почему-то не срабатывает. Вот почему не могу понять.     | |||
| 30
    
        NicolayNN 18.02.16✎ 13:42 | 
        Может не то ПКО срабатывает     | |||
| 31
    
        Alex S D 18.02.16✎ 13:44 | 
        (29) Настало время открыть для себя отладку обработчиков     | |||
| 32
    
        breakthrough 18.02.16✎ 13:46 | 
        (31) И вправду.     | |||
| 33
    
        Boroda 18.02.16✎ 13:48 | 
        Как вариант:
 Создай правило, например "ОрганизацияПоУмолчанию". Поля поиска ИНН и КПП. Для ИНН и КПП пропиши явные значения организации по умолчанию: типа: Значение = "0002223330"; И при выгрузке, если организация не задана меняй имя правила ИмяПКО = "ОрганизацияПоУмолчанию"; | |||
| 34
    
        breakthrough 18.02.16✎ 13:51 | 
        (31) Обработчик: "ПослеЗагрузкиПравилОбмена": Отладка обработчика "После загрузки правил обмена" не поддерживается.     | |||
| 35
    
        breakthrough 18.02.16✎ 13:53 | 
        (33) Спасибо. Дело в том, что сейчас так и сделано. Но когда организация не указана, то все равно реквизит не заполняется.     | |||
| 36
    
        Ma3eIIa 18.02.16✎ 13:54 | 
        (29) может у тебя какой то обработчик подключен. и поэтому твоя организация затирается.     | |||
| 37
    
        breakthrough 18.02.16✎ 13:56 | 
        (36) ХЗ. Уже мозг сломал. Сложные правила все работают, а такое простое, но важное нет.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |