Можно ли как-то получить ссылку ещё не записанного документа?

1. nodalt 9 30.11.12 17:43 Сейчас в теме
В синт. помощнике есть методы:
ПолучитьСсылкуНового()
ПолучитьСсылку()
Новый УникальныйИдентификатор


Но не получилось у меня их склеить так чтобы добиться нужного результата.

Создаю документ:
НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();


Затем мне нужно без записи получить ссылку на этот документ:
Переменная = НовыйДокумент.Ссылка; 

Подскажите пожалуйста как это сделать?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
8. djd.sf 30.11.12 17:52 Сейчас в теме
(1) а смысл какой? почему без записи?
10. nodalt 9 30.11.12 17:58 Сейчас в теме
(8) djd.sf, не могу сейчас привести конкретный пример, в (5) написал по этому поводу.
Давайте остановимся на следующем мотиве: "просто ради общеобразовательных целей" =)
Ну увидел методы, а воспользоваться не получилось - вот и спросил.
Спасибо всем за обсуждение.
12. AlexO 135 30.11.12 18:04 Сейчас в теме
(1) nodalt, (2) andrewks,
1C - это не ЯП ООП.
Здесь ссылка имеет одно единственное значение - по ней идентифицируется объект в базе.
Если нет объекта в базе - нет и ссылки на него.
Все остальное - это не ссылка, а игры с цифрами.
(4) sergey198,
не путайте 1сников, ваша "ПолучитьСсылкуНового" получает пустое место, а не ссылку - по ней потом НИЧЕГО не найдешь, если объект не сохранен в базе.
jobkostya1c_ERP; Manticor; nodalt; +3 2 Ответить
13. andrewks 1368 30.11.12 18:08 Сейчас в теме
(12) AlexO, именно поэтому я специально и писал "ссылка (гуид)", ибо, пока объекта нет в БД, то такая "ссылка" является виртуальной, несуществующей
14. AlexO 135 30.11.12 18:15 Сейчас в теме
(13) andrewks,
да это вообще не ссылка, даже в ковычках, а пустой набор цифр, ничего не отражающий :)
2. andrewks 1368 30.11.12 17:44 Сейчас в теме
Ссылку незаписанного документа никак не получишь. но можно записать документ с определённым сгенерированным гуидом
3. andrewks 1368 30.11.12 17:45 Сейчас в теме
кстати, а зачем ссылка на объект без его записи? всё равно с этой ссылкой ничего не сделаешь, даже если бы платформа и позволила её получить
5. nodalt 9 30.11.12 17:50 Сейчас в теме
(3) andrewks, да сам пока не знаю, нужна ли она мне. Методы увидел, попробовал - не получается. Вот и захотелось узнать. Но бывают такие ситуации, когда программно создаёшь объект, потом показываешь форму объекта пользователю и он уже решает: записывать или нет. А в промежутке между принятием решения нужна ссылка. Может быть это неправильно или не оптимально, но всё же ...
11. djd.sf 30.11.12 17:59 Сейчас в теме
(5) ну, тогда смею предположить что-то типа такого(в качестве шутки;))):

НачатьТранзакцию();

/////// Запись объектов

//////

ТекстВопроса= "Сохранить?";
Ответ = Вопрос((ТекстВопроса), РежимДиалогаВопрос.ДаНет, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
ЗафиксироватьТранзакцию();
ЗЫ, Но что-то мне кажется, что все это извращение. Если это пакетная запись (и скорее всего на стороне сервера) от клиента мало, что зависит. Объекты по-любому надо записать. Потом их можно удалить. Если же речь об одном объекте, то не проще сначала спросить пользователя, потом записать?
4. sergey198 30.11.12 17:47 Сейчас в теме
Если Документ.ЭтоНовый() Тогда
// Получаем возможно уже установленную ранее ссылку нового
СсылкаНаОбъект = Документы.ПолучитьСсылкуНового();
Если ЗначениеНеЗаполнено(СсылкаНаОбъект) Тогда
// Если ссылка нового пустая, то запрашиваем ее у менеджера и устанавливаем
СсылкаНаОбъект = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
Документ.УстановитьСсылкуНового(СсылкаНаОбъект);
КонецЕсли;
Иначе
СсылкаНаОбъект = Документ.Ссылка;
КонецЕсли;
prosto_username; Anchoret; CratosX; LeXXeR; Korolev; DFinteX; ilya4; toxa688; Stepka1206; tigcorp; freeek; stol6; myoker; pim1c; NN2P; user624351_support; Saint13; miralisssa; creatermc; EMelihoff; Dr.ZIG; mikele_bes; ixilimuse; kirlog; shulz; kasper076; nodalt; +27 1 Ответить
6. nodalt 9 30.11.12 17:52 Сейчас в теме
(4) sergey198, ааааа, вон оно как! Спасибо, попробую ...
6. andrewks 1368 30.11.12 17:52 Сейчас в теме
А в промежутке между принятием решения нужна ссылка.

если объект не записан в базу, то в промежутке между принятием решения нужен объект, а не ссылка, ибо оперировать можно только с ним (объектом)
9. andrewks 1368 30.11.12 17:55 Сейчас в теме
или, иными словами, ценность полученной т.н. "новой ссылки" (гуида) практически нулевая, за исключением случаев, когда нам нужно создать новый документ с заданной ссылкой (гуидом), или изменить ссылку существующего документа на другую
Demetry2000; AlexO; +2 Ответить
15. luckily 23.12.16 08:38 Сейчас в теме
Недавно сталкивался с этим. Нужно копать по этой процедуре УстановитьНовыйНомер()
16. пользователь 24.06.17 12:27
Сообщение было скрыто модератором.
...
17. lev6975 08.12.20 10:43 Сейчас в теме
НовыйДок = Документы.<Документ>.СоздатьДокумент();
СсылкаНового = Документы.<Документ>.ПолучитьСсылку();
НовыйДок.УстановитьСсылкуНового(СсылкаНового);

Это работает...
GinGitsune; CratosX; +2 Ответить
18. masterlife3d 05.07.22 16:02 Сейчас в теме
Приведу пример, когда тема очень пригодилась.
При обменах между базами может прилететь в реквизите документа несуществующая ссылка (например, это контрагент). Ситуация ошибочная, требует исправления, но случается.
Документ с битой ссылкой контрагента не проводится, но пытается, потому что ОбработкаЗаполнения() при этом ошибок не выдает, что реквизит "Контрагент" по факту не заполнен.

Как вариант, добавляем проверку реквизита методом СсылкаСуществует() из БСП (или другой по желанию)

И вот теперь для тестирования этой проверки необходимо, чтобы существовал документ с несуществующей ссылкой. Либо ждать, когда он появится, либо сделать самому и протестировать (ясен пень на копии для разработки)
19. Infector 199 25.05.23 10:13 Сейчас в теме
(18)при перекрестной записи ссылок годная штука, в одном объекте генерим и сразу фиксируем ссылку, а второй заполняем по этой ссылке позже. Второй момент - если процесс заведения/изменения элементов стратегически важного справочника (номенклатура или контрагенты частенько попадают в такое) реализуется через бизнес-процесс (опционально документ), который фактические изменения пишет когда все кто есть в процессе согласуют. Для создаваемых элементов удобнее в таком случае ссылки генерировать заранее и тащить в процессе до момент его завершения. По завершении - остается прямая связь процесса создавшего нечто с этим нечто.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)