@exgod
Трудно быть Богом.

Как изменить данные в табличной части, в зависимости от выбора значения?

Добрый вечер. У меня есть два справочника Валюты, ТоварныеПозиции и периодический регистр сведений КурсыВалют.

В периодическом регистре сведений Измерение->Валюта ссылается на справочник Валюты, в то время как в справочнике ТоварныеПозиции есть реквизит Валюта, который ссылается на справочник Валюта.

В справочнике Валюта банальные перечисления в виде наименований денежных единиц.

Подскажите, пожалуйста, можно ли реализовать (если да, то каким образом) обработчик, который работает следующим образом: в справочнике ТоварныеПозиции я выбираю валюту (USD/RUB/EUR) и при выборе конкретной валюты в соседней ячейке рассчитывается Цена/Сумма исходя из выбранной валюты?

66b793e845b56590888377.png

Я получаю курс необходимой валюты на текущую дату из регистра сведений следующим образом:

Отбор = Новый Структура;
Отбор.Вставить("Валюта", РусРубли);
Курсы = РегистрыСведений.КурсыВалют;
ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор);
Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");


Но эта обработка для всех валют по итогу, а мне нужен обработчик в зависимости от выбора валюты. Так называемое стандартное IF/ELSE. В 1С только начал обучение, поэтому прошу, не закидывайте камнями;)
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
в то время как в справочнике ТоварныеПозиции есть регистр Валюта, который ссылается на справочник Валюта.

1. Вероятно тут имелось в виду, что в справочнике ТоварныеПозиции есть реквизит типа справочник Валюта, на который как было сказано выше ссылается регистр КурсыВалют
2. Справочники и регистры сведений - это два варианта хранения табличных данных в 1С, главное отличие в том, что у справочников есть ссылки для адресации конкретных записей таблицы, а у регистров такой ссылки нет, но зато есть опция получения первых или последних значений по набору измерений. Главное, что эти метаданные полностью независимы и не могут содержать друг друга внутри - это вам не ООП.

Как изменить данные в табличной части, в зависимости от выбора значения?

Пропишите обработчик события ПриИзменении для требуемого элемента управления, в котором будет вся логика изменения соседних ячеек.

Я получаю курс необходимой валюты на текущую дату из регистра сведений следующим образом:
Отбор = Новый Структура;
Отбор.Вставить("Валюта", РусРубли);
...Но эта обработка для всех валют...

Нет, тут написан код отбора курса только для валюты, значение которой в переменной РусРубли (согласно названия там рубли, но хз как на самом деле). Если нужно получить значение курса для валюты, которую указал пользователь, то именно пользовательскую валюту нужно указать в параметре-отборе для среза последних.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы