Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает метод УстановитьСсылкуНового()
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
DrLivsi
Всем привет! Помогите разобратся. В событии ПередЗаписью() документа хочу получить ссылку нового.
Вот код:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
                                            
    Если ЭтоНовый() И Ссылка.Пустая() Тогда
         ЭтотОбъект.УстановитьСсылкуНового(Документы.ЗаказНаряд.ПолучитьСсылку(Новый УникальныйИдентификатор));
    КонецЕсли;
        
    НоваяСсылка = ЭтотОбъект.ПолучитьСсылкуНового();
КонецПроцедуры


В отладчике: ЭтотОбъект.УстановитьСсылкуНового(Документы.ЗаказНаряд.ПолучитьСсылку(Новый УникальныйИдентификатор)) =
Обращение к процедуре объекта как к функции (УстановитьСсылкуНового)
НоваяСсылка = <Объект не найден> (9262:8d3868f38649633148117d6412a3c77b)
В чем ошибка?
Vofka
А если это сделать в ПриЗаписи? И зачем это вообще делается?
DrLivsi
Цитата(Vofka @ 19.07.13, 13:13) необходимо зарегистрироваться для просмотра ссылки
А если это сделать в ПриЗаписи? И зачем это вообще делается?


Перед записью документа, нужно получить его номер, для формирования реквизита документа, пример:
НомерДокумента +"/"+Строка

Если это делать ПриЗаписи (когда в базе уже записан номер), то после строки
МойРеквизит = НомерДокумента +"/"+Строка;
возникает модифицированность и документ приходится записывать заново для сохранения этого реквизита.
Vofka
Что такое
Строка

?
alex040269
Цитата(DrLivsi @ 19.07.13, 13:09) необходимо зарегистрироваться для просмотра ссылки
НоваяСсылка = <Объект не найден> (9262:8d3868f38649633148117d6412a3c77b)


по моему это не ошибка. объект найдется после записи.
DrLivsi
Цитата(alex040269 @ 19.07.13, 14:55) необходимо зарегистрироваться для просмотра ссылки
по моему это не ошибка. объект найдется после записи.


Так мне нужно до записи получить ссылку.

Цитата(Vofka @ 19.07.13, 14:21) необходимо зарегистрироваться для просмотра ссылки
Что такое
Строка

?


Строка, которую будет добавлять пользователь вручную, тип=строка.
pablo
так это и есть ссылка
Цитата
(9262:8d3868f38649633148117d6412a3c77b)
logist
А если "УстановитьНовыйНомер()", а потом формировать нужный реквизит? Хотя еще возникает вопрос - а для каких целей нужен этот реквизит?
Vofka
Я один не пойму как логически связан код

Если ЭтоНовый() И Ссылка.Пустая() Тогда
         ЭтотОбъект.УстановитьСсылкуНового(Документы.ЗаказНаряд.ПолучитьСсылку(Новый УникальныйИдентификатор));
    КонецЕсли;
        
    НоваяСсылка = ЭтотОбъект.ПолучитьСсылкуНового();


и

МойРеквизит = НомерДокумента +"/"+Строка;


?

И вообще зачем хранить в отдельном реквизите Номер + Строка, если можно хранить только Строка и в любой момент можно получить данные в виде Номер + Строка.
alex040269
Цитата(DrLivsi @ 19.07.13, 15:02) необходимо зарегистрироваться для просмотра ссылки
Так мне нужно до записи получить ссылку.

так вы ее уже получили. работайте с ней, только не забудьте записать.
DrLivsi
Цитата(logist @ 19.07.13, 15:05) необходимо зарегистрироваться для просмотра ссылки
А если "УстановитьНовыйНомер()", а потом формировать нужный реквизит? Хотя еще возникает вопрос - а для каких целей нужен этот реквизит?


Точно, помогло! Большое спасибо!
Это реквизит "НомерКвитанции", который формируется на основании номера документа. В дальнейшем, пользователь будет отбирать документы по
этому номеру стандартным отбором в журнале.
pablo
В управляемой форме такой реквизит был бы не нужен... icon_trud7.gif
Vofka
Цитата(pablo @ 19.07.13, 15:23) необходимо зарегистрироваться для просмотра ссылки
В управляемой форме такой реквизит был бы не нужен...

Забацайте нам на 8.1 управляемую форму smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.