Имя: Пароль:
1C
1С v8
УФ - получить ссылку
,
0 VladSt
 
14.09.15
09:57
Добрый день
Есть форма документа. В ней есть таблица с динамическим списком других документов. Если нажать на строку в этом списке, то откроется документ из этого списка. Но я, из своих соображений, запрещаю открывать этот док, пишу свой код. И после этого хочу записать в документ значение. Но не могу получить ссылку на этот документ. Его реквизиты есть, а ссылки нет. ((
1 VladSt
 
14.09.15
09:58
&НаКлиенте
Процедура ТТДПередНачаломИзменения(Элемент, Отказ)
    Если Элементы.ТТД.ТекущийЭлемент.Имя = "ТТДНомерЕздки" Тогда
        Отказ = Истина;
        Оповещение = Новый ОписаниеОповещения("ПослеВводаЗначения", ЭтотОбъект);    
        
        ПоказатьВводЗначения(
        Оповещение,
        Элементы.ТТД.ТекущиеДанные.НомерЕздки, // пропускаем начальное значение
        "Введите значение Номер ездки (этапа)",
        "Число"
    );    
        
    КонецЕсли;    
КонецПроцедуры
2 VladSt
 
14.09.15
10:06
Элементы.ТТД.ТекущиеДанные - это структура данных формы, но в них нету ссылки ((
Как ее получить?
3 Mort
 
14.09.15
10:11
Элементы.ТТД.ТекущаяСтрока

Но с точки зрения интерфейса решение просто клиника. Вы что курите? По щелчку в таблице что-то спрашиваем, и записываем значение. Вы где такое видели?
4 Fedor-1971
 
14.09.15
10:12
(2) Если указана Основная таблица в ДС: Элементы.ТТД.ТекущаяСтрока - и есть ссылка.
Если нет Основной таблицы, то добавь в запрос ДС ссылку и используй её.
5 olegves
 
14.09.15
10:26
+(4) и для колонки ссылки установи флаг "Использовать всегда"
6 VladSt
 
14.09.15
10:29
(3) и (4) Спасибо, помогло
(4) Согласен, что сделано немного через одно место. Но давайте я вам расскажу задачу и что вы посоветуете.

Док, который открываем - это путевой лист. Динамический список - это список ТТД отобранных запросом. НомерЕздки = это реквизит в ТТД, пользователи будут его устанавливать при вводе данных путевого листа. Чтобы при вводе НомераЕздки не открывался сам документ ТТД, я придумал такой вариант, еще раз весь код:

&НаКлиенте
Процедура ТТДПередНачаломИзменения(Элемент, Отказ)
    Если Элементы.ТТД.ТекущийЭлемент.Имя = "ТТДНомерЕздки" Тогда
        Отказ = Истина;
        Оповещение = Новый ОписаниеОповещения("ПослеВводаЗначения", ЭтотОбъект);    
        
        ПоказатьВводЗначения(
        Оповещение,
        Элементы.ТТД.ТекущиеДанные.НомерЕздки, // начальное значение
        "Введите значение Номер ездки (этапа)",
        "Число"
    );    
        
    КонецЕсли;    
КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаЗначения(Результат, Параметры) Экспорт    
    Если Не Результат = Неопределено Тогда
        ЗаписатьВТТД(Результат, Элементы.ТТД.ТекущаяСтрока);
    КонецЕсли;    
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаписатьВТТД(Результат, Ссылка)
    Объект_ = Ссылка.ПолучитьОбъект();
    Объект_.НомерЕздки = Результат;
    Объект_.Записать();
КонецПроцедуры
7 VladSt
 
14.09.15
10:41
А как получить ссылку на этот объект (пут.лист), форма которого открыта?
8 VladSt
 
14.09.15
10:43
Все, это я нашел
ЭтотОбъект.Объект.Ссылка