Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) 1Cpp+ТабличноеПоле (число прочтений - 3374 )
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
1Cpp+ТабличноеПоле
12. Сентября 2008 :: 15:10
Печать  
Подскажите пожалуйста, как сделать невидимым табличное поле, если решение на это действие принимается в процедуре обработки события Выбор(ТП) табличного поля.
Код:
//******* Обработка сообщения кнпНоменклатураВыбор ********
Процедура кнпНоменклатураВыбор(ТП)
 xm=ТП.ТекущаяСтрока;
 id_Номенклатура = итНоменклатура.ПолучитьЗначение(xm,1);
 пвНоменклатура  = итНоменклатура.ПолучитьЗначение(xm,2);
 Если СокрЛП(пвНоменклатура)="" Тогда
   кнпCброситьВыборНоменклатуры();
 КонецЕсли;
 итНоменклатура.УдалитьСтроки();
 тпНоменклатура.ОбновитьСтроки();
 Форма.кнпМатериалы.Доступность(1);
 Форма.кнпВыборНоменклатуры.Доступность(0);
 Форма.пвНоменклатура.Доступность(0);
 Форма.кнпНоменклатура.Видимость(0);
 Активизировать("кнпПоказать");
 Форма.Обновить(0);
КонецПроцедуры
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #1 - 15. Сентября 2008 :: 06:01
Печать  
Я делал так: в обработке события ТП вызывал Сервис.ВнешнееСобытие();
далее обработка события ТП завершалась. И уже в процедуре ОбработкаВнешнегоСобытия() это ТП становилось невидимым. Можно и через обработку ожидания сделать, но, имхо, через события красивее выглядит.
  
Наверх
ICQ  
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: 1Cpp+ТабличноеПоле
Ответ #2 - 15. Сентября 2008 :: 12:04
Печать  
>Salimbek
Спасибо. Так можно и удалить ТП.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: 1Cpp+ТабличноеПоле
Ответ #3 - 15. Сентября 2008 :: 12:32
Печать  
Колеги, подскажите пожалуйста, как программно (не щелчком мышки) передать фокус ТП (например, активизировать ввод в первую ячейку первой строки табличного поля)
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #4 - 15. Сентября 2008 :: 12:45
Печать  
Код
Выбрать все
Активизировать(ИмяРеквизитаТП); 


и далее:
Код
Выбрать все
ТП.ТекущаяСтрока = НомерНужнойСтроки;
ТП.ТекущаяКолонка = НомерНужнойКолонки; 

  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: 1Cpp+ТабличноеПоле
Ответ #5 - 16. Сентября 2008 :: 05:22
Печать  
>JohnyDeath
Код не рабочий. Если можно, приведите пожалуйста пример рабочего.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #6 - 16. Сентября 2008 :: 05:43
Печать  
Burlak писал(а) 16. Сентября 2008 :: 05:22:
>JohnyDeath
Код не рабочий. Если можно, приведите пожалуйста пример рабочего.

Да, извиняюсь. Вот так правильно:
Код
Выбрать все
ТП.ТекущаяКолонка = ТП.Колонки.Получить(ИндексИлиИмяКолонки);
ТП.ТекущаяСтрока = НомерСтроки;
Активизировать(ИмяРеквизитаТП);  


если поставщик не ТЗ или ИТЗ, то Свойство "ТекущаяСтрока" необходимо менять по-другому.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: 1Cpp+ТабличноеПоле
Ответ #7 - 16. Сентября 2008 :: 09:39
Печать  
>>JohnyDeath Сегодня :: 09:22:
Спасибо. Я не знаю, что такое "ИмяРеквизитаТП"
Но если :
  . . .
  оФорма = СоздатьОбъект("Форма");
  оФорма.УстановитьФорму(Форма);

ТП= оФорма.СоздатьЭлементУправления("ТабличноеПоле", "кнпТП");

где: кнпТП - идентификатор элемента "Кнопка", "носителя" ТП

. . .
то:
ТП.ТекущаяСтрока = 1;
Активизировать("кнпТП");

отрабатывает штатно.
  
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #8 - 17. Июля 2009 :: 13:33
Печать  
Burlak писал(а) 16. Сентября 2008 :: 09:39:
>>JohnyDeath Сегодня :: 09:22:
Спасибо. Я не знаю, что такое "ИмяРеквизитаТП"
Но если :
 . . .
 оФорма = СоздатьОбъект("Форма");
 оФорма.УстановитьФорму(Форма);

ТП= оФорма.СоздатьЭлементУправления("ТабличноеПоле", "кнпТП");

где: кнпТП - идентификатор элемента "Кнопка", "носителя" ТП

. . .
то:
ТП.ТекущаяСтрока = 1;
Активизировать("кнпТП");

отрабатывает штатно.


Странно... У меня ошибка:
Код
Выбрать все
Активизировать("ТабПол");
{...}: В данной формуле не может быть вызвана эта процедура(функция) 



1C SQL 7.70.0.25
1C++ 2.0.3.7
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #9 - 18. Июля 2009 :: 14:19
Печать  
Давай тестовую обработку
  
Наверх
 
IP записан
 
chicago
Senior Member
****
Отсутствует


1C++, I have nothing to
say more!

Сообщений: 316
Местоположение: Тернополь-Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1Cpp+ТабличноеПоле
Ответ #10 - 18. Июля 2009 :: 17:54
Печать  
JohnyDeath писал(а) 18. Июля 2009 :: 14:19:
Давай тестовую обработку


Даю.

При попытке ввдода значения даты.
  

_180709_01.zip ( 8 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать