Имя: Пароль:
1C
1С v8
Заполнение поля ТЧ из поля справочника: как написать без sql?
0 loonypy
 
30.08.11
12:56
Справочник С, поля: Наименование, Цена.
Документ Д, поля в ТЧ "Вексель": Наименование,Цена.
Д.Вексель.Наименование - тип ссылка на С.Наименование.
После того, как выбираю из С конкретное наименование - в Д.Вексель.Цена должно автоматом записаться соответствующая С.Цена. Как написать на языке 1С?
Процедура ВексельПриИзменении(Элемент)
   ЭлементыФормы.Вексель.ТекущиеДанные.Цена = ??
КонецПроцедуры;
Дальше не знаю.

Вопрос за компанию: чем ТекущиеДанные отличаются от ТекущаяСтрока?
1 Wobland
 
30.08.11
13:00
цена со временем не меняется?
2 kosts
 
30.08.11
13:02
(0) 1C рекомендует использовать ТекущиеДанные, но практически использую ТекущаяСтрока, потому что если колонка скрыта, то в ТекущиеДанные ее нет, что вызывает проблемы...
3 loonypy
 
30.08.11
13:03
нет.
4 kosts
 
30.08.11
13:03
Если С.Наименование - ссылка , то


Процедура ВексельПриИзменении(Элемент)
   ЭлементыФормы.Вексель.ТекущиеДанные.Цена = ЭлементыФормы.Вексель.ТекущиеДанные.Наименование.Цена;
КонецПроцедуры <без ;>
5 kosts
 
30.08.11
13:07
Я бы названия сделал другие
ТЧ - Векселя (колонки: Вексель, Цена)


Процедура ВекселяВексельПриИзменении(Элемент)
   ЭлементыФормы.Векселя.ТекущаяСтрока.Цена = ЭлементыФормы.Векселя.ТекущаяСтрока.Вексель.Цена;
КонецПроцедуры
6 loonypy
 
30.08.11
15:41
>>Если С.Наименование - ссылка , то
Не сработало.
Д.Наименование - тип СправочникСсылка.С
Табличную часть документа переименовал в "Векселя".
В форме добавили вексель: поле Наименование заполнил из справочника С. Что будет после этого будет храниться в Д.Векселя.ТекущиеДанные (либо ТекущаяСтрока)?
Будет заполнено только поле Наименование ссылкой на справочник?
Как получить доступ к С.Цена для выбранного векселя?  

ЭлементыФормы.Векселя.ТекущаяСтрока.Цена = Справочники.С.Цена;

не работает. Выдает ошибку, что неизвестно, что такое ".Цена" у Справочники.С.
7 kosts
 
30.08.11
18:17
Мозг можно сломать с "С", наименование-ссылка.

Назови по человечески, к примеру.
Справочник: Вексель (Реквизит: Цена)

Документ: ПокупкаВекселей
С табличной частью Векселя (Реквизиты: Вексель типом Справочник.Вексель, Цена)

Тогда (5) точно будет работать. (смотри, что бы событие было при изменении ячейки).

ТекущаяСтрока или ТекущиеДанные не хранятся, они нужны для доступа к данным.
8 loonypy
 
13.09.11
13:01
По причинческим технинам забросил задачу.
kosts, да, все работает, спасибо - просто я намудрил с сокращениями документов и справочников.
Переписал по твоему примеру:
[b]Справочник: ЦенныеБумаги[/b]
        Реквизит: Наименование, Номинал
[b]Документ: АктПриходаВекселей[/b]
        Векселя (ТЧ, реквизиты: Вексель, Сумма)
Вексель - тип СправочникСсылка.ЦенныеБумаги.
Задача: пользователь выбрал из справочника вексель - его номинал автоматом проставился в АктПриходаВекселей.Векселя.Сумма.  

Изменение поля "АктПриходаВекселей.Векселя.Вексель":
Процедура ВекселяВексельПриИзменении(Элемент)
   ЭлементыФормы.Векселя.ТекущаяСтрока.Сумма =
   ЭлементыФормы.Векселя.ТекущаяСтрока.Вексель.Номинал;
КонецПроцедуры

По справке ТекущаяСтрока содержит запись табличного поля. Получается, выделенную запись из таблицы АктПриходаВекселей. Номинал - из другой таблицы. Вопрос: ТекущаяСтрока, все таки, содержит только то, что есть в таблице АктПриходаВекселей?
Программист всегда исправляет последнюю ошибку.