gifts2017

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

Опубликовал Александр Венгер (venger) в раздел Программирование - Инструментарий

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

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

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

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

Требования такие же, как и у разработки «OLAP Анализ счёта» ( http://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» (http://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» (http://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));
    КонецЦикла;

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

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

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

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

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

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

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

Наименование Файл Версия Размер Кол. Скачив.
OLAP_ТЗ.zip
.zip 39,55Kb
21.12.12
41
.zip 39,55Kb 41 Скачать

См. также

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

Комментарии

1. Игорь Исхаков (Ish_2) 21.12.12 15:34
Где пропадал ?
А мы уже на 1с8 перешли..
2. Александр Венгер (venger) 21.12.12 16:04
(1) Та, работа, дом и т.п.
Вы не поверите сколько еще используют 7.7;-) Но одно другому не мешает, восемь тоже буит;-)
3. v_id (v_id) 21.12.12 21:46
А если офис старше 2003 как работать заставить?
4. Александр Капустин (kapustinag) 22.12.12 09:50
(2) venger,
Заголовок и начало прочитал, облизнулся уже, и тут увидел, что для 7.7. Если для 8 действительно будет - будет здорово. Посмотреть версию для 7.7 не могу, но плюс все-равно поставлю, в ожидании версии для 8.
5. Александр Венгер (venger) 22.12.12 12:14
(3) Можно и вообще без офиса, только поставить веб-компоненту Office, OWC11.EXE, ссылка в описании. Соответственно, попробуйте ее накатить, если стоит другой офис или вообще не стоит
6. Яков Коган (Yashazz) 23.12.12 20:17
(4) А что, СКД уже не хватает? Многие фишки СКД вполне позволяют говорить о ней как об R-ROLAP, и зачем изобретать велосипеды? Это вот на 7.7 да, тяжко.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа