Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 окт 2025, 06:56

Обновить данные на форме элемента

Автор Алексей_1985_06, 14 окт 2025, 20:27

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

Алексей_1985_06

Всем здравствуйте! Помогите с таким вопросом:
1. Из формы элемента справочника (по кнопке) открываю запись РС для редактирования/записи
2. При открытии формы элемента справочника в процедуре ПриСозданииНаСервере, запросом получаю данные из РС и вывожу их на форму.
3. Задача: Мне необходимо после закрытия формы записи РС (если модифицированность = истина), сразу обновить данные на форме элемента справочника, чтобы пользователь сразу увидел измененные данные, т.е сымитировать вызов процедуры ПриСозданииНаСервере.
Подскажите как правильно реализовать такой функционал?

bsn-chita

Пример на котиках. Есть справочник "Номенклатура" и регистр сведений "ЦеныНоменклатуры". Плодить везде однотипный код по получению цены не нужно, его и менять придется везде в случае чего. Нужно куда то пристроить метод получения цены при чем так чтобы другой разработчик тоже мог его найти. Логично код расположить в модуле менеджера регистра сведений или справочника. Параметр передаваемый в метод будет Номенклатура, а на выходе Цена. Полная реализация например будет в регистре сведений где делаем запрос в который передаем параметр и получим цену, в справочнике делаем метод который воспользуется методом из регистра сведений. На форме делаем процедуру где всякие данные формы будем присваивать(может не только данные какого то регистра сведений нужно показать). Вызываем эту процедуру из события при создании на сервере и там где нужно еще.

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

ММ Справочника
Функция ПолучитьЦенуНоменклатуры(Номенклатура) Экспорт
     Возврат РегистрыСведений.ЦеныНоменклатуры.ПолучитьЦенуНоменклатуры(Номенклатура);
КонецФункции

На форме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОбновитьДанныеФормы();
КонецПроцедуры   

&НаСервере
Процедура ОбновитьДанныеФормы()
    //Цена = РегистрыСведений.ЦеныНоменклатуры.ПолучитьЦенуНоменклатуры(Объект.Ссылка);   
    Цена = Справочники.Номенклатура.ПолучитьЦенуНоменклатуры(Объект.Ссылка);   
КонецПроцедуры

Ну и там где нужно еще вызываем ОбновитьДанныеФормы.

Алексей_1985_06


Теги:

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

Рейтинг@Mail.ru

Поиск