Переключение на Главную Страницу Страницы: 1 ... 25 26 [27] 28 29 ... 32 ОтправитьПечать
Очень популярная тема (более 25 ответов) ТП: Прямое редактирование значений (число прочтений - 177070 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #390 - 14. Октября 2009 :: 13:28
Печать  
А другой документации и не будет.

А где и как ты вызываешь "РедактироватьЗначение" ?
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #391 - 14. Октября 2009 :: 13:38
Печать  
JohnyDeath писал(а) 14. Октября 2009 :: 13:28:
А другой документации и не будет.

А где и как ты вызываешь "РедактироватьЗначение" ?


Я ее не вызываю. Определяю в модуле как ТПРедактировать значение()
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #392 - 14. Октября 2009 :: 14:18
Печать  
"РедактироватьЗначение" - это МЕТОД, а не СОБЫТИЕ. Поэтому схема примерно следующая:
1. В событии ТП "Выбор" (т.е при дабл клике или ентере на ячейке) вызываем метод "РедактироватьЗначение"
2. Определяем событие "ПриРедактированииЗначения", которое поместит нужные данные в нужные места.

Для поставщика ТЗ это выглядит примерно так:
Код
Выбрать все
Процедура тпПриРедактированииЗначения(тп, СтрокаТП, Колонка, Регион, Значение)
	тп.ПоставщикДанных.ТаблицаЗначений.УстановитьЗначение(СтрокаТП, Колонка.Имя, Значение);
	тп.ОбновитьСтроки();
КонецПроцедуры

Процедура тпВыбор(тп, СтрокаТП, Колонка, ТипРегиона)
	Если ТипРегиона<>3 Тогда Возврат;	КонецЕсли;
	ИмяКолонки=Колонка.Имя;
	текЗнач=тп.ПоставщикДанных.ТаблицаЗначений.ПолучитьЗначение(СтрокаТП, ИмяКолонки);
	тп.РедактироватьЗначение(СтрокаТП, Колонка, ТипРегиона, текЗнач,,,,20);
КонецПроцедуры	 

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


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #393 - 14. Октября 2009 :: 14:34
Печать  
Понял, спасибо. Попробую.
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #394 - 15. Октября 2009 :: 10:42
Печать  
Сидел, отлаживал запись.
Что-то "наотлаживал" так, что при редактировании ячейки выбор из справочника не производится. Серое окошко с кнопкой, и все. Вроде вернул все в минимальный вид - все равно так же.
И ПриРедактированииЗначения тоже перестало вызываться ...
Как нарыть ошибку?
------------------------
Простите дятла. Пытался редактировать в "ТолькоПросмотре"
  
Наверх
ICQ  
IP записан
 
Betas
Junior Member
**
Отсутствует



Сообщений: 24
Зарегистрирован: 10. Октября 2008
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #395 - 21. Октября 2009 :: 11:50
Печать  
Добрый день.
Есть ли способы задать шрифт поля ввода (т.е. создаваемого контрола)? Как то некрасиво получается. если была высота 18, а при входе в редактирование 8.5.
Берется, насколько я понял, из шрифта формы по умолчанию, а если нужен разный в разных местах? Через АтрибутФормы FormEX не работает.
Спасибо.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #396 - 28. Октября 2009 :: 07:19
Печать  
Почему валится ошибка , что делаю не так?

в уже рабочий отчет ради эксперемента добавил выше приведенный код, в таком виде

Код
Выбрать все
Процедура атрТабличноеПолеВыбор(ТабличноеПоле,аСтрока,Колонка,ТипРегиона)
	//Если ТипРегиона<>4 Тогда //если это не подвал
	//	Попытка
	//		Сп=ЗначениеИзСтроки(ТЗ3.ПолучитьЗначение(аСтрока,Колонка.Имя));
	//		Если ПустоеЗначение(Сп)=0 Тогда
	//			ЗначениеМ="";НомСтр=0;
	//			Сп.ВыбратьЗначение(ЗначениеМ, "Выбор Документа", НомСтр , 60, 1);
	//			Если НомСтр>0 Тогда
	//				ОткрытьФорму(ЗначениеМ);
	//			КонецЕсли;
	//			//Для й=1 По СпДок.РазмерСписка() Цикл
	//			//	аДок=СпДок.ПолучитьЗначение(й);
	//			//			ОткрытьФорму(ЗначениеМ);
	//			//КонецЦикла;
	//		КонецЕсли;
	//	Исключение
	//	КонецПопытки;
	//КонецЕсли;
  //ТабличноеПоле.ОбновитьСтроки();

		Если ТипРегиона<>3 Тогда Возврат;
		КонецЕсли;
	ИмяКолонки=Колонка.Имя;
	текЗнач=ТабличноеПоле.ПоставщикДанных.ТаблицаЗначений.ПолучитьЗначение(аСтрока, ИмяКолонки);
	ТабличноеПоле.РедактироватьЗначение(аСтрока, Колонка, ТипРегиона, текЗнач,,,,20);


КонецПроцедуры


Процедура атрТабличноеПолеПриРедактированииЗначения(ТабличноеПоле, аСтрока, Колонка, Регион, Значение)
	ТабличноеПоле.ПоставщикДанных.ТаблицаЗначений.УстановитьЗначение(аСтрока, Колонка.Имя, Значение);
	ТабличноеПоле.ОбновитьСтроки();
КонецПроцедуры

 



заремил , все свой фрагмент с событии "приВыборе" - что бы не мешал,
вываливается ошибка:
текЗнач=ТабличноеПоле.ПоставщикДанных.ТаблицаЗначений.ПолучитьЗначение(аСтрока, ИмяКолонки);
{Отчет.ПлановыеПлатежиПоставщикам1.Форма.Модуль(566)}: Поле агрегатного объекта не обнаружено (ТаблицаЗначений)

источником для ТП служит в отчете также таблицаЗначение - в переменной "ТЗ" , пробовал подменять в строке с ошибкой ТаблицаЗначений на ТЗ - результат тот же

проверял на 1С ++ 3.0.1.23
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #397 - 28. Октября 2009 :: 07:46
Печать  
Может всё-таки поставщиком является не таблица значений? А какая-нибудь ИндексированнаяТаблица.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #398 - 28. Октября 2009 :: 08:05
Печать  
Нет обычная ТЗ, полученная по результатам запроса

вот так заработало

Код
Выбрать все
Процедура атрТабличноеПолеВыбор(ТабличноеПоле,аСтрока,Колонка,ТипРегиона)
		Если ТипРегиона<>3 Тогда Возврат;
		КонецЕсли;
	ИмяКолонки=Колонка.Имя;
	текЗнач=ТЗ.ПолучитьЗначение(аСтрока, ИмяКолонки);
	ТабличноеПоле.РедактироватьЗначение(аСтрока, Колонка, ТипРегиона, текЗнач,,,,20);


КонецПроцедуры


Процедура атрТабличноеПолеПриРедактированииЗначения(ТабличноеПоле, аСтрока, Колонка, Регион, Значение)
	ТЗ.УстановитьЗначение(аСтрока, Колонка.Имя, Значение);
	ТабличноеПоле.ОбновитьСтроки();


 



респект создателям, снимаю шляпу
  
Наверх
 
IP записан
 
Valdemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 31. Октября 2009
Re: ТП: Прямое редактирование значений
Ответ #399 - 31. Октября 2009 :: 20:04
Печать  
Добрый всем вечер!
Я только начинаю изучать 1С++. Подскажите что я делаю не так.
Проблема в том что наверное не инициализируется табличное поле. Вроде все делаю как написано в справке. При открытии формы вместо табличного поля кнопка.

Вот пример :
[code]
Перем ТП, тзТабл;

Процедура ПослеОткрытия()
     РасшФормы = СоздатьОбъект("РасширениеФормы");
     РасшФормы.УстановитьФорму(Форма);
     ТП = РасшФормы.СоздатьЭлементУправления("ТабличноеПоле","тпТабл");
    ТП.ПоставщикДанных = СоздатьОбъект("ПоставщикДанныхТЗ");
    ТП.ПоставщикДанных.ТаблицаЗначений = тзТабл;
КонецПроцедуры

[/code]

В глобальнике 1CPP загружена.
Версия 1С 7.07.025
Версия 1С++ 3.0.1.23

Спасибо.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #400 - 31. Октября 2009 :: 21:12
Печать  
[quote author=Valdemar link=1202765199/390#399 date=1257019453]Добрый всем вечер!
Я только начинаю изучать 1С++. Подскажите что я делаю не так.
Проблема в том что наверное не инициализируется табличное поле. Вроде все делаю как написано в справке. При открытии формы вместо табличного поля кнопка.

В глобальнике 1CPP загружена.
Версия 1С 7.07.025
Версия 1С++ 3.0.1.23

Спасибо.[/quote]
Чтобы сработало ПослеОткрытия - нужен формекс. Если же не хочешь его грузить, то надо подключать класс "Форма" в ПриОткрытии - тогда станет доступен метод ФормаПриСоздании. И уже в нем инициализируй табличное поле. Вопщем - попробуй сначала в этих методах поставить Сообщить("Hello world"); и добейся чтобы оно начало сообщаться  ;)
  
Наверх
ICQ  
IP записан
 
Valdemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 31. Октября 2009
Re: ТП: Прямое редактирование значений
Ответ #401 - 31. Октября 2009 :: 23:05
Печать  
Большое спасибо Salimbek. Подключил FormEx .. заработало.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Прямое редактирование значений
Ответ #402 - 03. Февраля 2010 :: 15:14
Печать  
Добавил пример, иллюстрирующий базовые возможности.
Надеюсь, поможет тем, кто начинает осваивать ТП, понять основные принципы прямого редактирования значений.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #403 - 05. Февраля 2010 :: 06:42
Печать  
Народ, никто не сталкивался с такой проблемой извелся уже Печаль

           
Код
Выбрать все
к.ТипыЦен"),ТП.ТекущиеДанные.ТипЦен);
		ТП.РедактироватьЗначение(Стр,Кол,ТипРегиона,зн,,,,"0х00000020");
 



при нажатии на нужной колонке открывается спавочник.типыцен и там при любом действии мышкой, делал просто попытку выбрать элемент 1С задумывается и падает при этом Предопределенная ПриРедакированииЗначения() не срабатывает Печаль

что может быть не подскажете?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #404 - 05. Февраля 2010 :: 07:59
Печать  
выяснил с чем и боролся с множественным подбором и так не поборол!
тоесть на форме лежит невидимый реквизит с функцией он срабатывает при обновлении формы и когда слева по справочнику контрагентов двигаю справа понимает из-за этого что нужно поменять в ТП подчиненные данные.
ТАК ВОТ!
проблема в том, что при любом открытии еще одного окна, или подбор с множественным выбором или метод ТП редактировать значение открывается справочник и когда там делаешь выбор, все равно срабатывает обновить ту основную форму с ТП, ТП блин перехватывает на себя активность окна и 1С падает. в случае с множественным подбором, он просто после первого значение закрывает подбор и все, получается одиночный Печаль
Эта же проблема в ТП если оно лежит в Слое на форме, ей плевать на каком слое, при обновлении появляется в том, в котором его и не должно быть  Злой
КАК побороть это не понятно Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 25 26 [27] 28 29 ... 32
ОтправитьПечать