gifts2017

Замена стандартного объекта "Таблица" собственным классом (тестовый класс)

Опубликовал Алексей Лустин (lustin) в раздел Программирование - Внешние компоненты

класс заменяет стандартный объект 1С 7.7 "Таблица", с целью обработать события ПриПечатиТаблицы а также редактирования Ячеек таблицы, хранит ссылки на вызывающий контекст...
Предназначен по идее для сохранения измененных таблиц в определенном каталоге, с последующим разбором полетов... события обрабатываются только при вызове из Контекста Документа...
Требует наличие компонент

1С++ 2.5.0.2 ("Ночная сборка" www.1cpp.ru)
FormEx 2.0.5.0 #52 (http://dorex.ru/?projects&formex&download)

Подключения класса в defcls.prm
""""""""""""""""""""""""""""""""""""2
class Таблица = Classes\Общие\Таблица.ert : Table
{
void Показать(...);
void Show(...);
}
"""""""""""""""""""""""""""""""""""

Данный класс запущен на работе в тестовом режиме для проверки работоспособности...
Поэтому обновления я так думаю будут...

Разработан в качестве тестирования Идеи подмены метаданных подсмотренной
http://www.1cpp.ru/forum/YaBB.pl?num=1175586636

Известные скользкие моменты:
1. FormEx не знает что Контекст объекта Таблица подменен пользовательским классом, поэтому в процедуру ПриПечати приходит Контекст НЕ!!! подмененный.
2. Класс определяет, что печатает сам себя через расшифровку свободной ячейки... что не слишком универсально....поэтому к выходным переделаю немного правило определения того, что класс Отловил собственную печать
3. Если в ActiveDirectory существует объявленный сетевой принтер для пользователя но доступ к нему не произведен, событие ПриПечатиТаблицы произойдет, но реально документ на печать не выведется..., но все равно сам факт изменений зафиксируется

25 апреля 2007 года
+ класс стал содержать наметки на Интерактивную настройку, для просмотра откройте файл как обычную обработку

И еще вообще при использовании 1С++ лучше создавать свое собственное ИмяКласса - к примеру у меня используется
"Общие.Таблица" = Classes\Общие\Общие.Таблица.ert : Таблица"


25 апреля 2007 года
+ добавил в класс переопределение метода Show()
+ слегка переделал порядок вызова методов
- подмены объекта Table не произойдет http://www.1cpp.ru/forum/YaBB.pl?num=1177486088/3#3
- При 2-ух активных экземплярах класса Перехват происходит только у последнего (проблема решается)

Скачать файлы

Наименование Файл Версия Размер
Класс Таблица++ 30
.1177334650 184,00Kb
25.09.09
30
.1177334650 184,00Kb Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. desty (lustin) 23.04.07 17:25
Обсуждать прошу идею а не реализацию, класс написан за вечер, ночь и сегодняшнее утро...
2. desty (lustin) 23.04.07 17:28
Настоятельно рекомендую использовать последние версии компонент.....
3. Александр Гринюк (avgreen) 06.08.09 11:33
Огромное спасибо за идею! На ее основе наворотил кучу функционала.....
Причем пользуюсь давно и уже даже забыл откуда взял :)
4. desty (lustin) 06.08.09 11:56
1. http://www.1cpp.ru/forum/YaBB.pl?num=1248704582/3#1

смотри комментарий Артура - если метод
Система::ПодменитьСоздаваемыеОбъекты(СписокИлиСтруктураПодменяемыхОбъектов)
будет реализован - тогда замена объектов будет более стабильной
5. Александр Гринюк (avgreen) 21.08.09 23:38
Да, это было-бы очень интересно если-бы реализовали
Еще очень не хватает, лично мне по крайней мере, вот этого
http://www.1cpp.ru/forum/YaBB.pl?num=1249470354
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа