Имя: Пароль:
1C
 
КД 2.1 Выгрузка объекта происходит дважды, почему так..
0 AneJIbcuH
 
30.03.18
07:28
Добрый день! Есть обмен. Происходит следующее:

1.Выгружаются контрагенты, выгруженные накапливаются в глобальный параметр - массив.
2. Выгружаются расчетные счета контрагентов, таким образом:
http://joxi.ru/Q2K1J3Vc9Yk7Pr

Проблема в выгрузке Банков. В ПКО Банков идёт свой сложный алгоритм поиска (Только ищутся, не создаются). Они выгружаются только по ссылке из Расчетного счета. Выгружается только один расчетный счет (проверил). Но поиск банка выполняется дважды (он выгружается дважды походу). И найти хвост никак не могу. Банк нигде не участвует больше, кроме расчетного счета: http://joxi.ru/V2V3QJau0bllQA

Делаю комментарии при выгрузке. Счет выгружается один раз, а банк дважды. http://joxi.ru/xAeBzwJTY944Nr
Судя по комментариям Банк будто выгружается где-то без расчетного счета. Может дело в "ВыгрузитьПоПравилу()". Как ещё проверить можно?
1 AneJIbcuH
 
30.03.18
07:41
(0) Может так и должно быть, последовательность действий скорее всего такая:
1. Выгрузился расчетный счет;
2. Следом банк выгрузился по ссылке;
3. При загрузке загружается банк (Ищется соответственно);
4. Потом расчетный счет, там ищется снова банк, как реквизит у расчетного счета.

Если так, то как исключить 2 и 3 действия.
2 бомболюк
 
30.03.18
07:53
"он выгружается дважды походу"
это легко установить точно, просмотрев файл выгрузки. Если у ПКО банка не стоит галка "Не запоминать выгруженные объекты" (по умолчанию отключена) - банк в файле выгрузке должен быть только 1 раз.
3 AneJIbcuH
 
30.03.18
08:00
(2) Меня это и смущает: http://joxi.ru/zAN6EXyTle7G7A
4 бомболюк
 
30.03.18
08:06
(3) ну первый выделенный фрагмент - это объект. А вот второй - это узел свойства, включающий узел ссылки банка. Так что я пока криминала не вижу.
5 AneJIbcuH
 
30.03.18
08:12
(3) Но это не означает, что выгрузился дважды. Объект выгружен один. Почему поиск Банка выполняется дважды, как добиться единственного?
6 бомболюк
 
30.03.18
08:18
Если, как ты пишешь, сначала выгружаются контрагенты, то банк может выгружаться сначала по ссылке Контрагенты - ОсновнойРасчетныйСчет - Банк, а потом еще и при выгрузке расчетный счетов.
7 Йохохо
 
30.03.18
08:32
а если на расчетные счета поставить "не выгружать объекты свойств источника по ссылкам"? один?
8 AneJIbcuH
 
30.03.18
08:32
(6) Всё проверил, нет нигде ПКС, где бы ещё выгружался расчетный счет.
Правила пишу с нуля. http://joxi.ru/YmE3Rd8uZ8lQKA
9 бомболюк
 
30.03.18
08:34
короче, мало инфы. Раз ищется долго - заведи себе для поиска банка поисковый кэш. Тогда второй и последующий разы искаться будет быстро.
10 AneJIbcuH
 
30.03.18
08:39
(7) Спасибо, мил человек, то что нужно! Теперь более понятна эта галка.
11 Йохохо
 
30.03.18
08:45
(10) на нпп глянь, что он больше, чем у рс. Была бы лишняя выгрузка был бы меньше
12 AneJIbcuH
 
30.03.18
09:24
Дабы темы не плодить, такой вопрос:
Выгрузили расчетный счет, необходимо его сделать основным у контрагента. (Реквизит у контрагента такой).
Как такое лучше всего реализовать?
13 Йохохо
 
30.03.18
09:27
выпить кофе и реализовать)
14 AneJIbcuH
 
30.03.18
09:32
(13) Не хотелось бы лепить, что-нибудь подобное:

В обработчике "После загрузки" расчетного счета:

"КонтрагентОбъект = Объект.Владелец.ПолучитьОбъект();
КонтрагентОбъект.ОсновнойРасчетныйСчет = Объект.Ссылка;
КонтрагентОбъект.Записать();"
15 Йохохо
 
30.03.18
09:41
(14) получается решение с после выгрузки простое, но неудобное. И возможно лучше выгружать основной рс из контрагента и не трогать остальные
16 AneJIbcuH
 
30.03.18
09:46
(15) Интересует больше не "не удобное", а более оптимальное/производительное.
А если в Базе источнике я отбираю рс для контрагента по какому-то принципу (не основной рс), а в приемнике надо сделать этот рс основным.
17 Йохохо
 
30.03.18
09:58
(16) сначала надо сделать, чтоб правильно работало. Понятно что в ПКС РС у контрагента тоже должен быть правильный рс. Короче вопрос логики а не использования КД
18 AneJIbcuH
 
30.03.18
10:35
(17) Так я определил задачу: Выгружаем РС для контрагента (любой), в приемнике надо сделать его Основным для контрагента. Как оптимально решить такую задачу с помощью КД?
19 Cyberhawk
 
30.03.18
10:39
Сколько платят за решение вопроса?
20 AneJIbcuH
 
30.03.18
10:51
(19) Кусок хлеба )
21 Cyberhawk
 
30.03.18
10:54
(20) Во франче что ли?
22 AneJIbcuH
 
30.03.18
10:59
(21) Нет, но всё равно кусок хлеба )
23 Cyberhawk
 
30.03.18
11:00
(22) Смысл?
24 AneJIbcuH
 
30.03.18
11:05
(23) Опыт для себя ) Есть что по делу?
25 Йохохо
 
30.03.18
11:10
(18) технически ты ее решил, а логически и практически вероятно нет
26 Cyberhawk
 
30.03.18
11:37
(24) В трех словах опиши что за дело
27 AneJIbcuH
 
30.03.18
12:38
(26)  В (18)
28 Cyberhawk
 
30.03.18
12:43
Непонятно. За самопридуманные аббревиатуры могу только плюнуть тебе в лицо.
29 AneJIbcuH
 
30.03.18
13:21
(28) РС не регистр сведений, а расчетный счет (банковский счет).
30 Cyberhawk
 
30.03.18
13:23
(29) Ну так после загрузки в приемник пишешь код, делаюший РС основным.
Ты не огласил, как признак основного р/с хранится в БД.
31 AneJIbcuH
 
30.03.18
13:25
(30) Реквизит справочника "Контрагент"
32 AneJIbcuH
 
30.03.18
13:27
(30) подобное я тут (14) и написал, но может ещё какой подход есть.
33 Cyberhawk
 
30.03.18
13:31
А в источнике?
34 AneJIbcuH
 
30.03.18
13:33
(33) Тоже реквизит. Но загвоздка в том, что в Источнике этот реквизит может быть и не заполнен, но р/с есть.
35 Cyberhawk
 
30.03.18
14:17
Ну тогда получается, что если в источнике он заполнен, то проблем нет?
36 Cyberhawk
 
30.03.18
14:18
В ПКС р/с ПКО контрагента в источнике подставляй в качестве значения первый попавшийся р/с (подходящий для выгрузки, если для р/с в ПВД / ПКО есть какие-то фильтры)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.