Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УФ измененный программно элемент попадает в ТЧ в старом виде

УФ измененный программно элемент попадает в ТЧ в старом виде
Я
   SerF_2011
 
13.07.16 - 10:59
Привет всем. Помогите разобраться. Загружаю список товаров из файла excel в табличную часть документа. Документ создаю программно, форму не открываю. Во время загрузки для некоторых существующих товаров обновляю наименование, потом добавляю программно строку в ТЧ.
Так вот после записи документа открываю его, а там все товары, у которых наименование перезаписано, отображаются со старым наименованием. Открываю-закрываю форму - не помогает. В справочнике товары если открыть, то наименование уже новое.

Подскажите куда копать?
   Timon1405
 
1 - 13.07.16 - 11:02
может быть в форму выводится другой реквизит(полное напименование/наименование для печати итд)
   SerF_2011
 
2 - 13.07.16 - 11:04
(1) там просто колонка Номенклатура табличной части, в ней ссылка, вот представление этой ссылки в старом виде остается почему то.
А так я меняю и Наименование и НаименованиеПолное у товара.
   SerF_2011
 
3 - 14.07.16 - 08:27
Так и не удалось победить, может быть еще кто-то подскажет, код такой:

            ТекТовар = НайденныеСтроки[0].Товар;
            Если СокрЛП(ТекТовар.Наименование) <> СокрЛП(СтрокаТЧ.Наименование) Тогда
                ТоварОбъект = ТекТовар.ПолучитьОбъект();
                ТоварОбъект.Наименование = СокрЛП(СтрокаТЧ.Наименование);
                ТоварОбъект.НаименованиеПолное = СокрЛП(СтрокаТЧ.Наименование);
                ТоварОбъект.Записать();
                ТекТовар = ТоварОбъект.Ссылка;
            КонецЕсли;
            СтрТовар = Акт.Товары.Добавить();
            СтрТовар.Номенклатура = ТекТовар;
   SerF_2011
 
4 - 14.07.16 - 09:10
Видимо такую банальность подсказывать это моветон :)

Помогло вот что - после процедуры загрузки, которая выполняется на сервере, вернулся в процедуру на клиенте и добавил там

    ОповеститьОбИзменении(Тип("СправочникСсылка.Номенклатура"));
   SerF_2011
 
5 - 14.07.16 - 09:16
Это тем более странно, что ни одна форма не открыта в момент загрузки (что обновлять то?), открыта только форма внешней обработки. Однако же помогло.
   SerF_2011
 
6 - 14.07.16 - 09:17
Остается только КЭШ. Ну и хорошо, сам с собой поговорил, спасибо мне.
   Fedor-1971
 
7 - 14.07.16 - 09:25
(6) Если СокрЛП(ТекТовар.Наименование) <> СокрЛП(СтрокаТЧ.Наименование) Тогда  - сравнение есть, а запись в СтрокаТЧ.Наименование

Если помогло (4) значит используешь ДС с установленной основной таблицей, вот и смотри когда и как нужно обновлять твой ДС.
   Fedor-1971
 
8 - 14.07.16 - 09:31
7+ СтрокаТЧ.Наименование - это реквизит ТЧ документа или реквизит ТЧ формы?
Если первое, ты наименование записал в документ, так и расскажи ему когда нужно изменить данные. Тогда не понятно как тебе помогло (4) и ДС должен обновляться при открытии.
Если второе - должно обновляться при открытии/записи.
   SerF_2011
 
9 - 14.07.16 - 10:14
(8) СтрокаТЧ.Наименование это наименование из файла Excel. А записываю я уже измененный товар в табличную часть Товары документа Реализация товаров и услуг. ДС никаких нет в моей обработке, программно меняю наименование товара, также создаю документ и записываю его. Только потом если в этот док зайти, то там по прежнему в ТЧ старое представление ссылки на товар.
   Fedor-1971
 
10 - 14.07.16 - 11:09
(9) как-то путано:
1. "Изменённый товар" - это как? т.е. находишь запись в справочнике Номенклатура, редактируешь её и записываешь. Потом заполняешь ссылку в ТЧ?
2. Проверь в документ записываешь наименование или ссылку? Представление ссылки системное или сам своё сделал?
   SerF_2011
 
11 - 14.07.16 - 11:14
(10) да все просто как никогда, я же код привел выше

получаю объект номенклатуры, меняю название, записываю
               ТоварОбъект.Записать();

потом этот записанный элемент беру и в табличную часть его, там есть реквизит Номенклатура:

            СтрТовар = Акт.Товары.Добавить();
            СтрТовар.Номенклатура = ТекТовар;
   SerF_2011
 
12 - 14.07.16 - 11:15
(10)

1. Да
   Fedor-1971
 
13 - 14.07.16 - 12:52
(11) СтрТовар.Номенклатура тип какой? Строка или ссылка? ТекТовар - по умолчанию, представление в виде наименования
   Fedor-1971
 
14 - 14.07.16 - 12:53
13+ Проведи эксперимент: СтрТовар.Номенклатура = ТекТовар, замени на СтрТовар.Номенклатура = "1111"

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