8.х обновление формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Muggsy, 28 май 2009.

  1. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    есть самописная конфигурация, форма, с которой у меня вопрос изображена на рисунке, что понятней было :)
    самое верхнее окно на форме - элементы справочника, с этими элементами связаны документы "этап работы" они выгружаются
    запросом в табличное поле ниже, далее в табличные поля подгружатся данные из текущего выделенного документа.
    когда я открываю документ "этап работы" из этой формы и меняю в нем "цифры" при закрытии документа, надо бы обновить данные
    на текущей форме. пробовала из формы документа вызывать действие кнопки "обновить":
    Код:
    ЭтаФорма.ВладелецФормы.ЭлементыФормы.Обновить.ПолучитьДействие("ОбновитьНажатие");
    
    
    Владельца установила при открытии документа из формы, обновление не получается, как еще можно
    реализовать автоматическое "обновление" моей формы при закрытии документа?

    Вложения:

  2. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Ну есть несколько вариантов.
    1 - при открытии формы 2 из формы 1
    1.1 в качестве параметра передавать таблицу значений формы 1, и индекс строки, которую выбрали. Дабы перед закрытием формы 2, в этой таблице переписать значения без вызова полного заполнения Таблицы Формы 1
    1.2 В форме 2 в качестве параметра(ов) держать то, что меняется.
    После закрытия формы 2, в форме 2 вызывать изменение значения в таблице.
    Пример:
    Код:
    ОбрабоктаКИБ = Обработки.ЗаполнениеГрафиковПлатежей_ЗаемщиковКредитов.Создать();
    ФормаОбработкиКИБ	= ОбрабоктаКИБ.ПолучитьФорму("KiB");
    ФормаОбработкиКИБ.ТаблицаДанных = ГрафикПлатежей;
    ФормаОбработкиКИБ.НомерСтрокиТаблицы = НомерРедактируемойСтрокиГрафика;
    ФормаОбработкиКИБ.ОткрытьМодально();
    Если ФормаОбработкиКИБ.ДанныеЗагруженны Тогда
    //ГрафикПлатежейПоДоговору = ФормаОбработкиКИБ.ГрафикПлатежей; 
    ГрафикПлатежей = ФормаОбработкиКИБ.ТаблицаДанных;
    КонецЕсли;
    
    
    Где ГрафикПлатежей - таблица на вызывающей форме
    ФормаОбработкиКИБ - вызываемая форма некоторой "левой" обработки
    Передали туда Таблицу и номер строки. В ОбработкаКИБ поменяли таблицу (строку).
    По закрытию формы КИБ, открытой модально, при условии что реквизит ДанныеЗагруженны формы КИБ стал истиной - выгружаю данные в вызывавшую форму
  3. TopicStarter Overlay
    Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    мммм задумалась.... думаю.....
    ммм получается мне надо рекдактировать документ в "левой" обработке...
    а что если мне открыть форму документа модально, а потом сразу за "открыть модально" вызвать процедуру "обновить" ? :)
  4. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Ну можно и так. Только что за "обновить"?
    Вам нужно перезаполнить форму, а не тупо перерисовать элементы.
    Если по времени это не много, если не пугает то, что может нарушиться порядок строк - пожалуйста.
    Но ИМХО, правильнее менять/прерисовывать только тот элемент(ы) формы - которые изменились

Поделиться этой страницей