Имя: Пароль:
1C
1С v8
доп.поле со свойством реквизита табличной части
0 1c_July
 
28.07.16
09:18
Вопрос по управляемым формам. Платформа 8.2.19.90

Есть некий справочник, в нем реквизит Количество.
Есть документ, в нем в табличной части 2 реквизита:
1) Ссылка на элемент справочника
2) Количество - число, подставляется из 1
Добавлено еще одно поле в таблицу формы (просто выведено для удобства, чтобы при изменении количества было видно текущее еще не измененное, сохранять его в ТЧ документа не требуется)
: КоличествоТек - путь к данным Объект.ИмяТЧ.Спр.Количество

Первоначально оно отображается автоматически правильно.
Если интерактивно поменять в справочнике количество - тоже автоматически изменяется в открытом документе.
Но если программно изменить количество и записать объект справочника - не меняется в документе.
Причем даже если его закрыть, открыть заново, или создать новый документ и добавить строку в ТЧ со ссылкой на этот перезаписанный элемент справочника - выводится автоматически старое количество (как будто оно как заполнилось при первом создании формы документа, так и не меняется до следующего перезапуска 1С). При этом код, прописанный на изменение значения первого поля (ссылки) в таблице - вполне себе видит правильное текущее количество в справочнике и подставляет его во второе поле.
Перечитать данные в форме - не помогает.
Не пойму, как заставить обновиться данные объекта как это происходит при интерактивном его изменении?
Или может быть такой "изврат" через тройную точку в таблицах вообще недопустимо использовать?
1 ksv87
 
28.07.16
09:25
а такая штука не помогает?

УправляемаяФорма.ОбновитьОтображениеДанных (ManagedForm.RefreshDataRepresentation)
УправляемаяФорма (ManagedForm)
ОбновитьОтображениеДанных (RefreshDataRepresentation)
Синтаксис:

ОбновитьОтображениеДанных(<ОбновлятьЭлементы>)
Параметры:

<ОбновлятьЭлементы> (необязательный)

Тип: ГруппаФормы; ТаблицаФормы; ПолеФормы; Массив.
Если параметр задан, то установка значений (и обновление) будет выполняться только для тех элементов, которые заданы в параметре. Если в качестве значения передан пустой массив, то ни для каких элементов формы установка значений выполнена не будет.
После вызова метода признак необходимости установки значений и обновления для элементов формы сбрасывается: если после вызова метода никакие данные формы не меняются, то ни для никаких элементов, кроме указанных, текст обновлен не будет.
Если параметр имеет значение типа Массив, то элементами массива могут быть только значения типа ГруппаФормы, ТаблицаФормы, ПолеФормы.
Если массив содержит значение другого типа, то будет выдано исключение о неверном типе параметра.
Вызов метода ОбновитьОтображениеДанных с параметром <ОбновлятьЭлементы> имеет смысл только внутри обработчика ВнешнееСобытие, обработчиков ожидания формы и обработчика ОбработкаОповещения.
В обработчиках других событий вызов этого метода с параметром аналогичен вызову без параметра (при необходимости данные будут установлены всем элементам управления).
Описание:

В принудительном порядке обновляет содержание элементов управления.
Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

В веб-клиенте обновление элементов управления происходит не сразу, а после окончания выполнения кода на встроенном языке.
--------------------------------------------------------------------------------

     Методическая информация
2 1c_July
 
28.07.16
09:33
Нет, пробовала добавлять и это, и Обновить() для таблицы

Прочитав вот это:
http://world1c.ru/index.php/dopolnitelnaya-vychislyaemaya-kolonka-v-tablichnoj-chasti/
переделала на добавление реквизита форме (в таб.части Объекта) и его заполнение по разным событиям.
Но там в комментах написали, цитирую:
"Описанные Вами вариант возможно использовать без добавления дополнительных процедур, просто сделав “Откроем управляемую форму документа, добавим новую колонку “ИНН” реквизита “Контрагенты” и перенесём её на закладку “Элементы” (для отображения в форме).”. По крайней мере, на платформе, начиная с 8.2.17"
Так и не поняла, как это сделать, где в этом случае указать, что значение колонки автоматом брать из свойства реквизита. Без процедур она просто всегда пустая.
3 olegves
 
28.07.16
09:40
(2) без процедур не взлетит - заполняй и меняй в процедурах свои колонки
4 1c_July
 
28.07.16
10:05
(3) да так и сделала, но о каком же варианте без процедур там писали?

да и у меня в начале (с добавленным элементом таблицы, указывающим на свойство реквизита таб.части, без добавления реквизита формы) - работало частично без процедур. Еще бы обновлялось всегда..
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn