|
Конвертация данных. Поставление значения в базе-приемнике. | ☑ | ||
---|---|---|---|---|
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) ХЗ. Уже мозг сломал. Сложные правила все работают, а такое простое, но важное нет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |