gifts2017

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

Опубликовал Селюкин Александр (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
204
.zip 80,16Kb 204 Скачать

См. также

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

Комментарии

1. Селюкин Александр (sau_nsk) 21.07.10 15:01
Обраба изначально проживала на "КЛУБ ПРОФЕССИОНАЛОВ 1С" по адресу http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3059 , но там что-то последнее время какие-то непонятные траблы с обновлениями разработок (файл обрезает при закачке), так что для пущей сохранности положил сюда.
2. Епрст (Ёпрст) 21.07.10 16:08
err: ЗначТекКол=ИсхТабЗн.ПолучитьЗначение(НомСтрИсхТабЗн,ИмяТекКол);
{C:\TEMP\RAR$DI00.844\ОТЧЕТПОТАБЗН.ERT(185)}: Номер за пределами значения!
3. Селюкин Александр (sau_nsk) 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) 11.08.10 10:38
Re 4. Alex_1066 10.08.2010 20:22
Дубоватый стиль кода без табуляций и пробелов обусловлен тем, что я тогда работал в разрешении 800*600 по причине плавающего зрения после операций на глазах - надо было, чтобы и буковки были побольше, и на экран влезали строчки в длину. Иногда вообще писал в ФАР-е с плагином Колорер, чтобы буквы побольше были, а потом копировал текст в модуль 1С. А потом дописывал в том же стиле уже для единообразия. :-) Из чужой обрабы ("Параметрический фильтр") заимствован рекурсивный вывод группировок произвольной вложенности - на источник вроде есть ссылка в модуле или в описании. Остальное, насколько помню - мое и набито врукопашную.
7. Селюкин Александр (sau_nsk) 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) 28.10.11 07:03
xml-ка загружается только в формате, выгруженном из этой же обрабы, за загрузку произвольного xml я не подписывался. Исторически, выгрузка-загрузка XML - это "чисто позырить": самому себе сделал условно-рабочий шаблон чтения/создания xml, по делу эту возможность ни разу не использовал :-)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа