Имя: Пароль:
1C
 
Обмен по плану обмена без регистрации (без смс и бесплатно) Как?
,
0 bolobol
 
23.11.17
17:55
Добрый день!

Подскажите, пожалуйста, такой вопрос:

ЗУП 2.5
СОМ соединение с другой базой ЗУП 2.5 обработкой ОбменДаннымиХМЛ.
Тянем оттуда документ ПриемНаРаботуВОрганизацию, по правилам, где необходимые к выгрузке документы выбираются запросом, затем от команды:
ВыгрузитьПоПравилу(ВыбЗапрос.Ссылка,,,,"ПриемНаРаботуВОрганизацию",,,,,);
- ожидается полноценная выгрузка со всеми ссылками, использованными в документах.

Однако...

При ручном обмене через УниверсальныйОбменДаннымиХМЛ - всё происходит успешно.

При автообмене - Сотрудники не создаются, должности создаются, но с пустыми наименованиями.
В Сотрудниках и должностях поиск установлен по идентификатору, без продолжения поиска по реквизитам поиска.
Из реквизитов поиска:
у Сотрудников отмечено только: ЭтоГруппа
у должности: Код.

Вот поэтому-то - должность и создаётся и Код-таки заполняется, но другие реквизиты пусты, а Сотрудники - вообще не создаются.

Это нормальное поведение? Чем-то это объясняется? Как-то пользоваться полноценно обменом возможно?

Спасибо!
1 Ёпрст
 
23.11.17
17:57
нормальное, ошибка в правилах
2 bolobol
 
23.11.17
18:05
(1) В плане обмена используются те же правила.
3 Ёпрст
 
23.11.17
18:06
(2) там есть различие, например, источник в одном случае - ссылка, в другом случае - объект
4 Ёпрст
 
23.11.17
18:07
ну и и ногда, в обработчиках, приходится втыкать проверку на это

Если Источник.ССылка = Источник Тогда
5 Ёпрст
 
23.11.17
18:08
например, так:

   Запрос = Новый Запрос("
        |ВЫБРАТЬ
        |    *
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |ГДЕ
        |    КонтактнаяИнформация.Объект = &Объект");
   Если Источник.ССылка = Источник Тогда
       Запрос.УстановитьПараметр("Объект", Источник);
   Иначе
       Запрос.УстановитьПараметр("Объект", Источник.ССылка);
    КонецЕсли;      
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ВыгрузитьПоПравилу(,,Выборка, , "КонтактнаяИнформация");
    КонецЦикла;
6 Ёпрст
 
23.11.17
18:15
+ сама обработка ОбменДаннымиXML, та, что встроенна в конфу, отличается от УниверсальныйОбменДаннымиХМЛ , она например, затирает движения дока и пытается его провести.
Это в ней нужно править.
7 bolobol
 
23.11.17
18:22
(6) Насчёт "провести" - нас не проведёшь! Ну, т.е. - нет там такого, тупо - перезаписывает документ, и если сам не проведёшь - так и останется со старыми проводками.
Но проблема не в этом, проблема в том, что ссылки, использованные в документе, переносятся с созданием и заполнением только полей поиска, что, кагбэ, намекает, что все поля нужно определять как поля поиска... Вот и думается мне, закрыть эту беду таким образом или дополнительной принудительной упреждающей выгрузкой всех ссылок, что использованы в выгружаемых документах.
8 bolobol
 
23.11.17
18:23
или ещё как-то, типа: поправить ОбменДаннымиХМЛ в какой-то его части.
9 Ёпрст
 
23.11.17
18:30
(7) ты не понял.
Если обмен по правилам через планобмена, то обработка ОбменДаннымиХМЛ  удаляет после загрузки все движения документа и дальше идет Провести.
Универсальная, переносит документ вместе с движениями как есть.
в ОбменДаннымиХМЛ  этот момент нужно исправлять.
На счет ссылок, что не переносится, нужна конкретика.
10 bolobol
 
23.11.17
18:36
(9) Позволяет переносить так - да. Но исправлений в данном поведении не требуется, есть РежимЗаписи, который, вроде как, успешно с этим справляется и там и там. Но и такой подход не используем, т.к. пользователю не приходят сообщения о проблемах проведения. Ди не суть, вопрос-то не в этом, а в этом - пока вопросов нет.
11 MaxS
 
23.11.17
18:43
УниверсальныйОбменДаннымиХМЛ переносит все связанные ссылки, обмен через планы обмена переносит зарегистрированные объекты. Вроде так. Нужно всё регистрировать к обмену, и переедет.
12 ГдеСобака Зарыта
 
23.11.17
18:44
13 bolobol
 
23.11.17
18:45
С установленными галками на все реквизиты - Сотрудник создался, но в документе, в реквизит Работники записалось "<Объект н.н.", т.е. на этапе создания документа - ссылка в базе не существовала. Похоже - да, схема использования данной обработки предусматривает лишь последовательное создание объектов, без каких-то вычислений необходимых зависимостей.
14 Ёпрст
 
23.11.17
19:09
(11) неа.
переносит по ссылкам все связанные объекты.
У меня план обмена регит только документ.
В другую базу летит всё связанное само  и справочники и движуха, вообще всё.
15 Ёпрст
 
23.11.17
19:11
(13) нифига подобного :)
16 Cyberhawk
 
23.11.17
19:12
(14) Все это зависит от прикладного кода (кода конфигурации)
17 Ёпрст
 
23.11.17
19:12
Посмотри в ПКО. ввозможно у тя там галка стоит - негружать свойства источника по ссылкам
18 Ёпрст
 
23.11.17
19:14
(16) я спецом проверял поделку ОбменДаннымиХМЛ из последних конф.
Никаких существенных изменений по сравнению с древним релизом упп.
Единственное, (9).
19 MaxS
 
23.11.17
19:14
(14) Ну это же нетиповое поведение?
Допустим есть 10 документов с 100500 строк номенклатуры. В каждом доументе одна и та же номенклатура.
За сеанс передаётся один документ Зачем 10 раз передавать всю номенклатуру?
(17) Эта настройка принудительно в типовом коде отключается при обмене через планы обмена.
20 Ёпрст
 
23.11.17
19:16
(19) за это отвечает галка в свойствах ПКО
21 Cyberhawk
 
23.11.17
19:17
(18) Плохо проверял. В типовых обмен через планы обмена не выгружает объекты по ссылкам независимо от галочки, как верно пишет (19)
22 Cyberhawk
 
23.11.17
19:18
+(21) Если у тебя это не так - у тебя нетиповое поведение
23 bolobol
 
23.11.17
19:20
(19) Прав. Проверил по (12) - точно так, если написать пред выгрузкой, что Ложь (ТолькоПолучитьУзелСсылки = Ложь;) - исправно грузит и последовательность нормальная.

Спасибо!!

Однако, не разобрал, где в обработке эта галки в истину становится - везде Ложь в коде...
24 Ёпрст
 
23.11.17
19:20
(22) у меня типовая обработка ОбменДаннымиXML с последней версии УПП, переделана только в части (9).

выгружает всё по ссылкам при использовании плана обмена.
могу выложить.
25 Ёпрст
 
23.11.17
19:23
(19) и если че, он 10 раз не будет передавать всю номенклатуру, он передаст её 1 раз.
Там по-умолчанию выгруженные объекты запоминаются
26 Ёпрст
 
23.11.17
19:24
если только спецом галку не воткнуть - не запоминать выгруженные объекты
27 Ёпрст
 
23.11.17
19:26
И еще, возможно, у тебя поиск всех объектов идёт по внутреннему идентификатору, и там да , может быть, для оптимизации всегда только ссылка летит.
У меня все объекты ищутся по полям поиска, там нет ссылки вообще.
:)
28 bolobol
 
23.11.17
19:32
О, это тоже пища для изысканий в обработке. Благодарю-благодарю!
29 Cyberhawk
 
23.11.17
20:17
(24) А при чем тут переделка обработки в части загрузки, когда речь о выгрузке?
30 Cyberhawk
 
23.11.17
20:23
Я к тому, что уверен ли ты, что при выгрузке из базы-источника используется эта твоя обработка, которую ты допиливал в базе-приемнике (для загрузки)?
31 Ёпрст
 
24.11.17
10:28
(30) конечно уверен, отладка же есть
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.