gifts2017

класс ПоказТаблиц

Опубликовал Олег Валуйский (waol) в раздел Программирование - Инструментарий

Класс внешней компоненты 1с++, наследник класса "ТабличноеПоле". Служит для отображения данных Документа, ТаблицаЗначений, ИндексированнаяТаблица.
Для отображения используется встроенный класс 1с++ "ТабличноеПоле";
есть возможность пользоваться его возможностями, такими как изменения порядка следования колонок, видимостью колонок.
В подвале выводится итог по числовым колонкам;
При клике на заголовках производится сортировка по соответствующим колонкам.
F5 - производится обновление отображаемых данных.

---
Методы:
Показать(ИсходныеДанные,ЗаголовокФормы="",Колонки="",ЧисловыеКолонки="",ВычисляемыеКолонки="")

ИсходныеДанные - Документ, ТаблицаЗначений, ИндексированнаяТаблица; исходные данные для показа.
Если ИсходныеДанные, то показывается шапка документа и, если есть, табличная часть - на дополнительной
закладке;

ЗаголовокФормы - необязательный; передается заголовок формы показа;

Колонки - необязательный; колонки, которые будут выведены в табличной части;
при этом невидимые колонки возможно показать из поля "i".
Если не задан - показываются все колонки. Если ИсходныеДанные - документ,
то для показа колонки с номером строки документа задается идентификатор "НомерСтроки";

ЧисловыеКолонки - необязательный; колонки, которые будут выводится с горизонтальной ориентацией
"справа", и по ним будет показан подвал; если параметр не задан, числовые колонки определяются автоматически,
если это возможно;

ВычисляемыеКолонки - необязательный. Задает начальное значение строки с описанием вычисляемых
колонок в поле на закладке "Вычисляемые колонки"
----

Добавление вычисляемых колонок:
добавление производится командой формата
НоваяКолонка(Идентификатор,Тип,Выражение), где

Идентификатор - идентификатор новой колонки;
Тип - 1 - число; 2 - не число. Если тип равен 1, то колонка выводится как числовая, т.е. по тому же
принципу, что колонки, заданные в параметре ЧисловыеКолонки метода Показать();
Выражение - выражение на языке 1с, в котором возможно использовать арифметические операции
с существующими в показываемом объекте колонками, а также с добавленными колонкам.
Возможно использовать функции из глобального модуля, определенные как экспорт.
Вычисления значений колонок производятся в том же порядке, как они заданы в строке вычисляемых колонок.

разделение между командами добавления колонок - разделительстрок;
команды можно временно отключать знаком комментария "//".
При этом добавленные ранее колонки в табличное поле удаляются.

Пример строки вычисляемых колонок:

СоздатьКолонку(ПриходМинусРасход,1, Приход - Расход)

//СоздатьКолонку(Банк,, РасчетныйСчет.Банк)

СоздатьКолонку(ИНН,, Контрагент.ИНН)


-----------------

Установка:

1) если компоненты 1с++ нет, то нужно скопировать файл 1cpp.dll

в каталог базы или каталог программы;

2) скопировать приложенный файл DefCls.prm в каталог базы данных

либо включить в существующий файл DefCls.prm строку:

класс ПоказТаблиц=Classes\ПоказТаблиц.ert : ТабличноеПоле
{};

3) скопировать файл ПоказТаблиц.ert в

КаталогИБ \ Classes\ (если этого каталога нет, то создать)

 

4) как работает - на примере конфигурации ТиС

(прилагается файл "Показ дока.ert")

 

*************

Последние изменения

Необходимо обновить строку в DefCls.prm:
класс ПоказТаблиц=Classes\ПоказТаблиц.ert : ТабличноеПоле
{};

 

11.12.09
Отображение количества строк в табличной части.
Исправлена ошибка с показом объекта ИндексированнаяТаблица;
Исправлена ошибка с выводом таблицы без задания параметра "ЧисловыеКолонки";
В шапке документа добавлен показ времени документа.


Сделан вывод итогов для колонок "ЧисловыеКолонки" для случая, когда
колонки исходного объекта не типизированы;
Добавлена расшифровка значений типа Документ, Справочник (открывает форму)
"ИндексированнаяТаблица", "ТаблицаЗначений" (создается новое окно с данными по выбранной таблице)
(т.ч. для вычисляемых полей).

18.12.09
Исправлены найденные ошибки вычисления выражений для вычисляемых колонок
Исправлена ошибка при показе объекта ИндексированнаяТаблица
Добавлена возможность показа объекта "СписокЗначений", а также любых классов, наследников от
ТаблицаЗначений, ИндексированнаяТаблица, СписокЗначений

19.12.09
Класс сделан наследником от класса "ТабличноеПоле". Как следствие этого, для табличного
поля с закладки "Табличная часть" возможно пользоваться всеми свойствами и методами предка.
Такие свойства, как: Шрифт, ЧередованиеЦветовСтрок, РежимВыделенияСтроки, РежимВыделения,
ВертикальныеЛинии, ГоризонтальныеЛинии, СтильЗаголовков, СтильАктивногоЗаголовка,
ЦветТекста, ЦветФона, ОтображатьЗаголовки передаются при расшифровке ячеек, вызывающих
данный класс; отключается параметром в методе Опции
Применять свойства и методы возможно только после применения метода Показать()


Новый метод Опции(ИдНастройки,НеНаследоватьСвойстваВоВложенныхТаблицах=0,ПоказДокументовСам=0),
где
ИдНастройки - строчный идентификатор сохраняемой настройки;
НеНаследоватьСвойстваВоВложенныхТаблицах - 0 (по умолчанию) - перечисленные выше
сохряняемые свойства для вложенных таблиц сохраняются, 1 - нет;
ПоказДокументовСам - 0 (по умолчанию) - открывается форма документа, 1 - документ открывается
классом ПоказТаблиц.


Добавлена возможность сохранения вида табличной части (кнопка "Сохранить"). При этом сохраняются следующие параметры:
последовательность, видимость и ширина колонок; текст с закладки "Вычисляемые колонки"
Добавлена возможность восстановления исходного вида (кнопка "Восстановить").

 

16.07.10

- Заблокирована возможность повторного использования метода Показать() для одного объекта
(в таких случаях работало с ошибкой);

- добавлено свойство "ФорматВыводаЧисел" - по умолчанию "ч019.2.'";

- при двойном клике на ячейке с простыми типами открывается диалог "ВвестиСтроку" с текущим значением
ячейки (сделал для возможности копирования значения в ячейке);

- если загружен Формекс и есть классы управления формой, форма будет выглядеть поприятнее.

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

Наименование Файл Версия Размер Кол. Скачив.
показтаблиц.zip
.zip 43,52Kb
07.09.10
100
.zip 43,52Kb 100 Скачать

См. также

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

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 09.12.09 03:21
2. Олег Валуйский (waol) 09.12.09 09:44
да приходило в голову что нибудь прикрутить - спасибо за ссылку :)
3. Артур Аюханов (artbear) 09.12.09 17:26
4. dviro (dmitish) 11.12.09 11:47
Вот если бы кнопочку Печать добавить ;)
5. Епрст (Ёпрст) 11.12.09 12:00
Пару раз выдавало ошибки.. потом запостю.
6. Олег Валуйский (waol) 11.12.09 12:05
кое какие ошибки уже нашел (в частности, не показывает Индексированную таблицу), выложу позже;
а печать будет
7. Олег Валуйский (waol) 21.12.09 13:09
8. Brr (brr) 07.07.10 11:21
Спасибо, отличная разработка!
9. Олег Валуйский (waol) 07.07.10 12:50
(8) не особо пользуется здесь успехом, хотя я без нее не представляю уже работы. выложу чуть позже последний вариант с некоторыми доработками
10. Артур Аюханов (artbear) 21.07.10 11:05
(9) Сама ВК 1С++ не так уж популярна :(
Боится народ ВК
11. Олег Валуйский (waol) 21.07.10 11:37
(10) тем ценнее специалисты :) (оптимист)
12. Александр Венгер (venger) 21.07.10 13:09
(10),(11) Я, кстати, встречал вакансии с требованием знания определенных ВК, там была и 1С++, одной из первых;-)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа