Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 ноя 2022, 15:22

Обработчик события "ПриИзменении"

Автор filomonko, 19 мая 2022, 16:44

0 Пользователей и 1 гость просматривают эту тему.

filomonko

Здравствуйте))  :btbzdb:
Возникла проблема.
Есть документ "БронированиеНомеров". В строке мы выбираем номер, категория этого номера добавляется автоматически. Цена категории добавляется только ПриИзменении категории.
Помогите, пожалуйста, сделать так, чтобы цена категории ставилась не только при изменении категории. А сразу же после того, как в соответствии с определенным номером добавляется его категория, так и ставилась цена этой категории ))))

&НаКлиенте
Процедура ТЧНомерПриИзменении(Элемент)
   Стр=Элементы.ТЧ.ТекущиеДанные;
   Стр.Категория = ПолучитьКатегорию(Стр.Категория, Стр.Номер);
КонецПроцедуры

&НаСервере
Функция ПолучитьКатегорию(Категория, ТекущийНомер)
    Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
            | КатегорияНомера.Номер КАК Номер,
            | КатегорияНомера.Категория КАК Категория
            |ИЗ
            | РегистрСведений.КатегорияНомера КАК КатегорияНомера
            |ГДЕ
            | КатегорияНомера.Номер = &Номер";
         
    Запрос.УстановитьПараметр("Номер", ТекущийНомер);
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
     Возврат ВыборкаДетальныеЗаписи.Категория;     
Иначе
    Возврат 0;
КонецЕсли;     
КонецФункции

&НаКлиенте
Процедура ТЧКатегорияПриИзменении(Элемент)
   Стр=Элементы.ТЧ.ТекущиеДанные;
   Стр.Цена=ПолучитьЦену(Стр.Цена, Стр.Категория);
КонецПроцедуры

&НаСервере
Функция ПолучитьЦену(Цена, ТекущаяКатегория)
    Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
            | ЦенаКатегории.Цена КАК Цена,
            | ЦенаКатегории.Категория КАК Категория
            |ИЗ
            | РегистрСведений.ЦенаКатегории КАК ЦенаКатегории
            |ГДЕ
            | ЦенаКатегории.Категория = &Категория";
         
     Запрос.УстановитьПараметр("Категория", ТекущаяКатегория);
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
     Возврат ВыборкаДетальныеЗаписи.Цена;     
Иначе
    Возврат 0;
КонецЕсли;     
КонецФункции
0_0.png

LexaK

просто добавьте команду получения цены
&НаКлиенте
Процедура ТЧНомерПриИзменении(Элемент)
   Стр=Элементы.ТЧ.ТекущиеДанные;
   Стр.Категория = ПолучитьКатегорию(Стр.Категория, Стр.Номер);
   Стр.Цена = ПолучитьЦену(Стр.Цена, Стр.Категория);
КонецПроцедуры
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск