Кокпит для 1С Предприятие 8.2 - 7 Ноября 2013 - Профессиональные решения для 1С 8.2
      Профессиональные решения для 1С 8.2 Суббота, 21.01.2017, 16:20
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поделиться ссылкой


Главная » 2013 » Ноябрь » 7 » Кокпит для 1С Предприятие 8.2
21:27
Кокпит для 1С Предприятие 8.2
Не знаю многие ли пользуются ли этим сейчас, но некоторое время назад было модным добавлять в программу кокпиты. То есть графически отрисованную аналоговую приборную панель, которая может, в принципе, иметь произвольный вид по желанию пользователя. Как правило на кокпиты выводятся ключевые показатели работы предприятия, типа процента выполнения плана по прибыли, или что-нибудь в этом роде. Предлагаю вашему вниманию обработку, которая использует приложение CockpitPicture.exe, написанное на Visual Basic в ознакомительных целях. Она попроще, чем полноценная внешняя компонента, поэтому функционал ее достаточно скромный, но подход к решению задачи мне кажется интересным.
Обработка 1С просто передает  параметры этому приложению и в ответ получает сформированную картинку, которую выводит на форму. В командную строку можно поместить следующие параметры через пробел: имя файла, значение показателя, максимум шкалы, минимальный угол стрелки, максимальный угол стрелки, радиус панели и радиус центрального кружка. В примере показаны только передача только первых 3-х параметров, остальные установлены по умолчанию. Обработка ожидания используется, чтобы дать время на формирование картинки и затем открыть файл.
 
Код обработки выглядит весьма просто:

Перем ИмяФ;
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Кат=КаталогВременныхФайлов();
    ИмяФ=ПолучитьИмяВременногоФайла();
    ИмяФ2=СтрЗаменить(ИмяФ," ","~");
    дд1=ЭтотОбъект.ПолучитьМакет("Приложение");
    дд1.Записать(Кат+"CockpitPicture.exe");
    ЗапуститьПриложение(Кат+"CockpitPicture.exe"+" "+ИмяФ2+" "+Формат(Значение,"ЧЦ=10; ЧДЦ=0; ЧН=0")+" "+Формат(МаксимумШкалы,"ЧЦ=10; ЧДЦ=0; ЧН=0"));
    ПодключитьОбработчикОжидания("ПоказатьКартинку",1);
КонецПроцедуры
Процедура ПриОткрытии()
    Значение=55;
    МаксимумШкалы=100;
    КнопкаВыполнитьНажатие(Неопределено);
КонецПроцедуры
Процедура ПоказатьКартинку()
    Для Сч=1 по 100    Цикл
        Попытка
            ДД=Новый ДвоичныеДанные(ИмяФ);
            Прервать;
        Исключение
        КонецПопытки;
    КонецЦикла;
    ТолькоИмя=СтрЗаменить(ИмяФ,КаталогВременныхФайлов(),"");
    УдалитьФайлы(КаталогВременныхФайлов(),ТолькоИмя);
    Картинка=Новый Картинка(ДД);
    ЭтаФорма.ЭлементыФормы.ПолеКартинки1.Картинка=Картинка;
    ОтключитьОбработчикОжидания("ПоказатьКартинку");
КонецПроцедуры
 
 
Код 1С добавлен на сайт при помощи оригинальной обработки
 
Обработку можно скачать в каталоге файлов Кокпит.epf
Просмотров: 665 | Добавил: Programmer1C | Рейтинг: 0.0/0
Всего комментариев: 1
1  
Для вывода кокпита можно оптимизировать код следующим образом. Вместо обработки ожидания можно применить задержку в цикле, к  примеру на 3
секунды. В этом случае код выглядит более компактно и структурно.

Код
Перем ИмяФ;

Процедура   

КнопкаВыполнитьНажатие(Кнопка)

   Кат=КаталогВременныхФайлов();

   ИмяФ=ПолучитьИмяВременногоФайла();

   ИмяФ2=СтрЗаменить(ИмяФ,"   

","~");

   дд1=ЭтотОбъект.ПолучитьМакет("Приложение");

   дд1.Записать(Кат+"CockpitPicture.exe");

   ЗапуститьПриложение(Кат+"CockpitPicture.exe"+"   

"+ИмяФ2+" "+Формат(Значение,"ЧЦ=10; ЧДЦ=0; ЧН=0")+"   

"+Формат(МаксимумШкалы,"ЧЦ=10; ЧДЦ=0;   

ЧН=0"));

   НовВремя=ТекущаяДата()+3;

   Пока   

ТекущаяДата()<НовВремя Цикл

   КонецЦикла;

   ДД=Новый   

ДвоичныеДанные(ИмяФ);

   ТолькоИмя=СтрЗаменить(ИмяФ,КаталогВременныхФайлов(),"");

   УдалитьФайлы(КаталогВременныхФайлов(),ТолькоИмя);

   Картинка=Новый   

Картинка(ДД);

   ЭтаФорма.ЭлементыФормы.ПолеКартинки1.Картинка=Картинка;

КонецПроцедуры

Процедура   

ПриОткрытии()

   Значение=55;

   МаксимумШкалы=100;

   КнопкаВыполнитьНажатие(Неопределено);

КонецПроцедуры

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Ноябрь 2013  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Создать сайт
  • Современная Ароматерапия
  • Биодобавки из США
  • Заработок для web-мастера

  • Рейтинг@Mail.ru
    www.professional-1c.ru © 2017
    Бесплатный хостинг uCoz