|
УФ измененный программно элемент попадает в ТЧ в старом виде | ☑ | ||
---|---|---|---|---|
0
SerF_2011
13.07.16
✎
10:59
|
Привет всем. Помогите разобраться. Загружаю список товаров из файла excel в табличную часть документа. Документ создаю программно, форму не открываю. Во время загрузки для некоторых существующих товаров обновляю наименование, потом добавляю программно строку в ТЧ.
Так вот после записи документа открываю его, а там все товары, у которых наименование перезаписано, отображаются со старым наименованием. Открываю-закрываю форму - не помогает. В справочнике товары если открыть, то наименование уже новое. Подскажите куда копать? |
|||
1
Timon1405
13.07.16
✎
11:02
|
может быть в форму выводится другой реквизит(полное напименование/наименование для печати итд)
|
|||
2
SerF_2011
13.07.16
✎
11:04
|
(1) там просто колонка Номенклатура табличной части, в ней ссылка, вот представление этой ссылки в старом виде остается почему то.
А так я меняю и Наименование и НаименованиеПолное у товара. |
|||
3
SerF_2011
14.07.16
✎
08:27
|
Так и не удалось победить, может быть еще кто-то подскажет, код такой:
ТекТовар = НайденныеСтроки[0].Товар; Если СокрЛП(ТекТовар.Наименование) <> СокрЛП(СтрокаТЧ.Наименование) Тогда ТоварОбъект = ТекТовар.ПолучитьОбъект(); ТоварОбъект.Наименование = СокрЛП(СтрокаТЧ.Наименование); ТоварОбъект.НаименованиеПолное = СокрЛП(СтрокаТЧ.Наименование); ТоварОбъект.Записать(); ТекТовар = ТоварОбъект.Ссылка; КонецЕсли; СтрТовар = Акт.Товары.Добавить(); СтрТовар.Номенклатура = ТекТовар; |
|||
4
SerF_2011
14.07.16
✎
09:10
|
Видимо такую банальность подсказывать это моветон :)
Помогло вот что - после процедуры загрузки, которая выполняется на сервере, вернулся в процедуру на клиенте и добавил там ОповеститьОбИзменении(Тип("СправочникСсылка.Номенклатура")); |
|||
5
SerF_2011
14.07.16
✎
09:16
|
Это тем более странно, что ни одна форма не открыта в момент загрузки (что обновлять то?), открыта только форма внешней обработки. Однако же помогло.
|
|||
6
SerF_2011
14.07.16
✎
09:17
|
Остается только КЭШ. Ну и хорошо, сам с собой поговорил, спасибо мне.
|
|||
7
Fedor-1971
14.07.16
✎
09:25
|
(6) Если СокрЛП(ТекТовар.Наименование) <> СокрЛП(СтрокаТЧ.Наименование) Тогда - сравнение есть, а запись в СтрокаТЧ.Наименование
Если помогло (4) значит используешь ДС с установленной основной таблицей, вот и смотри когда и как нужно обновлять твой ДС. |
|||
8
Fedor-1971
14.07.16
✎
09:31
|
7+ СтрокаТЧ.Наименование - это реквизит ТЧ документа или реквизит ТЧ формы?
Если первое, ты наименование записал в документ, так и расскажи ему когда нужно изменить данные. Тогда не понятно как тебе помогло (4) и ДС должен обновляться при открытии. Если второе - должно обновляться при открытии/записи. |
|||
9
SerF_2011
14.07.16
✎
10:14
|
(8) СтрокаТЧ.Наименование это наименование из файла Excel. А записываю я уже измененный товар в табличную часть Товары документа Реализация товаров и услуг. ДС никаких нет в моей обработке, программно меняю наименование товара, также создаю документ и записываю его. Только потом если в этот док зайти, то там по прежнему в ТЧ старое представление ссылки на товар.
|
|||
10
Fedor-1971
14.07.16
✎
11:09
|
(9) как-то путано:
1. "Изменённый товар" - это как? т.е. находишь запись в справочнике Номенклатура, редактируешь её и записываешь. Потом заполняешь ссылку в ТЧ? 2. Проверь в документ записываешь наименование или ссылку? Представление ссылки системное или сам своё сделал? |
|||
11
SerF_2011
14.07.16
✎
11:14
|
(10) да все просто как никогда, я же код привел выше
получаю объект номенклатуры, меняю название, записываю ТоварОбъект.Записать(); потом этот записанный элемент беру и в табличную часть его, там есть реквизит Номенклатура: СтрТовар = Акт.Товары.Добавить(); СтрТовар.Номенклатура = ТекТовар; |
|||
12
SerF_2011
14.07.16
✎
11:15
|
(10)
1. Да |
|||
13
Fedor-1971
14.07.16
✎
12:52
|
(11) СтрТовар.Номенклатура тип какой? Строка или ссылка? ТекТовар - по умолчанию, представление в виде наименования
|
|||
14
Fedor-1971
14.07.16
✎
12:53
|
13+ Проведи эксперимент: СтрТовар.Номенклатура = ТекТовар, замени на СтрТовар.Номенклатура = "1111"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |