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

заполнить программно поле формы

заполнить программно поле формы
Я
   I_learn_1c
 
04.06.21 - 10:35
Доброе утро,
туплю тут с формой, помогите плиз

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


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

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

КонецЦикла

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

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

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

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

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