Имя: Пароль:
1C
1С v8
КД 2 как работает "При переносе объекта по ссылке НЕ создавать новый объект..."
,
0 zyto
 
17.12.14
17:42
В конвертации данных (2.1.8.1) у правила конвертации объекта есть свойство (галочка):
При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку.

Если поставить это свойство, в xml-ке появляется:
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD="true"

Как я понимаю оно должно работать:
Если документ выгружается по ссылке (допустим есть Возврат покупателю, у которого есть основание = Реализация товаров услуг, при выгрузке Возврата идёт нормальная выгрузка, а Реализация выгружается по ссылке, т.е. не самостоятельно), то если его нет в базе-приёмнике - он не должен создаваться, или должен создаться только документ-пустышка с GUID, Номер, Дата.

Как работает:
В файле с данными это свойство есть, но при загрузке по ссылке документ создаётся целиком, т.е. такое ощущение, что это свойство вообще никак не анализируется.

Что я делаю не так? Что сделать что бы по ссылке документы не выгружались, а выгружались бы только ссылки?
1 vicof
 
17.12.14
17:48
Возможно, у тебя вместе с возвратами выгружаются и реализации. Откуда выгружаешь? В плане обмена есть изменения, связанные с реализациями?
2 zyto
 
17.12.14
17:51
Выгружаю вручную, обработкой V8Exchan82.epf, из комплекта конвертации.
Устанавливаю галку только напротив документа Возврат покупателю. Напротив Реализации галка снята. Т.е. реализация выгружается по ссылке а не самостоятельно.

http://screenshot.su/show.php?img=d1ec4881cd7dca0b0128eb56cef47298.jpg
3 Alex S D
 
17.12.14
17:53
У реализации стоит поиск по уиду?
4 zyto
 
17.12.14
17:54
Да, вот такие галки стоят:
http://screenshot.su/show.php?img=796eede6617f0eef15ba9d45be61f140.jpg
5 zyto
 
17.12.14
17:54
Может быть надо у Возврата поставить галку Не выгружать объекты свойств источника по ссылкам? Ща попробую...
6 Alex S D
 
17.12.14
17:56
советую залезть в отладку в функцию

Функция НайтиОбъектПоСсылке(ТипОбъекта,
                            СвойстваПоиска = "",
                            СвойстваПоискаНеЗамещать = "",
                            ОбъектНайден = Истина,
                            СозданныйОбъект = Неопределено,
                            НеСоздаватьОбъектЕслиНеНайден = Неопределено,
                            РежимПоискаОсновногоОбъекта = Ложь,
                            СвойстваОбъектаМодифицированы = Ложь,
                            НППГлобальнойСсылки = 0,
                            НппСсылки = 0,
                            ИзвестнаяСсылкаУникальногоИдентификатора = Неопределено,
                            ПараметрыОбъекта = Неопределено,
                            ИмяПКО = "")
7 Alex S D
 
17.12.14
17:56
там это все проверяется
8 zyto
 
17.12.14
18:00
Такс... Галка Не выгружать объекты свойств не подходит, т.к. в этом случае вообще никакие объекты не выгружаются (справочники и т.д.), что не есть хорошо.

Может у ПКС есть какие-то параметры?


ЗЫ Ща отладку гляну
9 Alex S D
 
17.12.14
18:02
походу там надо убрать "продолжить поиск если не найден по уиду"
10 Alex S D
 
17.12.14
18:02
попробуй
11 zyto
 
17.12.14
18:11
Убрал продолжать поиск если не найден.... Не помогло, один фиг выгружается полный документ
12 zyto
 
17.12.14
18:25
При отладке, при загрузке реализации:
РежимПоискаОсновногоОбъекта = Истина

как следствие
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта
        И одАтрибут(ФайлОбмена, одТипБулево, "ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD")

это выражение ложное
13 zyto
 
17.12.14
18:29
В свою очередь, эта процедура вызывается так:

ИначеЕсли ИмяУзла = "Ссылка" Тогда

            // ссылка на элемент - сначала получаем по ссылке объект, а потом устанавливаем свойства
            СозданныйОбъект = Неопределено;
            НеСоздаватьОбъектЕслиНеНайден = Неопределено;
            ИзвестнаяСсылкаУникальногоИдентификатора = Неопределено;
            
            Ссылка = НайтиОбъектПоСсылке(ТипОбъекта,
                                СвойстваПоиска,
                                СвойстваПоискаНеЗамещать,
                                ОбъектНайден,
                                СозданныйОбъект,
                                НеСоздаватьОбъектЕслиНеНайден,
                                Истина,
                                СвойстваОбъектаМодифицированы,
                                НППГлобальнойСсылки,
                                НппСсылки,
                                ИзвестнаяСсылкаУникальногоИдентификатора,
                                ПараметрыОбъекта,
                                ИмяПравила);

т.е. тупо передаётся Истина если это ссылка...
Получается конвертация не знает что реализация выгрузилась по ссылке?
14 zyto
 
18.12.14
09:44
Апну.

Смущает вот этот код, в функции НайтиОбъектПоСсылке:
Если Не ЗначениеЗаполнено(СсылкаНаОбъект)
                И ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда
                
                СсылкаНаОбъект = СтруктураСвойств.Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(СвойствоУникальныйИдентификатор));
                ОбъектНайден = Ложь;
                СсылкаНаОбъектФиктивная = Истина;
            
            КонецЕсли;

Здесь почему-то устанавливается ОбъектНайден = Ложь, а в дальнейшем анализируется этот параметр, и если объект не найден - то создаётся новый документ со всеми реквизитами.


Вообще кто-нибудь использует этот функционал? Он работающий?
15 zyto
 
18.12.14
09:47
PS Я использую конвертацию и обработки версии 2.1.8.1
16 zyto
 
18.12.14
10:14
Ап. Никто не сталкивался и никто не использует?
17 Alex S D
 
18.12.14
10:16
Глянул, походу у всех так..
18 zyto
 
18.12.14
10:16
Перефразирую вопрос, как сделать так, что бы при выгрузке по ссылке документ не выгружался, но если потом выгрузить отдельно этот документ - что бы он подтянулся в те реквизиты, где есть на него ссылки.
19 zyto
 
18.12.14
10:17
(17)Т.е. этот механизм не работает у всех? Или я что-то не так делаю?
20 Alex S D
 
18.12.14
10:18
(19) не знаю.. судя по форуму да..
21 Alex S D
 
18.12.14
10:18
не пашет
22 zyto
 
18.12.14
10:20
Вот блин :)
23 Alex S D
 
18.12.14
10:21
а чем тебе мешает док со всеми реквизитами?
24 zyto
 
18.12.14
10:21
Мне ничем не мешает :) А бухгалтерии мешает. Не нужен он на тот момент...
25 azt-yur
 
18.12.14
10:35
(18) Создать 2 ПКО для реализации. В одном со всеми реквизитами, в другом только поля поиска. Первое привязать к ПВД, а второе указать в ПКС для реализации в ПКО документа возврата.
26 Alex S D
 
18.12.14
10:36
кстати да, я так делал..
27 zyto
 
18.12.14
10:43
Ну тоже думал об этом... Но хотелось сделать "красиво", тем более такой функционал заявлен... А тут такая подстава.

А по каким критериям выбирается ПКО, если реквизит составного типа и ПКО явно не указано?
ПРимер:
http://screenshot.su/show.php?img=2461f6bde67530f63293662191fa90ea.jpg

Действует правило ИмяВыгружаемогоДокумента = ИмяПКО или какое-то другое?
Ну или другими словами как подобные ситуации, когда ИмяПКО явно не задано перенаправить на ПКО-пустышку? И можно ли создать одно правило для всех типов документов?
28 Alex S D
 
18.12.14
10:44
по приоритету
29 Alex S D
 
18.12.14
10:44
подбирается то правило у которого больше
30 zyto
 
18.12.14
10:47
По приоритету, а ещё по чему - по имени или по типу источника?
Не будет же СчётНаОплату выгружаться по ПКО Реализация, если у последнего приоритет 100500?
31 Alex S D
 
18.12.14
10:47
по типу источника
32 zyto
 
18.12.14
10:50
Понятно, благодарю за помощь!

Если вдруг кто узнает как заставить работать типовой механизм - отпишитесь, пожалуйста.
33 zyto
 
18.12.14
10:52
...я правильно понимаю что нет возможности сделать одно правило-пустышку, и перенаправить на него все документы, выгружаемые по ссылке?
Надо на каждый тип документа создавать пустышку, а в ПВД указывать нормальные правила, так?
34 Alex S D
 
18.12.14
10:53
ага..
35 azt-yur
 
18.12.14
10:56
а как выгрузку делаете? через прямое подключение к базе или через файл.
мне кажется если через файл, то если стоит галка "При переносе объекта по ссылке НЕ создавать новый объект...", то реквизиты вообще не должны выгружаться
36 Йохохо
 
18.12.14
10:57
(33) можно попробовать не указывать ИмяПКО, а алгоритм написать, который будет возвращать ИмяПКО
37 zyto
 
18.12.14
11:11
(35)Выгрузку делаю через файл.
И все реквизиты переносимого по ссылке объекта есть в этом файле... Это меня и напрягло с самого начала.
Но думал может если стоит признак не загружать по ссылке - то он его не будет создавать. А фиг там.
38 zyto
 
18.12.14
11:17
Если кому интересно - тут выложил правила:
http://forum.infostart.ru/forum85/topic122110/message1270113/#message1270113
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.