Сводная таблица C#. По следам jcrosstab

03.09.07

Разработка - Разработка внешних компонент

Сводная таблица C#. По следам jcrosstab

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?]
Компонента + отчет для 1С 8.0
.1188825781 12,93Kb
99
99 Скачать бесплатно

Кто пользовался встроенной сводной таблицей в 1С8, тот сталкивался с проблемой сортировки значений типа дата в области строк/колонок. Я думаю, что 1С в скором времени это исправит. А вот 1С 7.7 и намека не содержит на сводную таблицу. Приходится пользоваться добрым ODBC+Excel. Это вселяет надежду в наши сердца.

Экспериментальная разработка...
ВНМАНИЕ!!! Компоненту нужно зарегистрировать след. образом (cmd -> выполняем в папке со 2-м фреймворком): regasm /codebase C:\путь\где\crosstab.dll

Дальше для энтузиастов:
Роясь в дебрях интернета, я очень много почерпнул сведений, что такое ОЛАП. Да как его импользовать в Excel. Но увы по таким сведениям я не смог толком разобраться как мне самому написать ОЛАП-подобную кросстаблицу. Пришлось обратить свои взоры на горизонты OpenSource. К моей величайшей радости, мне удалось найти желанное, но... Как всегда OpenSource он и есть такой. Нашел я хорошее решение jcrosstab (http://www.jcrosstab.org). Смело скачал разработку и ринулся в дебри сего творения. Пришлось упасть в пропасть open-java. Теперь виден свет в конце туннеля... :) Свершилось чудо и в конце 3-го дня я получил первый отчет на C#->OLE->1C8.

P.S. Планирую сюда прикрутить всяческие супер-математико-вероятностно-статистические анализы с выводом в 1С или html.
Может быть, получится еще и к 1С 7.7 культурно прицепить. Или WEB-сервис замутить на порте 777...
Ну, это уже как пойдет...

Как обычно желаю своему творению легкого пути в дебрях интернета.
Молю о пощаде со стороны разработчиков jcrosstab (http://www.jcrosstab.org). Да будет крепкая у них рука, да трезвый ум и получил я в награду не ихние тумаки, а надежду на завтра!!!
Да будет щедра рука и тугой кошелек спонсоров, которым придется по душе сие творение!!!

Пользуемся в 1С 8.0 [Скоро сделаю отчет и в 1С 7.7]:

  • Новый отчет -> Добавить форму -> Вставить ПолеHTML1
  • И в модуль формы вставить код ниже:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |  НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период, МЕСЯЦ) КАК Период,
                   |  ХозрасчетныйОбороты.Организация КАК Организация,
                   |  ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
                   |  ХозрасчетныйОбороты.Субконто2 КАК Субконто2,
                   |  ХозрасчетныйОбороты.Субконто3 КАК Субконто3,
                   |  ХозрасчетныйОбороты.КоличествоОборот КАК КоличествоОборот,
                   |  ХозрасчетныйОбороты.Регистратор.Контрагент КАК Контрагент,
                   |  ХозрасчетныйОбороты.Регистратор.ТипЦен КАК ТипЦен
                   |ИЗ
                   |  РегистрБухгалтерии.Хозрасчетный.Обороты(
                   |    ,
                   |    ,
                   |    Запись,
                   |    Счет В ИЕРАРХИИ
                   |      (ВЫБРАТЬ
                   |         Хозрасчетный.Ссылка КАК Ссылка
                   |       ИЗ
                   |         ПланСчетов.Хозрасчетный КАК Хозрасчетный
                   |       ГДЕ
                   |         Хозрасчетный.Код = ""281""),
                   |    ,
                   |    ,
                   |    ,
                   |    ) КАК ХозрасчетныйОбороты";
    Выборка = Запрос.Выполнить().Выгрузить();
	
    тбДанных = New COMОбъект("Crosstab.CrossDataTable");
    Для ннн = 0 По Выборка.Колонки.Количество() - 1 Цикл
        нКол = Выборка.Колонки[ннн];
        тбДанных.NewColumn(нКол.Имя);
    КонецЦикла;

    Для Каждого нСтр из Выборка Цикл
        Ряд = Новый Массив;
        Для нКол = 0 По Выборка.Колонки.Количество() - 1 Цикл
            Если (нСтр[нКол] = Null) или
                (ТипЗнч(нСтр[нКол]) = Неопределено) или
                (ТипЗнч(нСтр[нКол]) = Тип("Число")) или
                (ТипЗнч(нСтр[нКол]) = Тип("Дата")) или
                (ТипЗнч(нСтр[нКол]) = Тип("Строка")) или
                (ТипЗнч(нСтр[нКол]) = Тип("Булево"))
            Тогда
                Ряд.Добавить(нСтр[нКол]);
            Иначе
                Ряд.Добавить(Строка(нСтр[нКол]));
            КонецЕсли;
        КонецЦикла;
        тбДанных.NewRow(Ряд);
    КонецЦикла;
    Кросстаб = New COMОбъект("Crym69.Crosstab");
    Кроссбокс = New COMОбъект("Crosstab.Crosstable");
    Кроссбокс.addVerticalSliceByTableColumnName("Организация");
    Кроссбокс.setVerticalAxisTypeByName("Организация","string");
    Кроссбокс.addVerticalSliceByTableColumnName("Субконто1");
    Кроссбокс.setVerticalAxisTypeByName("Субконто1","string");
    Кроссбокс.addVerticalSliceByTableColumnName("ТипЦен");
    Кроссбокс.setVerticalAxisTypeByName("ТипЦен","string");
	
    Кроссбокс.addHorizontalSliceByTableColumnName("Период");
    Кроссбокс.setHorizontalAxisTypeByName("Период","DateTime");
    Кроссбокс.addHorizontalSliceByTableColumnName("Контрагент");
    Кроссбокс.setHorizontalAxisTypeByName("Контрагент","string");
	
    Кроссбокс.setDataRowsColumnByName("КоличествоОборот");
    //Кроссбокс.setVerticalAxisByTableColumnName("Период");
    //Кроссбокс.setHorizontalAxisByTableColumnName("Контрагент");
    Рез = Кроссбокс.getCrosstabResultSet(тбДанных);
    Вывод = New COMОбъект("Crosstab.DisplayConverter");
    Стр = Вывод.getHtmlTable(Рез);
    ХТМЛ = "<html><head><title>Test</title>"+
    "<style type=""text/css"">"+
    "body {
    |font-family : verdana, arial, helvetica, sans-serif;
    |font-size             : 8pt;
    |margin                : 0px;
    |background-repeat     : no-repeat;
    |background-position   : bottom left;
    |background-attachment : fixed;}
    |table {
    |cellspacing: 0px;
    |cellpadding: 0px;
    |background-color: silver;
    |font-size             : 8pt;
    |}
    |td {
    //|border-right:   black 1px solid;
    //|border-top:     black 1px solid;
    //|border-left:    black 1px solid;
    //|border-bottom:  black 1px solid;
    //|table-layout: auto;
    //|border: 1px solid gray;
    |background-color: white;
    |}
    |"+
    "</style>"+
    "</head>"+
    "<body>"+
    Стр
    +"</body></html>";

    ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(ХТМЛ);
КонецПроцедуры

С уважением Crym69

См. также

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    231839    1050    896    

993

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 руб.

29.10.2014    216145    651    526    

456

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", МагнитЭкспресс (быв.Казань-Экспресс), "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом", "Золотое Яблоко" в документы "Отчет комиссионера (агента) о продажах" и другие, работает в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

2400 руб.

12.08.2021    35031    332    67    

150

Маркетплейсы Загрузка и выгрузка в Excel Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» в 1С из Отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

4800 руб.

09.12.2020    24919    246    1    

108

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106068    307    173    

322

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    154983    376    377    

510
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Crym69 34 03.09.07 04:34 Сейчас в теме
3. JohnyDeath 302 03.09.07 10:45 Сейчас в теме
А не мог бы готовую обработку показать? Для какой-нибудь типовой конфигурации. А то из твоего описания программы я понял только что ты очень долго и мучительно копался в интернете, и что www.jcrosstab.org - это круто. ;)
Оставьте свое сообщение