Сумматор

Пример операций со значениями из буфера обмена.

Вместо статьи:
Простой пример обработки для выполнения арифметических действий, использования различных функций с числовыми значениями и формулами из ячеек таблиц, текстовых файлов и т.п. через буфер обмена. Расширение возможностей [M] [M+] [M-].

  1. Выделяем нужные ячейки с числовыми значениями в печатных формах, значения в текстовых файлах и.т.п.
  2. Жмем Ctrl — C или щелчок правой клавиши «мыши» и <Запомнить>
  3. Открываем данную обработку
  4. Жмем Alt — С или [F5]

Отображается сумма по выбранным значениям и результат вычисления иных функции (максимум, минимум, среднее арифметическое).

Обработка открыта для дополнения необходимыми Вам функциями !

Дополнительно можно использовать для суммирования значений разделенных «;» и » » из текстового файла. Также осуществляется расчет текстовых формул из буфера вида «12+165/3» — [F9]

//далее читаем как статью ... модуль дополняем необходимыми функциями
Перем Сум,Итог,Миним,Максим,Среднее,Колво;
Процедура Вычислить(Как)
HTM=СоздатьОбъект("htmlfile");
//глянем в буфер обмена - Clipboard
Текст=СокрЛП(HTM.ParentWindow.ClipboardData.GetData("text"));
Если ПустаяСтрока(Текст)=1 Тогда
Предупреждение("Буфер обмена пуст !",3);Возврат;
КонецЕсли;
//расчет по формуле
Если Как>0 Тогда
Сум=Шаблон("["+Текст+"]");Возврат;
КонецЕсли;
Р=РазделительСтрок;
Текст=СтрЗаменить(Текст,СимволТабуляции,Р)+Р;//гориз.ячейки
Текст=СтрЗаменить(Текст,"'","");//убираем триады
Текст=СтрЗаменить(Текст,";",Р); //разделитель в тексте ";"
Текст=СтрЗаменить(Текст," ",Р); //разделитель в тексте " "
Кол=СтрКоличествоСтрок(Текст);//количество значений
Сум=0;//сумма значений
Колво=0;//реальное количество значений
Для i=1 По Кол Цикл
тЗ=СтрПолучитьСтроку(Текст,i);
Если ПустаяСтрока(тЗ)=0 Тогда
КолВо=Колво+1;
Зн=Число(тЗ);//получаем числовое значение
Сум=Сум+Зн;
Миним =?(i=1,Зн,Мин (Зн,Миним ));
Максим=?(i=1,Зн,Макс(Зн,Максим));
//...здесь может быть представлена ваша арифм.функция...среднеквадратичная дисперсия например
КонецЕсли;
КонецЦикла;
Среднее=Сум/Колво;
Итог=Итог+Сум;//дополняем итог
КонецПроцедуры;

5 Comments

  1. CheBurator

    Сорри, что немного не потеме — а как можно отловить какая область выделена в печатной форме?

    Reply
  2. artbear

    Прикольно 🙂 +1

    .

    А что за объект "htmlfile"?

    Код
    HTM=СоздатьОбъект("htmlfile");

    Показать полностью

    От ИЕ ? или еще что?

    .

    ЗЫ такой маленький код можно было здесь показать 🙂

    Reply
  3. German

    а калькулятор для чего придумали ? как в 7.7 так и 8 он это умеет

    Reply
  4. Delon

    (3) Знамо дело, но мож кому надо мошные функции и формулы вычислять,

    суммировать кучу значений из текста.

    (2) Да. От IE. Пож-та-код выложу.

    (1) Нет.

    Reply
  5. JohnyDeath

    (1) Че, а ты на TableDoc от Трапезникова Дмитрия (aka trad) посмотри: там много чего интересного есть, в том числе и метод «ПолучитьВыделение» http://www.1cpp.ru/forum/YaBB.pl?num=1177688915

    Reply

Leave a Comment

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