[Разработчику] Любая таблица значений в OLAP


Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag’n’Drop и ещё много приятных вещей от MS.

Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой.

Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ.

Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

Требования такие же, как и у разработки «OLAP Анализ счёта» ( //infostart.ru/public/14964/ ) от JohnyDeath, т.е.:

1. Наличие предварительно загруженных внешних компонент 1С++ не ниже 2.5 (www.1cpp.ru) и FormEx (dorex.ru)
2. Определён и подключён класс «Общие.Форма.Привязка» (автор Дмитрий Ощепков ака DmitrO)
3. Установленные Office Web Components (входит в стандартную поставку Office, работа проверялась под Office XP RUS и Office 2003), отдельно компоненту без Office можно качнуть тут: http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76
4. Драйвер доступа к данным MS Access (находится в ODBC Data Source)
5. Опционально, наличие внешней обработки прогресс бара «Прогресс бар для 1С 77» (//infostart.ru/public/14061/ ) от Gmix

Порядок установки:
1. Скачать с сайта www.1cpp.ru ВК 1с++ версии не ниже 2.5 и скопировать её в каталог ИБ.
2. Скачать с сайта http://dorex.ru/?projects&formex&download ВК FormEx версии не ниже 2.0.5 и скопировать её в каталог ИБ.
3. Скопировать в каталог ИБ файлы «defcls.prm» и «Общее.Форма.Привязка.ert»
4. В глобальный модуль в процедуру ПриНачалеРаботыСистемы вставить следующие строки:
ЗагрузитьВнешнююКомпоненту(«1cpp.dll»);
ЗагрузитьВнешнююКомпоненту(«formex.dll»);
5. Если у вас установлен Office XP, то поменяйте значение переменной «ВерсияОфис» на «10» в OLAP_ТЗ.ert (по умолчанию считается, что у вас стоит Office 2003)
6. В каталог ExtForms каталога ИБ скопировать OLAP_ТЗ.ert.
7. Опционально, скачать «Прогресс бар для 1С 77» (//infostart.ru/public/14061/ ) от Gmix и положить в каталог ExtForms каталога ИБ ProgressBar7-7.ert.

 

Использование:
1. Пример кода:

//*******************************************
Функция СоздатьТЗ(ТЗ)
   
ТЗ.НоваяКолонка(«Дата»,«Дата»);
   
ТЗ.НоваяКолонка(«Значение»,«Число»);
   
ТЗ.НоваяКолонка(«Измерение1»,«Строка»);
   
ТЗ.НоваяКолонка(«Измерение2»,«Строка»);
   
ТЗ.НоваяКолонка(«Измерение3»,«Строка»);

    Для Сч = 1 По 100 Цикл
       
ТЗ.НоваяСтрока();
       
ТЗ.Дата = Дата(2012, 1 + Цел(Сч/10), 1);
       
ТЗ.Значение = Сч * 10;
       
ТЗ.Измерение1 = «Измерение1 — » + Строка(1 + Цел(Сч/10));
       
ТЗ.Измерение2 = «Измерение2 — » + Строка(1 + Цел(Сч/10));
       
ТЗ.Измерение3 = «Измерение3 — » + Строка(1 + Цел(Сч/10));
    КонецЦикла;

    Возврат ТЗ;
КонецФункции   
// СоздатьТЗ

//*******************************************
Процедура Сформировать()
   
ТЗ = СоздатьОбъект(«ТаблицаЗначений»);
   
ТЗ = СоздатьТЗ(ТЗ);

    спПарам = СоздатьОбъект(«СписокЗначений»);
   
спПарам.ДобавитьЗначение(ТЗ, «ТЗ»);
   
спПарам.ДобавитьЗначение(«Тест ТЗ», «Заг»);
   
спПарам.ДобавитьЗначение(«Тест ТЗ», «ЗагСтр»);

    ОткрытьФорму(«Обработка», спПарам, КаталогИБ()+«ExtFormsOLAP_ТЗ.ert»);
КонецПроцедуры 
// Сформировать

2. Если всё прошло успешно, то можете переходить на вкладки «Сводная таблица» или «диаграмма» и наслаждаться всеми прелестями Майкрософтовской сводной таблицы.

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

6 Comments

  1. Ish_2

    Где пропадал ?

    А мы уже на 1с8 перешли..

    Reply
  2. venger

    (1) Та, работа, дом и т.п.

    Вы не поверите сколько еще используют 7.7;-) Но одно другому не мешает, восемь тоже буит;-)

    Reply
  3. v_id

    А если офис старше 2003 как работать заставить?

    Reply
  4. kapustinag

    (2)

    Заголовок и начало прочитал, облизнулся уже, и тут увидел, что для 7.7. Если для 8 действительно будет — будет здорово. Посмотреть версию для 7.7 не могу, но плюс все-равно поставлю, в ожидании версии для 8.

    Reply
  5. venger

    (3) Можно и вообще без офиса, только поставить веб-компоненту Office, OWC11.EXE, ссылка в описании. Соответственно, попробуйте ее накатить, если стоит другой офис или вообще не стоит

    Reply
  6. Yashazz

    (4) А что, СКД уже не хватает? Многие фишки СКД вполне позволяют говорить о ней как об R-ROLAP, и зачем изобретать велосипеды? Это вот на 7.7 да, тяжко.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *