Отчет по таблице значений

Опубликовал Селюкин Александр (sau_nsk) в раздел Программирование - Практика программирования

   Инструмент для различных манипуляций с таблицей значений: импорт/экспорт в различных популярных форматах, редактирование, формирование отчетов.
   Консоль запросов в сочетании с возможностями дополнительной обработки полученной таблицы значений и режимом сохранения настроек позволяют применять обработку программистами  и здравомыслящими конечными пользователями в режиме "Предприятие" как универсальный генератор отчетов на базе выборки, не прибегая к программированию.

НАЗВАНИЕ:
Внешняя обработка для платформы 1С:Предприятие 7.7
"Отчет по таблице значений" v04-12.

ИСХОДНАЯ ИДЕЯ:
Для получения отчета ("Таблица") скармливать одному и тому же
внешнему отчету (ОтчетПоТабЗн.ert) различные исходные данные в
виде таблицы значений (ТЗ) в зависимости от задачи, и тем самым
избавить себя от части рутины, связанной с программированием
формирования и вывода таблицы отчета.
Однако, постепенно функционал обработки существенно расширился.

ВОЗМОЖНОСТИ:
1. Формирование динамического отчета (с переменными колонками)
по таблице значений. Отчет может быть простой (вывод ТЗ как есть) или с вложенными группировками.  Группируемые и суммируемые колонки (1 или несколько уровней) задаются непосредственно в обработке
перед формированием отчета (вкладка "Произвольные группировки").
Исходная таблица значений может быть передана при вызове обработки в
качестве параметра открытия в конструкции типа
ОткрытьФорму("Отчет",ТабЗнСтрокиОтчета,
 КаталогИБ()+"ExtForms\ОтчетПоТабЗн.ert");
Для отчета с группировками при вызове следует передавать детальную ТЗ,
а затем, манипулируя контекстом открытой формы, установить значения заголовка, группируемых и суммируемых колонок и т.д. (см. соответствующий пример ниже).
2. Импорт ТЗ из *.dbf файла (xBase) (есть выбор DOS/Windows кодировки).
3. Импорт ТЗ из *.xls файла (Excel) (есть выбор листа книги).
4. Экспорт ТЗ в *.xml файл (агрегатные типы данных преобразуются к базовым).
5. Импорт ТЗ из *.xml файла в формате, выгружаемом данной обработкой,
который содержит описание структуры данных (поддерживаются только
базовые типы данных).
6. Импорт ТЗ из *.txt файла (есть выбор DOS/Windows кодировки,
разделителя полей).
7. Получение ТЗ из запроса 1С, сформированного из данной обработки
(вкладка "Консоль запросов", операция "Выполнить запрос").
Есть возможность ссылаться на списочные условия типа
Условие(ПеременнаяЗапроса В СписокЗначений) для агрегатных типов данных,
подробнее см. всплывающие подсказки к диалогам.
8. Экспорт ТЗ в *.dbf файл (есть выбор DOS/Windows кодировки).
9. Экспорт ТЗ в *.xls файл.
10. Экспорт ТЗ в *.txt файл (есть выбор DOS/Windows кодировки,
разделителя полей).
11. Редактирование ячеек ТЗ, добавление/удаление строк и колонок,
замена значения в колонке по условию, сортировка по указанным колонкам,
редактирование параметров колонок.
12. Собственный механизм сохранения/восстановления настроек
(дополнительно к стандартному) посредством текстового файла
(позволяет объединять списки настроек из разных файлов).
13. Создание перекрестной таблицы по типу перекрестного запроса MS Access
или сводной таблицы Excel (вкладка "Перекрестная таблица").
Реализовано отдельной операцией, а также как
предварительное действие перед формированием отчета с группировками
(флажок на вкладке "Произвольные группировки").
Можно указывать несколько колонок со значениями.
14. Заполнение колонок по формуле на языке 1С (вычисляемые поля).
В формуле можно ссылаться на значения колонок ТЗ и свойства самой ТЗ.
В списке подстановок имеются шаблоны готовых формул, возвращающие
элементы справочника и документы как значения агрегатных типов.
15. Свертка ТЗ по указанным колонкам. Для числовых колонок при этом
возможно суммирование значений.
16. Сохранение ТЗ в текстовом файле служебного формата
и восстановление ее из такого файла (в режиме создания новой ТЗ или
добавления строк в существующую ТЗ по колонкам с совпадающими
идентификаторами) с сохранением значений агрегатных типов данных.

ПРИМЕРЫ ВНЕШНЕГО ВЫЗОВА:
ВОЗМОЖНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ:
НЕКОТОРЫЕ НЕОЧЕВИДНЫЕ ФИЧИ:
ГРУППИРОВКИ ПРОИЗВОЛЬНОЙ ВЛОЖЕННОСТИ:
См. в описании самой обработки

УСТАНОВКА:
Скопировать файлы *.ert, *.efd в КаталогИБ()+"ExtForms\" и затем
вызывать из меню "Сервис\ Дополнительные возможности" или
запускать непосредственно из меню "Файл\ Открыть". Может быть
использован и внешний вызов (см. примеры в описании самой обработки).

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

Наименование Файл Версия Размер
Отчет по таблице значений
.zip 80,16Kb
21.07.10
205
.zip 80,16Kb 205 Скачать

См. также

Комментарии
1. Селюкин Александр (sau_nsk) 39 21.07.10 15:01 Сейчас в теме
Обраба изначально проживала на "КЛУБ ПРОФЕССИОНАЛОВ 1С" по адресу http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3059 , но там что-то последнее время какие-то непонятные траблы с обновлениями разработок (файл обрезает при закачке), так что для пущей сохранности положил сюда.
2. Ёпрст (Ёпрст) 1017 21.07.10 16:08 Сейчас в теме
err: ЗначТекКол=ИсхТабЗн.ПолучитьЗначение(НомСтрИсхТабЗн,ИмяТекКол);
{C:\TEMP\RAR$DI00.844\ОТЧЕТПОТАБЗН.ERT(185)}: Номер за пределами значения!
3. Селюкин Александр (sau_nsk) 39 21.07.10 16:31 Сейчас в теме
Re 2. Ёпрст 21.07.2010 16:08
Ты был немногословен в описании, но я вроде догадался сам :-)
Пытаешься выполнить копирование текущей строки в пустой ТЗ. А нулевой строки нет - выдает ошибку (новую строку создает, но при попытке скопировать значения колонок из несуществующей строки - ругается).
Если пытаешься прогнать демо-пример на демо-бухии и ТЗ из запроса-примера про Основные средства - закомментируй там условия //, чтобы ТЗ не пустая была.
4. Алекс Маслюков (Alex_1066) 10.08.10 20:22 Сейчас в теме
Спасибо за очень интересную обработку. Есть вопрос не в тему (прошу прощения)... Такое впечатление, что код сгенерирован. Можно поделиться технологией, или кинуть ссылку на источник?
5. Алекс Маслюков (Alex_1066) 11.08.10 10:26 Сейчас в теме
А теперь по обработке... Лично мне не хватило типов в "Подборе значений в список" списка значений для условий запроса. Конкретно - типа "ВидыРасчетов". А также было бы здорово добавить в обработку Бухгалтерский запрос и можно его было бы вообще наверное совместить с "Консолью кода". Может я и загнул слегка... :)
6. Селюкин Александр (sau_nsk) 39 11.08.10 10:38 Сейчас в теме
Re 4. Alex_1066 10.08.2010 20:22
Дубоватый стиль кода без табуляций и пробелов обусловлен тем, что я тогда работал в разрешении 800*600 по причине плавающего зрения после операций на глазах - надо было, чтобы и буковки были побольше, и на экран влезали строчки в длину. Иногда вообще писал в ФАР-е с плагином Колорер, чтобы буквы побольше были, а потом копировал текст в модуль 1С. А потом дописывал в том же стиле уже для единообразия. :-) Из чужой обрабы ("Параметрический фильтр") заимствован рекурсивный вывод группировок произвольной вложенности - на источник вроде есть ссылка в модуле или в описании. Остальное, насколько помню - мое и набито врукопашную.
7. Селюкин Александр (sau_nsk) 39 11.08.10 10:48 Сейчас в теме
Re 5. Alex_1066 11.08.2010 10:26
Доработок обрабы в ближайшее время не планируется, поскольку с 7-ки я уже давно соскочил на 8-ку, и задачи по 7-ке возникают теперь редко. Можешь курочить и дописывать по своему усмотрению под свои потребности - я не против, я даже за :-) Где-то давно уже видел на Проклабе (в камментах к обрабе вроде даже упоминал там) визуальный конструктор запросов по регистрам накопления (в режиме Предприятия).
8. Konst P (pkv) 10.06.11 14:30 Сейчас в теме
Скачивал из-за xml-ки... но не загружает...
Для НомерУзла=1 По XMLУзел.КоличествоПодчиненных() Цикл
{E:\ОТЧЕТПОТАБЗН.ERT(2080)}: Значение не представляет агрегатный объект (КоличествоПодчиненных)
9. Селюкин Александр (sau_nsk) 39 28.10.11 07:03 Сейчас в теме
xml-ка загружается только в формате, выгруженном из этой же обрабы, за загрузку произвольного xml я не подписывался. Исторически, выгрузка-загрузка XML - это "чисто позырить": самому себе сделал условно-рабочий шаблон чтения/создания xml, по делу эту возможность ни разу не использовал :-)