Связи между полями

Добрый день, можете подсказать. Существует таблица скажем с названием товара и его стоимостью. В карточке добавлены 2 поля LookupDataControl с названием и FloatDataControl для его стоимости. Как сделать так чтобы, когда мы выбираем товар из лукапа в флоат заносилось его значение. Ясно что нужно ловить событие OnDatasetDataChange датасета, Но вот как взять значение цены к названию не понятно. Спасибо.

Нравится

7 комментариев

как-то так

Dataset('Price') = GetFieldValueFromDisabledField(DataField.LookupDataset, 'Price')

где DataField- поле справочника

или даже лучше вот так

GetFieldValueFromLookupDataset(DataField.LookupDataset, DataField.Value, 'Price')

Здравствуйте, Илья!

в данном случае исчерпывающий ответ предоставил Дмитрий. В некоторых случаях можно реализовать это также на уровне подзапроса в sq

Спасибо, разобрался.

А как из скрипта dataseta добраться до фрейма окна редактора? И изменить один из его атрибутов?

Я думаю, что никак (хотя если я ошибаюсь, поправьте меня).
Это нужно делать из скрипта окна редактирования (в нем же можно тоже использовать событие OnDatasetDataChange).
А чтобы добраться до нужного вам компонента окна используйте

Self.ComponentsByName('Имя фрейма')

Спасибо попробуем.

Илья, напрямую нельзя, но к датасету можно обращаться из скрипта окна.

В качестве решения могу предложить записывать ссылку на объект окна в атрибуты датасета, и если указанный атрибут не пуст, выполнить собственный код.

Показать все комментарии