Можно ли как-то получить ссылку ещё не записанного документа?
В синт. помощнике есть методы:
Но не получилось у меня их склеить так чтобы добиться нужного результата.
Создаю документ:
Затем мне нужно без записи получить ссылку на этот документ:
Подскажите пожалуйста как это сделать?
ПолучитьСсылкуНового()
ПолучитьСсылку()
Новый УникальныйИдентификатор
Но не получилось у меня их склеить так чтобы добиться нужного результата.
Создаю документ:
НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Затем мне нужно без записи получить ссылку на этот документ:
Переменная = НовыйДокумент.Ссылка;
Подскажите пожалуйста как это сделать?
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(8) djd.sf, не могу сейчас привести конкретный пример, в (5) написал по этому поводу.
Давайте остановимся на следующем мотиве: "просто ради общеобразовательных целей" =)
Ну увидел методы, а воспользоваться не получилось - вот и спросил.
Спасибо всем за обсуждение.
Давайте остановимся на следующем мотиве: "просто ради общеобразовательных целей" =)
Ну увидел методы, а воспользоваться не получилось - вот и спросил.
Спасибо всем за обсуждение.
(1) nodalt, (2) andrewks,
1C - это не ЯП ООП.
Здесь ссылка имеет одно единственное значение - по ней идентифицируется объект в базе.
Если нет объекта в базе - нет и ссылки на него.
Все остальное - это не ссылка, а игры с цифрами.
(4) sergey198,
не путайте 1сников, ваша "ПолучитьСсылкуНового" получает пустое место, а не ссылку - по ней потом НИЧЕГО не найдешь, если объект не сохранен в базе.
1C - это не ЯП ООП.
Здесь ссылка имеет одно единственное значение - по ней идентифицируется объект в базе.
Если нет объекта в базе - нет и ссылки на него.
Все остальное - это не ссылка, а игры с цифрами.
(4) sergey198,
не путайте 1сников, ваша "ПолучитьСсылкуНового" получает пустое место, а не ссылку - по ней потом НИЧЕГО не найдешь, если объект не сохранен в базе.
(3) andrewks, да сам пока не знаю, нужна ли она мне. Методы увидел, попробовал - не получается. Вот и захотелось узнать. Но бывают такие ситуации, когда программно создаёшь объект, потом показываешь форму объекта пользователю и он уже решает: записывать или нет. А в промежутке между принятием решения нужна ссылка. Может быть это неправильно или не оптимально, но всё же ...
(5) ну, тогда смею предположить что-то типа такого(в качестве шутки;))):
НачатьТранзакцию();
/////// Запись объектов
//////
ТекстВопроса= "Сохранить?";
Ответ = Вопрос((ТекстВопроса), РежимДиалогаВопрос.ДаНет, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
ЗафиксироватьТранзакцию();
ЗЫ, Но что-то мне кажется, что все это извращение. Если это пакетная запись (и скорее всего на стороне сервера) от клиента мало, что зависит. Объекты по-любому надо записать. Потом их можно удалить. Если же речь об одном объекте, то не проще сначала спросить пользователя, потом записать?
НачатьТранзакцию();
/////// Запись объектов
//////
ТекстВопроса= "Сохранить?";
Ответ = Вопрос((ТекстВопроса), РежимДиалогаВопрос.ДаНет, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
ЗафиксироватьТранзакцию();
ЗЫ, Но что-то мне кажется, что все это извращение. Если это пакетная запись (и скорее всего на стороне сервера) от клиента мало, что зависит. Объекты по-любому надо записать. Потом их можно удалить. Если же речь об одном объекте, то не проще сначала спросить пользователя, потом записать?
Если Документ.ЭтоНовый() Тогда
// Получаем возможно уже установленную ранее ссылку нового
СсылкаНаОбъект = Документы.ПолучитьСсылкуНового();
Если ЗначениеНеЗаполнено(СсылкаНаОбъект) Тогда
// Если ссылка нового пустая, то запрашиваем ее у менеджера и устанавливаем
СсылкаНаОбъект = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
Документ.УстановитьСсылкуНового(СсылкаНаОбъект);
КонецЕсли;
Иначе
СсылкаНаОбъект = Документ.Ссылка;
КонецЕсли;
// Получаем возможно уже установленную ранее ссылку нового
СсылкаНаОбъект = Документы.ПолучитьСсылкуНового();
Если ЗначениеНеЗаполнено(СсылкаНаОбъект) Тогда
// Если ссылка нового пустая, то запрашиваем ее у менеджера и устанавливаем
СсылкаНаОбъект = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
Документ.УстановитьСсылкуНового(СсылкаНаОбъект);
КонецЕсли;
Иначе
СсылкаНаОбъект = Документ.Ссылка;
КонецЕсли;
или, иными словами, ценность полученной т.н. "новой ссылки" (гуида) практически нулевая, за исключением случаев, когда нам нужно создать новый документ с заданной ссылкой (гуидом), или изменить ссылку существующего документа на другую
Вопросы с вознаграждением
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|