Имя: Пароль:
1C
 
Значение реквизита справочника в табличной части документа
,
0 Murdoch
 
08.12.14
20:53
8.3

РазделРаботы - это колонка в ТЧ документа, содержит Родителя колонки ВидРаботы.

оба значения суть - элементы спр. Номенклатура

в 8.1 работал БЫ примерно такой код:

&НаКлиенте
Процедура РаботыВидРаботыПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    Если Элемент <> Неопределено Тогда
        ТекДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;
        ТекДанные.РазделРаботы = ТекДанные.ВидРаботы.Родитель;
    КонецЕсли;
КонецПроцедуры


НО!

в 8.3 не работает, т.к. нельзя обратиться к реквизитам колонки подобным образом.

а как обращаться ?

какие сейчас нужны финты ушами для элементарных вещей ?

Заранее спасибо за подробности.
1 Murdoch
 
08.12.14
20:55
Вот можно написать:
ТекДанные.РазделРаботы = ТекДанные.ВидРаботы;

но НЕЛЬЗЯ:
ТекДанные.РазделРаботы = ТекДанные.ВидРаботы.Родитель;
2 фобка
 
08.12.14
20:56
Не..
Текданные = элементыформы.твояТЧ.текущиеданные;
3 фобка
 
08.12.14
20:56
либо элемент.текущиеданные
4 фобка
 
08.12.14
20:57
колонки должны быть добавлены на форме. Если колонка скрыта - в реквизитах формы установить галку "использовать всегда"
5 Murdoch
 
08.12.14
20:58
ТекДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;

вот эту строку какой заменить ?
6 фобка
 
08.12.14
20:58
Я всё сказал, за сим всё
7 Murdoch
 
08.12.14
20:58
я нахожусь в строке документа, при ее изменении.
8 Murdoch
 
08.12.14
20:59
колонки добавлены, ничего не скрыто.
9 Murdoch
 
08.12.14
21:02
{Документ.СметаНаОбъект.Форма.ФормаДокумента.Форма(6,15)}: Переменная не определена (ЭлементыФормы)
        ТекДанные = <<?>>ЭлементыФормы.Работы.ТекущиеДанные; (Проверка: Тонкий клиент)
10 Murdoch
 
08.12.14
21:02
(6) твой совет выдает ошибку
11 Murdoch
 
08.12.14
21:09
советы (6) бесполезны

ТекДанные = ЭтотОбъект.Элементы.Работы.ТекущиеДанные;

ТекДанные.РазделРаботы = ТекДанные.ВидРаботы.Родитель;

доступа к реквизитам нет, хотя в отладчике ТекДанные.ВидРаботы имеет тип СправочникСсылка.

как достать реквизит такого справочника ?
12 Murdoch
 
08.12.14
21:12
РЕШЕНО!!!

Ответ для будущих поколений:

реквизиты можно достать только с сервера

вот код:

// Расчет суммы по строке
&НаКлиенте
Процедура РассчитатьСумму(СтрокаТабличнойЧасти)
      СтрокаТабличнойЧасти.сумма = СтрокаТабличнойЧасти.цена * СтрокаТабличнойЧасти.количество
КонецПроцедуры

// Подстановка цены
&НаКлиенте
Процедура ЗаполнитьЦену(СтрокаТабличнойЧасти)
      ЦенаТовара = ПолучитьЦенуТовара(СтрокаТабличнойЧасти.товар);
      СтрокаТабличнойЧасти.цена = ЦенаТовара;
      РассчитатьСумму(Элементы.товары.ТекущиеДанные);
КонецПроцедуры

&НаСервере
Функция ПолучитьЦенуТовара(товар)
      Возврат товар.цена;      
КонецФункции

&НаКлиенте
Процедура товарыколичествоПриИзменении(Элемент)
      РассчитатьСумму(Элементы.товары.ТекущиеДанные);
КонецПроцедуры

&НаКлиенте
Процедура товарыценаПриИзменении(Элемент)
      РассчитатьСумму(Элементы.товары.ТекущиеДанные);
КонецПроцедуры

&НаКлиенте
Процедура товарытоварПриИзменении(Элемент)
      ЗаполнитьЦену(Элементы.товары.ТекущиеДанные);
КонецПроцедуры
13 Murdoch
 
08.12.14
21:19
Для простоты, мой верхний код дополняется вызовом сервера.


&НаКлиенте
Процедура РаботыВидРаботыПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    Если Элемент <> Неопределено Тогда
        ТекДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;
        ТекДанные.РазделРаботы = ПолучитьРазделРабот(ТекДанные.ВидРаботы);
    КонецЕсли;
КонецПроцедуры

&НаСервере
Функция ПолучитьРазделРабот(Элемент)
    Возврат Элемент.Родитель;    
КонецФункции