Имя: Пароль:
1C
1С v8
заполнить программно поле формы
0 I_learn_1c
 
04.06.21
10:35
Доброе утро,
туплю тут с формой, помогите плиз

есть форма Документ.ХХХХХ.Форма.ФормаДокумента
у нее есть реквизит ТЗ Товары, и в ней колонка Номенклатура. ТЗ Товары выведена на форму, и на форму так же выведена колонка "Единица измерения" из номенклатуры. Путь к данным Товары.Номенклатура.ЕдиницаИзмерения. вроде логично.


но потом я заполняю эту форму программно в обработке внешней и открываю. там есть другая тз ТЗНормы, по ней заполняю ТЗТовары.
и вот после открытия колонка "Единица измерения" пустая, хотя по идее должна тянуться из номенклатуры. Если заносить руками ту же номенклатуру в форме - единица подтягивается. а как программно сделать чтоб выводилась тоже?

ФормаДок = ПолучитьФорму("Документ.ХХХХХ.Форма.ФормаДокумента");
Для каждого СтрокаТЗ из ТЗНормы Цикл
        
        НовСтр = ФормаДок.Товары.Добавить();   // тип НовСтр здесь ДанныеФормыЭлементКоллекции, ФормаДок.Товары - ДанныеФормыКоллекция
        НовСтр.Номенклатура = СтрокаТЗ.Номенклатура;                
        НовСтр.Характеристика = СтрокаТЗ.Характеристика;
        .....

КонецЦикла

ФормаДок.Открыть();
1 I_learn_1c
 
04.06.21
10:42
(0) пробовала ФормаДок.ОбновитьОтображениеДанных(ФормаДок.Элементы.Товары); после открытия, не помогает
2 del123
 
04.06.21
10:44
Посмотри что происходит в форме документа, когда изменяется номенклатура. Вопрос должен будет отпасть после этого
3 mikecool
 
04.06.21
10:45
посмотри, какой код вызывается при изменении номенклатуры
но - если данные колонкиНоменклатура.ЕдиницаИзмерения, то должна заполняться сама
одна из черепашек врет
4 Salimbek
 
04.06.21
10:47
(0) Может тип значения в одном случае - справочник, а в другом - строка?
5 I_learn_1c
 
04.06.21
10:48
(2) смотрела
там пересылка на общий модуль в котором идет обработка ТЧ. из обработки я же не могу вызвать эту процедуру.. у меня ни элемента ничего же нет

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
6 I_learn_1c
 
04.06.21
10:53
(4) нет, я получаю НовСтр = ФормаДок.Товары.Добавить(), и заполняю номенклатуру (у нее указана ед.измерения). саму единицу я не заполняю, она на форме только выведена. но если заполнить номенклатуру руками в форме - нормально, если программно - нет.

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

суть в том, что у меня в обработке на форме есть ТЗ, и по данным из этой ТЗ мне нужно заполнить новый документ, открыть, не записывая.. и чтобы на форме адекватно вывелись те поля, которые зависят от заполненных
7 del123
 
04.06.21
11:08
Имеется в виду, что, скорее всего, у документа поле "единицы измерения" самостоятельное, и, при изменении номенклатуры в форме, оно заполняется автоматически значением ед.изм. из номенклатуры. Соответственно тебе надо в твоей обработке так же заполнять это поле самостоятельно.
8 I_learn_1c
 
04.06.21
11:11
(7) "единица измерения" это не самостоятельное поле.
Товары - это не табличная часть, это ТЗ на форме документа. У нее есть поле номенклатура, нет поля "единица измерения", на форме "единица измерения" выведена с путем Товары.Номенклатура.ЕдиницаИзмерения
9 Salimbek
 
04.06.21
12:05
(6) 1) Вы написали много слов, но ничего не сказали о типе значений.
2) Что мешает поставить брейкпоинт на строку НовСтр.Характеристика = СтрокаТЗ.Характеристика и смотреть - что там у вас реально лежит?
3) Что мешает до конца пройтись отладчиком по всему коду и в итоге посмотреть что же там у вас твориться?
10 Бертыш
 
04.06.21
13:34
(0) Так не тупи. Заполнять рекомендуется на стороне сервера передав ему объект от полученной формы
11 Бертыш
 
05.06.21
22:30
AdBlock убивает бесплатный контент. 1Сергей