Имя: Пароль:
1C
1C 7.7
v7: Как получить данные ИЗ ТабличногоПоля 1CPP?
0 botman4
 
03.05.17
11:34
Собственно подскажите пож, как получать данные из поставщика данных который в табличном поле ? поставщик данных ТЗ или ИТЗ.
Спасибо.
1 Ёпрст
 
03.05.17
11:41
Данные получай из ТЗ/ИТЗ.
В чем вопрос то ?
ТабличноеПоле - это просто "окошко", через которое ты на поставщика этого табличного поля глядишь.
2 botman4
 
03.05.17
11:50
Не догоняю малеха:
вот я создал ТП:

ТП.ПоставщикДанных=СоздатьОбъект("ПоставщикДанныхТЗ");
ТП.ПоставщикДанных.УстТаблицуЗначений(Тз);

работал с ним при помощи

Процедура ТаблПолеПриРедактированииЗначения(__тп, __стр, __кол, __рег, __знач)
    Если __рег =3 Тогда
        _тз =__тп.ПоставщикДанных.ТаблицаЗначений;
        _нк =__тп.Колонки.Индекс(__кол) +1;
        _тз.УстановитьЗначение(__стр, _нк, __знач);
        __тп.ОбновитьСтроки();        
    КонецЕсли;    
КонецПроцедуры

как мне получить в любой моей процедуре этого поставщика данных ?
допустим ПриЗакрытии?
3 Ёпрст
 
03.05.17
11:54
(2) Твоя ТЗ доступна в любом месте, пользуйся
4 botman4
 
03.05.17
12:45
через что мне к ней обратиться, хоть убей не догоняю )))
объявлять её как переменную в модуле?
покажите пример пож.
5 Ёпрст
 
03.05.17
12:51
(4)
Перем ТЗ;
6 Ёпрст
 
03.05.17
12:51
доступна везде..
7 botman4
 
03.05.17
12:56
(5) я так и думал ) спасибо.
8 botman4
 
03.05.17
13:04
Возможно подскажите еще, если на форме два и более ТП,

возможно ли к ним обращаться как-то по иному, чем через

ИмяТабПоля + ПриРедактированииЗначения()

а то получается сколько ТП, столько и писать таких процедур?
9 Ёпрст
 
03.05.17
13:10
(8) пиши так, если оне по одинаковому обрабатываются:

Процедура ОбработатьТП(<параметры>)
  .....
КонецПроцедуры

Процедура ТаблПоле1ПриРедактированииЗначения(<параметры>)
   ОбработатьТП(<параметры>);  
КонецПроцедуры
Процедура ТаблПоле2ПриРедактированииЗначения(<параметры>)
   ОбработатьТП(<параметры>);  
КонецПроцедуры

....
Процедура ТаблПолеNПриРедактированииЗначения(<параметры>)
   ОбработатьТП(<параметры>);  
КонецПроцедуры
10 Ёпрст
 
03.05.17
13:11
Или события обрабатывай ы классе.
11 botman4
 
03.05.17
13:13
(9) спасибо.
12 linoblack
 
03.05.17
13:16
(8) кажись вот оно - http://dml.compkaluga.ru/forum/index.php?showtopic=35958

используется функция Шаблон() для формирования имени реквизита
13 botman4
 
03.05.17
13:25
я думаю это не подойдет, так-как менять нужно имя самой процедуры. имя должно быть динамическое )
ковырял класс поставщикданных.табличное поле, там вызываются методы через " я(). "
пытаюсь понять..
14 linoblack
 
03.05.17
13:35
(13) вот именно для формирования динамического имени процедуры и используется. вот мой пример

Процедура ОбработкаБуквеннойКнопки(НомерКнопки)           
    Буква = Шаблон("["+"Форма.Кнопка"+НомерКнопки+".Заголовок()"+"]");    
    Если ВводимыйТекст = "" Тогда    
        ВводимыйТекст = Буква;
    Иначе                         
        ВводимыйТекст = ВводимыйТекст + Буква;
    КонецЕсли;    
КонецПроцедуры        

на форме много кнопок - кнопка1, кнопка2 и т.д. а процедура обработки одна с обращением именно к реквизиту формы по имени
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.