gifts2017

Вывод таблицы значений и компоновка (обычное приложение)

Опубликовал Илья (i132) в раздел Программирование - Практика программирования

Просмотр таблицы значений(дерева значений) и отчет по произвольной ТЗ с помощью СКД
Загрузка таблицы значений из файлов xls/dbf/mxl

Обработка выводит таблицу значений на экранную форму, есть возможность сортировки по колонке с сохраненнием порядка по одинаковым значениям колонки.

Обработку удобно использовать при отладке для вывода промежуточных результатов, либо для показа списка/таблицы пользователю.

Таблицу значений можно передать в форму командами:

ПросмотрТЗ=ВнешниеОбработки.Создать("C:\EPF\ПросмотрТЗ.epf");//Обработки.ПросмотрТЗ.Создать();

ПросмотрТЗ.ЗаголовокФормы="наша таблица";
ПросмотрТЗ.ОткрытьОбъект(ТЗ);

-либо загрузить из файла (xls/dbf/mxl/тз)

обработку можно встроить в конфигурацию и прописать в общем модуле функцию ОткрытьТЗ(ТЗ,тхтЗаголовок="")

Обработка принимает на вход Таблицу ,дерево и список значений; массив, соответствие, структуру, COMSafeArray, результат запроса.

 

По таблице значений можно построить отчет на СКД (кнопка СКД)- а СКД можно настроить так, что бы вывести варианты значений колонки, настроить группировки вывода, отборы.

 

Другие обработки на Инфостарт:

РедакторТЗ для восьмёрки http://infostart.ru/public/104099/

В инструментах разработчика есть исследователь объекта и редактор тЗ/массива (не смотрел) http://infostart.ru/public/15126/

Использование СКД для настройки отбора ТЗ http://infostart.ru/public/105453/

Более удобно строить СКД с помощью отчета: http://infostart.ru/public/120528/

Обработка таблиц значений http://infostart.ru/public/65575/   (есть редактор формул,перенос в таб.часть документа)

 

В планах на будущее: добавить в эту обработку запрос по ТЗ, консоль кода,  формулы для дополнительных колонок. Расширение принимаемых на вход значений как в http://infostart.ru/public/97707/  , добавить возможность установить галочки если использовать обработку для выбора значений  

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

Наименование Файл Версия Размер Кол. Скачив.
ПросмотрТЗ.epf
.epf 21,09Kb
03.05.12
150
.epf 21,09Kb 150 Скачать
Анализ ТЗ для 77.ert
.ert 181,00Kb
10.02.12
11
.ert 181,00Kb 11 Скачать

См. также

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

Комментарии

1. Sergey Ivanov (sergb1979) 22.03.12 11:11
Еще бы было неплохо добавить функционал просмотра таблиц которые, например по оле получаем.
2. Илья (i132) 22.03.12 19:21
При получении таблицы по ОЛЕ трудно определить что это ТЗ именно из 1Сv8.
ОлеТаблицу из 1С8 легко преобразовать в простую ТЗ если там нет объектов (или GUID совпадают, и таблица не слишком большая):

ЗапросОЛЕ=ОбъектПодключения.NewObject("Запрос");
ЗапросОЛЕ.Текст=ТекстЗаполнения;
ТЗЭтойБазы = ЗначениеИзСтрокиВнутр(ЗначениеВстрокуВнутр(ЗапросОЛЕ.Выполнить().Выгрузить()));
3. Роман Хусяинов (rom-x) 31.03.12 19:13
По моему не хватает кнопки вывода на печать таблицы, чтобы посмотреть и сохранить например в xls. Просвятите почему список значений нельзя как и тз вывести?
4. Илья (i132) 02.04.12 10:58
(3) список пока не попадался под руку, обязательно сделаю.
Красивую печатную форму можно получить по кнопке СКД. для сохранения в xls надо дать команнду сохранить как, для меня это быстрее, чем писать кнопку сохранения.
5. Илья (i132) 13.04.12 18:23
(3) спасибо за совет про список значений, вывод списка сделал через преобразование к ТЗ.
Вывод напрямую в таблично поле не удобен тем, что метод СоздатьКолонки() создает только одну колонку Значение, а остальные колонки: Представление,Отметка и Картинка надо добавлять програмно, кроме того в моей версии 1с 8.2.14.540 баг: при изменнии отметки меняется значение на Истину или ложь.

-сохранение в xls может быть удобным - в отдаленных планах.
6. Сергей Ожерельев (Поручик) 14.04.12 21:33
(0) http://infostart.ru/public/125020/
>>>> как определить что это табчасть -напишите в комментариях к http://infostart.ru/public/116645/
Может, это поможет?

Метаданные.НайтиПоТипу(ЭлементыФормы.Какое_то_табличное_поле.Значение).Родитель() <> Неопределено

или так, надёжнее
Метаданные.Документы[Метаданные.НайтиПоТипу(ТипЗнч(ЭлементыФормы.Какое_то_табличное_поле.Значение)).Родитель().Имя] <> Неопределено
7. Илья (i132) 16.04.12 10:44
(6) спасибо, за совет как взять метаданные, таб часть может быть не только у документа.
Правильный ответ:

МДТабчасти = Метаданные.НайтиПоТипу(Тип(ТекТаблица));
ЭтоТабчасть = (МДТабчасти.Родитель().ТабличныеЧасти.Найти(МДТабчасти.Имя)=МДТабчасти)
Поручик; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа