несколько цитат:
Цитата:Поиск должен работать сразу и без доп.настройки при загрузке новой ВК. Для этого должно отрабатывать событие ПриВыводеСтроки для получения текстовых представлений ячеек.
Но есть возможность "облегчить" этот процесс. Для этого есть специальное событие ПриФорматированииСтроки. Если это событие реализовано, то ПриВыводеСтроки при поиске не возбуждается.
Нагляднее видно по коду:
//В части работы над текстом, коллекции ячеек (из ОформлениеЯчейки и из ФорматЯчейки)
//специально сделаны одинаковыми. Чтобы был применим некоторый полиморфизм.
Процедура ФорматированиеЯчеек(Ячейки, Данные)
//Общая процедура обработки текста ячеек. Для вывода и для поиска.
Ячейки.Кол2.Текст=Формат(Данные.Кол2,"ЧПДС");
Ячейки.Кол4.Текст="123473857";
КонецПроцедуры
Процедура ПолеПриВыводеСтроки(ТП, Оформление, Данные)
ФорматированиеЯчеек(Оформление.Ячейки,Данные);
КонецПроцедуры
//Новое событие
Процедура ПолеПриФорматированииСтроки(ТП, ФорматСтроки, Данные)
//ФорматСтроки - фиксированная коллекция (похожая на коллекцию ОформлениеСтроки::Ячейки)
//состоит из объектов типа ФорматЯчейки
//есть свойство ФорматЯчейки.Текст
//есть метод ФорматЯчейки.УстановитьТекст()
ФорматированиеЯчеек(ФорматСтроки, Данные);
КонецПроцедуры
Еще события. Возбуждаемые самим поиском и вызовом диалога
//Новое событие
Процедура ПолеПриПоиске(ТП, ДанныеПоиска, ФСО)
//Сообщить(ДанныеПоиска.Значение);
//Сообщить(ДанныеПоиска.Строка);
//Сообщить(ДанныеПоиска.Назад);
//Сообщить(ДанныеПоиска.УчитыватьРегистр);
//Сообщить(ДанныеПоиска.ПоОднойКолонке);
//ФСО=0;
//можно подменить алгоритм поиска
КонецПроцедуры
//Новое событие
Процедура ПолеПриДиалогеПоиска(ТП, ДанныеПоиска, ФСО)
//Сообщить(ДанныеПоиска.Значение);
//Сообщить(ДанныеПоиска.Строка);
//Сообщить(ДанныеПоиска.Назад);
//Сообщить(ДанныеПоиска.УчитыватьРегистр);
//Сообщить(ДанныеПоиска.ПоОднойКолонке);
//ФСО=0;
//можно подменить диалог поиска
КонецПроцедуры
Цитата:Ну и прицепом - небольшой бонус.
ТП теперь не безразличны команды Copy, Paste, M, M+, M-.
Copy - копирует в буфер обмена текст из тек.ячейки.
M - копирует в буфер, M+ - прибавляет, а M- - вычитает число полученное путем приведения из текста тек.ячейки.
Все команды возбуждают событие ПриКомандеБуфераОбмена(Команда, Стр, ФСО)
где Команда: 0 - Copy, 1 - Paste, 2 - M, 3 - M+, 4 - M-.
Стр - копируемый или вставляемый текст.
ФСО = 0 - отмена действия команды.
Процедура ПолеПриКомандеБуфераОбмена(ТП, Команда, Стр, ФСО)
Если Команда=0 Тогда
Сообщить("Copy: "+Стр);
ИначеЕсли Команда=1 Тогда
Сообщить("Paste: "+Стр);
ИначеЕсли Команда=2 Тогда
Сообщить("M: "+Стр);
ИначеЕсли Команда=3 Тогда
Сообщить("M+: "+Стр);
ИначеЕсли Команда=4 Тогда
Сообщить("M-: "+Стр);
КонецЕсли;
//ФСО=0;
КонецПроцедуры