Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Обновление значений доп. реквизитов на форме

Обновление значений доп. реквизитов на форме
Я
   Chameleon1980
 
12.04.18 - 21:06
Приветствую всех.

Чет не пойму.

У документа РТУ есть доп. реквизит.
У партнера есть доп. реквизит.

При изменении контрагента пишу типа



СтруктураДляОтбора=Новый Структура;

СтруктураДляОтбора.Вставить("Свойство", ПВХНеВключатьРеализациюВКнигуПродаж);

НайденныеСтроки=Объект.ДополнительныеРеквизиты.НайтиСтроки(СтруктураДляОтбора);

Если НайденныеСтроки.Количество()=0 И ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера Тогда
    
    НоваяСтрока=Объект.ДополнительныеРеквизиты.Добавить();
    
    НоваяСтрока.Свойство=ПВХНеВключатьРеализациюВКнигуПродаж;
    НоваяСтрока.Значение=Истина;
    
ИначеЕсли НайденныеСтроки.Количество()<>0 И (НайденныеСтроки[0].Значение<>ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера) Тогда
    
    НайденныеСтроки[0].Значение=ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера;
    
ИначеЕсли НайденныеСтроки.Количество()<>0 И Не ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера Тогда
    
    //Объект.ДополнительныеРеквизиты.Удалить(НайденныеСтроки[0]);

    // что-то не удаляется, тогда просто установим значение в ложь

    НайденныеСтроки[0].Значение=Ложь;
    
КонецЕсли;    


при выходе из этой серверной процедуры делал
и так:
    ЭтаФорма.ОбновитьОтображениеДанных(Элементы.ГруппаДополнительныеРеквизиты);

и так:
ЭтаФорма.ОбновитьОтображениеДанных();

но блин значение реквизита на форме не обновляется.

Где (чем) обновлять значения доп. реквизитов на форме) ?

Спасибо.
 
 
   Cyberhawk
 
1 - 12.04.18 - 21:07
Оповещением формы (посмотри в ней обработку оповещения)
   Chameleon1980
 
2 - 12.04.18 - 21:08
если суть кода не ясна - готов объяснить подробнее
но дело даже не в нем.
вопрос в обновлении

т.е. я поменял ТЧ доп.реквизиты программно при изменении партнера. ТЧ точно поменялась как нужно, а на форме то обновится, то нет. Не нашел закономерности
   Chameleon1980
 
3 - 12.04.18 - 21:12
(1) давай попробуем Оповестить() без параметров.
Если я правильно понял и выбрал правильный метод.
да я чет думал и это "ОбновитьОтображениеДанных" подойдет
там и группу конкретную можно указать (в которой лежат доп. реквизиты на форме)
   Cyberhawk
 
4 - 12.04.18 - 21:13
Ну тупи. Элементы формы строятся динамически. Обновить их содержимое можешь конечно распарсив структуру элементов и данных, но делать так безсмысленно - используй механику БСП
   Cyberhawk
 
5 - 12.04.18 - 21:13
Оповестить он без параметров собрался... не в коня корм видимо
   Chameleon1980
 
6 - 12.04.18 - 21:22
(4) хорошо. Смотри.

новый документ, партнер пустой:
http://prntscr.com/j4f9un

доп реквизит пустой:
http://prntscr.com/j4fa98

меняю партнера, при установке которого (по условиям) должна добавиться строка в ТЧ доп реквизиты (т.е. установиться доп. реквизит документа):

http://prntscr.com/j4fb7p

реквизит документа:
http://prntscr.com/j4fbeh

установлен.

Но блин - срабатывает оно как-то через раз.

пошел копать бсп в эту сторону (эту подсистему)
   Chameleon1980
 
7 - 12.04.18 - 21:25
(5) я уже и это давал им:

http://prntscr.com/j4fcek

судя по всему - доп. реквизиты в этой группе собираются рождаться:

http://prntscr.com/j4fcz9

не разбирал сильно БСП - так пойду :) посмотрим
   Chameleon1980
 
8 - 12.04.18 - 21:41
ну вот оно собако (если кому интересно):

УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтаФорма, Объект);
   Chameleon1980
 
9 - 12.04.18 - 21:42
Спасибо за внимание :)
   Chameleon1980
 
10 - 12.04.18 - 21:43
(4) спасибо. Я то думал и так нарисуется. Пля - туплю когда или только проснулся или когда уже спать пора.
 
 Рекламное место пустует
   Cyberhawk
 
11 - 12.04.18 - 21:45
(6) "меняю партнера, при установке которого (по условиям) должна добавиться строка в ТЧ доп реквизиты (т.е. установиться доп. реквизит документа)" // Тоже пади вручную это делаешь, а не механикой БСП? Тогда тебе придется искать строку и заменять, а не всегда тупо добавлять. Надеюсь ты это учел в коде? )
   Chameleon1980
 
12 - 12.04.18 - 22:04
(11) ну а код не смотрел?

вот кусок жеж:
ИначеЕсли НайденныеСтроки.Количество()<>0 И (НайденныеСтроки[0].Значение<>ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера) Тогда
    
    НайденныеСтроки[0].Значение=ЗначениеРеквизитаНеВключатьВКнигуПродажПартнера;
   Chameleon1980
 
13 - 12.04.18 - 22:04
замена даже с проверкой на несоответствие старого и нового
   Cyberhawk
 
14 - 12.04.18 - 22:15
В твоем коде не обрабатывается ситуация, когда найденных строк больше одной )
   Chameleon1980
 
15 - 13.04.18 - 06:58
(14) а нафига.
БСП дасть создать значение реквизита в допах более одного?
Ну и я не дам.

Зачем проверка ента?
   Chameleon1980
 
16 - 13.04.18 - 06:58
+(15) тип - булево.
   Chameleon1980
 
17 - 13.04.18 - 07:00
+отбор строго по ПВХ (свойство):

СтруктураДляОтбора=Новый Структура;

СтруктураДляОтбора.Вставить("Свойство", ПВХНеВключатьРеализациюВКнигуПродаж);

НайденныеСтроки=Объект.ДополнительныеРеквизиты.НайтиСтроки(СтруктураДляОтбора);
   Chameleon1980
 
18 - 13.04.18 - 07:01
думал сначала тоже про не одну строку, но ИМХО - не нужно оно тут

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует