Сводная таблица 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 1C:Бухгалтерия 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С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 5100 руб.

09.11.2016    239987    1100    906    

1031

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

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

5400 руб.

12.08.2021    37188    393    68    

168

Загрузка и выгрузка в 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.02.2025, версия 9.9 - 9.15)

16800 руб.

20.11.2015    158237    384    378    

516

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

Кто получает документы в формате XML из различных сервисов ЭДО (формат 820 приказ ФНС 31 мая 2019) и набивает их вручную в 1С, тот наверняка хотел бы автоматизировать этот процесс. Поддержка конфигураций: Бухгалтерии 3, УПП 1.3, 1С:КА 2.4 и 1С:КА 2.5, УТ10, УТ11.4 и УТ11.5. Для бухгалтерии 3 добавлена поддержка формат 5.03 от 23/01/2025

4320 руб.

11.02.2020    94192    314    157    

227

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

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

4800 руб.

23.01.2022    11577    61    0    

39

Загрузка и выгрузка в 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    217970    663    529    

457

SALE! 30%

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