gifts2017

VisualForms1c. 3D диаграммы на основе запросов, без открытия 1c

Опубликовал Максим (MaxDamage) в раздел Программирование - Работа с интерфейсом

Многие руководители, сотрудники, не имеют желания, умения, времени работать непосредственно в 1с. Однако, часто им необходимо оперативно отслеживать один, либо несколько ключевых показателей. Данная программа позволяет подключаться к базам 1с и отображать, отобранные с помощью запроса данные, в виде диаграмм.

Версия 1.0

Состав архива.

PieChart.dll - компонента построения 3х-мерных диаграм.

Свободно распространяется. Взято с http://www.codeproject.com/KB/graphics/julijanpiechart.aspx

Пользователи -> Каталог файлов с настройками пользователей.

Программа ищет в каталоге файл с windows-именем текущего пользователя и загружает настройки оттуда.
Если файла не существует, берется файл настроек по умолчанию -> default

Пример файла настроек пользователя:


УчетФинансов|File="D:\_Work\1c\УчетФинансов"; Usr = Вася;|V82
skif|Srvr = server; Ref = skif; Usr = Пользователь; Pwd = Пароль;|V81|ВЫБРАТЬ Константы.ЗавершитьРаботуПользователей КАК ЗавершитьРаботу ИЗ Константы КАК Константы


ОстатокНаличныхДенег
РасходыПоСтатьямЗатрат
КрупныеРасходы


Раздел содержит список бас 1с, к которым нужно подключиться для получения данных диаграмм.
Параметры:
1) Идентификатор БД.
2) параметры соединения с БД.
3) Тип БД. (V81,V82)
4) Текст запроса закрытия программы. Опциональный параметр. Запрос должен возвращать булево значение("ЗавершитьРаботу").
   Программа с интервалом в 1 минуту выполняет запрос, если результат запроса = Истина, прекращает работу.   
Параметры, разделяются |

<Отчеты> Раздел содержит список диаграмм доступных пользователю.


Отчеты -> Каталог файлов с настройками диаграмм.

Пример файла отчета:
Количество заказов по направлениям
skif
10


ВЫБРАТЬ
   СУММА(ВЫБОР КОГДА Заказ.Направление = ЗНАЧЕНИЕ(Перечисление.ТипыНаправлений.Розница) И Заказ.Проект.ЦентрЗатрат.Наименование ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КРозница,
   СУММА(ВЫБОР КОГДА Заказ.Направление = ЗНАЧЕНИЕ(Перечисление.ТипыНаправлений.Корпорация) И Заказ.Проект.ЦентрЗатрат.Наименование ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК ККорпорация,
   СУММА(ВЫБОР КОГДА Заказ.Направление = ЗНАЧЕНИЕ(Перечисление.ТипыНаправлений.Дилеры) И Заказ.Проект.ЦентрЗатрат.Наименование ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК КДилеры
        ИЗ Документ.Заказ КАК Заказ ГДЕ Заказ.Проведен = ИСТИНА И Заказ.Дата МЕЖДУ &ДатаС И &ДатаПо И Заказ.ПЛ >= &ПЛ И Заказ.Сумма >= &Сумма И Заказчик В Иерархии (&Заказчик)


Да

Да

Заказчик|Контрагент|Объект|СправочникМенеджер.Контрагенты.НайтиПоКоду.Г001|Скрытый
ДатаС|Начало периода|Дата|НачалоТекущегоГода
ДатаПо|Конец периода|Дата|12.08.2011
ПЛ|Количество пластика >|Число|3
Сумма|Сумма заказа >|Число|1000,15


КДилеры|К-во Дилеры|Число|RGB.10.232.90
ККорпорация|К-во Корпорация|Число|Красный
КРозница|К-во Розница|Число|Белый


Выводимое имя диаграммы.

ИдентификаторБД

Интервал обновления данного отчета в минутах.

Текст запроса. В поля диаграммы выбираются только первая запись выборки. Поля выборки долны быть числовыми значениями.

Отображать процентное соотношение величин. (Да/Нет)

Отображать общую сумму. (Да/Нет)

Раздел описания параметров запроса.
1) Идентификатор параметра.
2) Выводимое имя параметра.
3) Тип параметра. (Дата/Число/Строка/Объект)
4) Значение параметра.
   Для типа Дата можно указать конкретную дату, либо предопределенное значение.
    (НачалоТекущегоГода,НачалоТекущегоМесяца,НачалоТекущегоДня,КонецТекущегоГода,КонецТекущегоМесяца,КонецТекущегоДня).
   Для типа объект можно указать ссылку на элемент сравочника, либо документа,
        синтаксис (СправочникМенеджер.ИмяСправочника.НайтиПоКоду.Код,СправочникМенеджер.ИмяСправочника.НайтиПоНаименованию.Наименование,ДокументМенеджер.ИмяДокумент.НайтиПоНомеру.Номер)
5) Флаг отображения параметра для пользователя. Опциональный параметр. (Скрытый/-)     

Раздел описания возвращаемых значений.
1) Идентификатор значения.
2) Отображаемое имя значения.
3) Тип значение. в данный момент только - (Число).
4) Цвет значения на диаграмме. Один из предопределенных цветов (Белый,Зеленый,Желтый,Коричневый,Красный,Оранжевый,Серый,Розовый,Синий,Фиолетовый),
   либо произвольный цвет по RGB, синтаксис RGB.Красный.Зеленый.Синий

 

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

Для работы программы необходим MS FrameWork 4.0

 

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

Наименование Файл Версия Размер Кол. Скачив.
VisualForms1c Версия 1.0
.zip 132,03Kb
09.07.13
36
.zip 132,03Kb 36 Скачать
Исходные файлы
.zip 25,37Kb
09.07.13
8
.zip 25,37Kb 8 Скачать

См. также

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

Комментарии

1. Олег Шильников (72shou) 16.09.11 12:58
2. Ийон Тихий (cool.vlad4) 16.09.11 13:04
Исходники есть, нету? А какие фичи framework 4 используются?
3. Сергей Рудаков (fishca) 16.09.11 13:05
(2) http://www.codeproject.com/KB/graphics/julijanpiechart.aspx - здесь вроде как должны лежать
http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=7321 - структура проекта
Прикрепленные файлы:
4. Ийон Тихий (cool.vlad4) 16.09.11 13:06
(3) Это компонент, который он использует в своей программе, а я имею ввиду именно его программу? а хотя какая разница...
5. Максим (MaxDamage) 16.09.11 13:06
(2) Да по сути никакие. По непонятной причине VS2010 не "видит" установленный Framework 2.0.
6. Ийон Тихий (cool.vlad4) 16.09.11 13:08
(5) Как это не видит? Ошибки при компиляции или что-то другое?
7. Максим (MaxDamage) 16.09.11 13:10
(5) в свойствах проекта в Требуемой версии .NET Framework, не появляется значение Framework 2.0, хотя он сам установлен и Framework 2.0. SDK тоже.
9. Максим (MaxDamage) 16.09.11 13:19
(8) 3.5 не ставил, спасибо за ссылку, попробую поставить, может правда заработает
10. Serj (Serj1C) 16.09.11 13:37
как в итоге данные из 1С дергаются? COM объектом?
11. Максим (MaxDamage) 16.09.11 13:39
12. Дмитрий Шерстобитов (DitriX) 16.09.11 16:05
Какая версия БД
Ошибка при выполнении операции с информационной базой
Несовместимая версия файла базы данных 'c:\УчетФинансов\1Cv8.1CD'
по причине:
Несовместимая версия файла базы данных 'c:\УчетФинансов\1Cv8.1CD'
У меня стоит 8.2.13 и не может конвертнуть. 8.1 у меня нету
13. Дмитрий Шерстобитов (DitriX) 16.09.11 16:39
Понял, работает только с 8.2.14, пока не конвертнул из 8.2.13 в 14, не могло подключиться...
А в 13 будет работать?

Можно ли менять вид и тип диаграмм? Размеры, делать окно "поверх всех".
Было бы очень кульно :)

Ну и хотелось бы совсем обнаглеть и попросить исходники, и хоть частичное наставление о том "С чего начать, какой компилятор поставить", думаю если это сделать отдельной публикацией, то она поможет многим :)

И еще раз - спасибо...
14. Денис Яковлев (iceflash) 17.09.11 10:01
Присоединяюсь. Исходники были бы очень кстати.
15. Ийон Тихий (cool.vlad4) 17.09.11 10:15
(13)
хоть частичное наставление о том "С чего начать, какой компилятор поставить"
вам чисто только для диаграмм из статьи? если, да, то думаю не стоит...иначе учите c#, и dotnet, ставте себе Visual Studio 2010 Express или SharpDevelop
(14) да их можно любым dotnet декомпилятором посмотреть...
а так не специалист, конечно, в Excel - но появилась мысль, а разве нельзя в нем что-то подобное делать? через макросы...
16. Ийон Тихий (cool.vlad4) 17.09.11 10:18
Да и еще не знаю, насколько кошерно параметры подключения хранить в открытом виде...
17. Александр Крынецкий (echo77) 17.09.11 11:20
да уж, пароль хранить в открытом виде - страшновато.
У нас для тех руководителей, которые:
не имеют желания, умения, времени

приходится делать рабочие столы в 1С, запускающиеся при входе в базу.
18. Дмитрий Шерстобитов (DitriX) 17.09.11 16:40
(15) В экселе это вообще мелочь жизни, там если база файловая, то через 1с, а если на MSSQL то можно напрямую делать запросы в SQL что на много быстрее и т.д.
Но вот фишка вся - работать, не запуская эксель или что то такого же масштаба.

Т.е. я пришел, запустил, открылось 10 графиков я глянул на них, и я уже знаю, чем я сегодня буду занят.
И пусть они обновляются раз в пол часа, а если например по остаткам появляется минус, то оно становится поверх всех окон, и я все вижу в реальном времени.
Можно конечно это все и в 1с делать, но это надо отвлекаться и в 99% случаев, это пустая трата времени.

А вообще я тут видел на Flex'e обработачку, вот от нее бы исходник :)
19. Максим (MaxDamage) 18.09.11 07:19
(13) Тестовая база в 8.2.14, вероятно ошибки связана с этим. Должно работать с любой версией 8.1 и 8.2.
(16)(17) Делал для своей организации следующим образом, сама программа и настройки хранятся на сетевом диске, доступа простым пользователям на него нет, программа запускается от имени администратора, пользователь под которым происходит соединение к БД не имеет права заходить в базу в пользовательском режиме. Хотя конечно можно подумать о шифровании.
(13) Можно ли менять вид и тип диаграмм? Размеры, делать окно "поверх всех".
Вид и тип диаграмм и размеры, пока менять нельзя. Вообще, есть желание сделать несколько своих классов различных диаграмм и графиков, если это будет востребовано. Окно диаграммы и так по умолчанию находиться поверх окон, можно переключить его в режим обычного окна, нажав "^"
(13)(14) ок, завтра выложу исходники.
20. Максим (MaxDamage) 19.09.11 06:50
21. Дмитрий Шерстобитов (DitriX) 19.09.11 18:02
Спасибо, если что то будет не понятно, можно обращаться за консультациями? :)
Напишите еще один топик - обучение ламера :)
22. Рома Джин (jjinn) 21.09.11 10:25
23. Брест Беларусь (zhleonid8) 21.09.11 14:46
24. Сергей Карташев (Elisy) 21.09.11 15:39
В .Net framework 4.0 вошли штатные диаграммы через элемент управления Chart Control. Их функционал очень богатый. Вместе с 3d Pie Chart их около 200 видов:
Обзор элемента управления построения диаграмм Microsoft Chart
25. Максим (MaxDamage) 22.09.11 05:13
(24) спасибо за ссылку, прямо то что надо :)
26. Яков Коган (Yashazz) 22.09.11 21:56
Подобные публикации - зло. Тех, кто не умеет - учить. Кто не хочет - загонять. Ибо это - костыли. Так можно купить дорогущую конфу, нанять крутейших 1С-спецов, и при этом продолжать сидеть в екселе мастырить.
27. Ийон Тихий (cool.vlad4) 22.09.11 22:13
(26) Не скажи. Просто публикация тебя не убедила, а смысл достаточно простой - один из способов получения(из 1С) и представления данных . Конечно, с точки зрения C# данные возможности это как сейчас 1С семерка. Но практическое применение - на самом деле есть. В вебе в том числе.
28. Ийон Тихий (cool.vlad4) 22.09.11 22:18
(26) А на ексель я ненавязчиво намекал, потому что в нем данную задачи решить быстрее и проще. Но можно развить данную тему, чего автору и пожелаю.
29. Stepan Shipitsyn (Stepan_1c) 27.09.11 16:33
30. Олег Шалимов (CaSH_2004) 16.11.11 11:22
А не подскажите это решение поможет моей проблеме изложенной в посте ссылка
31. Ийон Тихий (cool.vlad4) 16.11.11 11:30
(30) исправь ссылку http://forum.infostart.ru/forum26/topic46314/ - в твоей id сессии и по ней ничего нельзя сделать
32. Олег Шалимов (CaSH_2004) 16.11.11 12:38
(31)С удовольствием если пойму суть, по ней нельзя зайти? я неправильно указал, при чем тут мой ID?
на всякий случай вставил твою ссылку (спасибо) - а чем же соль?
33. Ийон Тихий (cool.vlad4) 16.11.11 12:41
(32) ну таки ты уже все исправил, а нельзя было по этой ссылке ничего написать - все время была ошибка - ваша сессия истекла, вот причем sessionID, Он устарел)))...
35. Михаил Васечькин (panchenko_ma) 14.01.15 10:55
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа