УФ как добиться обновления без Форма.Прочитать()
Привет всем. Столкнулся с тем что не могу решить вроде бы очень простую задачу:
- Типовая УНФ, документ заказ, ПриСозданииНаСервере определяется условное формление в том числе колонки "Характеритика" таблицы Запасы.
- Из подключенной внешней обработки добавляю строки в ТЧ запасы (Номенлатура,Характеристика)
- В добавленных строках колонка Характеритика заполнена как "не используются"
- Если нажать "Записать", то форма обновляется, характериситки укахзываются. НО! проблема в том, что мне полче загрузки записывать не нужно, но при этом важно правильно отобразить характеристики.
Т.е. почему и как это все происходит полностью понятно:
- Условное оформление определено при открытии формы
- Строки добавили, но форму ведь не обновили, вот и отображаются характеристики как "не используются"
если же сделать Форма.Прочитать() то загруженные стркои есстественно пропадают.
Вот, как быть то в такой ситуации, и форму не записывать, и услвоное формление обновить? Вообще решается эта задача?
- Типовая УНФ, документ заказ, ПриСозданииНаСервере определяется условное формление в том числе колонки "Характеритика" таблицы Запасы.
- Из подключенной внешней обработки добавляю строки в ТЧ запасы (Номенлатура,Характеристика)
- В добавленных строках колонка Характеритика заполнена как "не используются"
- Если нажать "Записать", то форма обновляется, характериситки укахзываются. НО! проблема в том, что мне полче загрузки записывать не нужно, но при этом важно правильно отобразить характеристики.
Т.е. почему и как это все происходит полностью понятно:
- Условное оформление определено при открытии формы
- Строки добавили, но форму ведь не обновили, вот и отображаются характеристики как "не используются"
если же сделать Форма.Прочитать() то загруженные стркои есстественно пропадают.
Вот, как быть то в такой ситуации, и форму не записывать, и услвоное формление обновить? Вообще решается эта задача?
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
в ПриСозданииНаСервере заказа
но обратиться к этому же мотоду я не могу, потому что загружаю я в форме подключенной вншней обработки, в клиентском методе, из которого не могу передать в серверный метод параметр с типом "ФормаКлиентскогоПриложения"
надеюсь понятно написал)
СоответствиеИменТабличныхЧастей.Вставить("Запасы","");
НоменклатураВДокументахСервер.ОбновитьУсловноеОформлениеТабличнойЧастиДляХарактеристик(ЭтаФорма,СоответствиеИменТабличныхЧастей);
но обратиться к этому же мотоду я не могу, потому что загружаю я в форме подключенной вншней обработки, в клиентском методе, из которого не могу передать в серверный метод параметр с типом "ФормаКлиентскогоПриложения"
надеюсь понятно написал)
Метод «ОповеститьОбИзменении()»
Наиболее простым и наиболее частым является использование метода глобального контекста ОповеститьОбИзменении(). В этот метод передается единственный параметр – ссылка на объект (или ключ записи), об изменении которого нужно оповестить формы.
Этот метод уведомит все динамические списки, расположенные в созданных на клиенте формах, об изменении этого объекта, и они обновят свои данные. Но есть особенность: этот метод не обновит те динамические списки, у которых не задана основная таблица.
Преимущество этого способа заключается в том, что нам ничего не нужно знать об открытых формах, не нужно «влезать» внутрь этих форм – платформа все сделает сама.
Наиболее простым и наиболее частым является использование метода глобального контекста ОповеститьОбИзменении(). В этот метод передается единственный параметр – ссылка на объект (или ключ записи), об изменении которого нужно оповестить формы.
Этот метод уведомит все динамические списки, расположенные в созданных на клиенте формах, об изменении этого объекта, и они обновят свои данные. Но есть особенность: этот метод не обновит те динамические списки, у которых не задана основная таблица.
Преимущество этого способа заключается в том, что нам ничего не нужно знать об открытых формах, не нужно «влезать» внутрь этих форм – платформа все сделает сама.
подитожу изыскания:
ДанныеФормыФорма - Форма клиентского приложения
ДанныеФормыФорма.Записать(); - в этом случае форма записывается и обновляется как положено, характеристики отображаются верно
А вот без записи, ни один из методов ниже не работает
ОбновитьИнтерфейс()
ОбновитьОтображениеДанных(ДанныеФормыФорма.Элементы.Запасы);
ОбновитьОтображениеДанных(ДанныеФормыФорма.Элементы.ЗапасыХарактеристика);
ОповеститьОбИзменении(Тип("ДокументСсылка.ЗаказПокупателя"))
что еще можно попробовать?
ДанныеФормыФорма - Форма клиентского приложения
ДанныеФормыФорма.Записать(); - в этом случае форма записывается и обновляется как положено, характеристики отображаются верно
А вот без записи, ни один из методов ниже не работает
ОбновитьИнтерфейс()
ОбновитьОтображениеДанных(ДанныеФормыФорма.Элементы.Запасы);
ОбновитьОтображениеДанных(ДанныеФормыФорма.Элементы.ЗапасыХарактеристика);
ОповеститьОбИзменении(Тип("ДокументСсылка.ЗаказПокупателя"))
что еще можно попробовать?
(10) Создать в форме обработки серверный метод,
вызвать в нем обновление УО для владельца формы
вызвать в нем обновление УО для владельца формы
...
СоответствиеИменТабличныхЧастей.Вставить("Запасы","");
НоменклатураВДокументахСервер.ОбновитьУсловноеОформлениеТабличнойЧастиДляХарактеристик(ВладелецФормы, СоответствиеИменТабличныхЧастей);
...
(12)Тогда другой вариант.
Создать расширение и в нем добавить в форму владельца, то есть в форму документа Заказ, экспортную клиентскую функцию, в которой уже вызывать серверную функцию с обновлением УО.
В форме обработки вызывать эту экспортную клиентскую функцию владельца формы.
Создать расширение и в нем добавить в форму владельца, то есть в форму документа Заказ, экспортную клиентскую функцию, в которой уже вызывать серверную функцию с обновлением УО.
В форме обработки вызывать эту экспортную клиентскую функцию владельца формы.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)