УстановитьСсылкуНового не работает #515032


#0 by MitayВ
НовыйДок.получитьссылкунового          = <Объект не найден> (37:a35548f3962946314732d5138994c3f5) ПодклДокумент.УникальныйИдентификатор) = 8994c3f5-d513-4732-a355-48f396294631 записан документ с уникальнымидентификатором = 7123649e-0de9-4330-a21b-6555a6499a26 неопределено То есть ссылка после записи не равна той, которую я устанавливаю до записи. Что я делаю не так?
#1 by Defender aka LINN
Ссылка объекта - это "НовыйДок.Ссылка", а не "НовыйДок.получитьссылкунового"
#2 by MitayВ
НовыйДок.Ссылка - это после записи а до того как новый объект записан у него есть только НовыйДок.получитьссылкунового Но это вроде не относится к вопросу, который я задал в первом посте. почему ТипДокумента.ПолучитьСсылку(КлючУникальности).ПолучитьОбъект не возвращает созданный документ??? Что не так?
#3 by MitayВ
Может конечно я не совсем точно выразился. Суть: Создаю документ, на основании взятого из другой базы уникального Идентификатора. Записываю документ, НО после записи он имеет другой уникальный идентификатор. ТипДокумента.ПолучитьСсылку(КлючУникальности).ПолучитьОбъект возращает "неопределено" вместо только что созданного документа. Что я делаю не так?
#4 by Irbis
параметр в УстановитьСсылкуНового какого типа?
#5 by YauheniL
ТекСсылка = СокрЛП(ТипДокумента.ПолучитьСсылку(КлючУникальности))); А потом на основе этого получить уникальный идентификатор
#6 by MitayВ
ДокументСсылка А причем тут сокрЛП? Это строка получится, а не документСсылка, а у строки нет метода УникальныйИдентификатор
#7 by Defender aka LINN
"конструкция ТипДокумента.ПолучитьСсылку(КлючУникальности).ПолучитьОбъект возращает "неопределено" вместо только что созданного документа." - а, простите, она должна что-то другое возвращать?
#8 by MitayВ
после записи документа ТекДокумент.ПолучитьСсылку(НовыйДок.ссылка.уникальныйидентификатор).получитьОбъект возвращает ссылку на созданный документ то же самое должна возвращать ТипДокумента.ПолучитьСсылку(КлючУникальности).ПолучитьОбъект но не возвращает, тк не правильно работает УстановитьСсылкуНового(ТекСсылка) Либо я что-то упустил и не могу понять что именно.
#9 by MitayВ
ошибся ТекДокумент надо заменить на ТипДокумента
#10 by MitayВ
"УстановитьСсылкуНового(ТекСсылка)" точнее эта конструкция работает, но только до момента записи документа.
#11 by Irbis
А когда она должна работать? После записи ссылку изменить уже нельзя.
#12 by MitayВ
Повторюсь: До записи документа НовыйДок.получитьссылкунового          = <Объект не найден> (37:a35548f3962946314732d5138994c3f5) что совпадает с идентификатором 8994c3f5-d513-4732-a355-48f396294631 на основании которого сформирована ссылка. ПОСЛЕ ЗАПИСИ документа его идентификатор отличается от того, на основании которого он создан. Почему? То есть при повторном запуске кода на основании того же идентификатора создается еще один аналогичный документ, а это неправильно.
#13 by MitayВ
Если на основании идентификатора документ уже создавался то ТипДокумента.ПолучитьСсылку(КлючУникальности).ПолучитьОбъект должно вернуть ссылку на созданный документ либо вернуть неопределено, если документ не создавался. У меня же всегда возвращается неопределено и код пытается создать документ заново.
#14 by stangen
а вот так работает ТипДокумента=Документы.ЧекККМ; ПодклДокумент.УникальныйИдентификатор) = adb27526-94f6-472e-b203-69fac208994b записан документ с уникальнымидентификатором = adb27526-94f6-472e-b203-69fac208994b Чек ККМ  от 07.11.2010 11:09:51
#15 by MitayВ
да, но тут уникальный идентификатор генерируется случайно, а мне надо из другой базы скопировать. При переносе документов из другой базы нужно сохранить ссылки документов друг на друга, для этого я, перед записью, делаю УстановитьСсылкуНового на основании идентификатора из другой базы. Но после записи она почему то меняется и теряется ссылочная целостность переносимых документов.
#16 by MitayВ
УРА! спасибо stangen! после этого ссылка перестала переопределяться при записи.
#17 by Aleksey
А ведь гений по этому поводу предупреждал на дубовом форуме. И даже собирался в 1С писать
#18 by Immortal
Гений о чем предупреждал? о том, что нельзя два раза ссылку нового устанавливать..
#19 by Immortal
в принципе, в духе "вынули что то из носу и размазали"
#20 by MitayВ
Так тут вроде только один раз устанавливается. получается что если нет ОбменДанными.Загрузка=Истина тогда при записи ссылка генерируется заново, игнорируя УстановитьСсылкуНового(ТекСсылка)
#21 by Immortal
получение ссылки нового после записи объекта - ошибка в коде, не более того. после того как объект записан - он априори не новый.
#22 by Aleksey
Нет что в типовой такая засада. Они не проверяют новый это объект или нет, а в любом случае устанавливают ему новую ссылку. В результате имеем .
#23 by Aleksey
Попробуй отладчиком пробежаться. Просто 1С-ники в типовой переопределяют ссылку
#24 by Immortal
а..это другой вопрос
#25 by MitayВ
вообще то код сверху и там написано ДО ЗАПИСИ документа НовыйДок.получитьссылкунового не равно тому что ПОСЛЕ ЗАПИСИ возвращает НовыйДок.ссылка.уникальныйидентификатор (с учетом перестановки при отображении) конфа самописная. Поиск строки "Уникальныйидентификатор" по всей конфе выдал процедуру фиксации изменений документов, в которой заново устанавливалась СсылкаНового. :-( Проблема решена Всем спасибо за подсказки и наводки!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С