Есть класс СуперТЗ : ТаблицаЗначений
Оснавная цель - добавить некоторые события к ТЗ, размещаемой на форме + прямой ввод.
Процедура _Инит_(Конт,Ид) Экспорт
Сам_Атрибут=СоздатьОбъект("АтрибутФормы");
Сам_Атрибут.УстановитьАтрибут(Конт.Форма,Ид);
Сам().ЗаменитьЭксзБазовогоКласса("ТаблицаЗначений",Сам_Атрибут.Значение);
УправлениеНастр=СоздатьОбъект("УправлениеНастройками");
УправлениеНастр.Установить("ПерехватитьСобытияГК",1);
клПерехватчик=СоздатьОбъект("Перехватчик");
клПерехватчик.ПерехватитьСобытияГК(Конт,Сам());
КонецПроцедуры
//______________________________________________________________
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
Если Источник="FormEx" Тогда
Если Событие="НачалоРедактированияЯчейки" Тогда
;
в = ""; л = ""; н = ""; п = "";
// получаем экранные координаты текущей ячейки таблицы
,н,п);
// перемещаем служебный реквизит так, чтобы он вписался внутрь ячейки
АтрибутРедактирования.УстановитьКоординаты(л,в,п-л,н-в);
// изменяем стиль слежубного реквизита, чтобы он более походил на используемые при вводе в многострочных частях
АтрибутРедактирования.Рамка = 0;
// изменяем родительское окно служебного реквизита
// если этого не сделать, то ТЗ просто перекроет наш реквизит и мы ничего с ним не сможем сделать интерактивно
АтрибутРедактирования.РодительскоеОкно = АктивныйКонтекст().Форма.ПолучитьАтрибут(Сам_Атрибут.Идентификатор);
// устанавливаем текущее значение из ТЗ в служебный реквизит
АтрибутРедактирования.Значение = ний").ТекущаяКолонка());
// показываем служебный реквизит...
// ... и активизируем его
АктивныйКонтекст().Активизировать("АтрибутРедактирования",1);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//______________________________________________________________
Процедура УстановитьТипЯчейки()
Тип="";Длин=0;Точн=0;
ий").ТекущаяКолонка(),Тип,Длин,Точн);
АктивныйКонтекст().Форма.АтрибутРедактирования.НазначитьТип(Тип,Длин,Точн);
АктивныйКонтекст().Форма.Обновить();
КонецПроцедуры
//______________________________________________________________
Процедура ПриДвойномНажатииЛевойКнопки(Сост,Х,У,ФСО) Экспорт
а=0;б=0;с=0;д=0;
Сам_Атрибут.ПолучитьКоординаты(а,б,с,д);
Если (Х>=а) и (Х<=а+с) и (У>=б) и (У<=б+д) Тогда
Если СамБазовый("ТаблицаЗначений").КоличествоСтрок()=0 Тогда
Возврат;
КонецЕсли;
УстановитьТипЯчейки();
клСервис.ВнешнееСобытие("FormEx", "НачалоРедактированияЯчейки", "");
КонецЕсли;
КонецПроцедуры
//______________________________________________________________
АтрибутРедактирования - РеквизитДиалога с типом Неопределённый.
Так вот, если выполняется попытка редактирования колонки с агрегарным типом данных, например, справочник.номенклатура - всё нормально. Если же тип текущей колонки редактируемой ТЗ Число, то реквизит АтрибутРедактирования как бы не видим. Он подстраивается в нужное место, становиться видимой "педалька" выбора значения, но то, что вводится пользователем не отображается, просто чистое, белое окошко. Хотя если нажать на "педальку", то в открывшемся калькуляторе отображается введённое значение.
Что не так?