gifts2017

Простой кнопочный 1С калькулятор с тестами производительности

Опубликовал Дмитрий Гусев (dg15000) в раздел Программирование - Практика программирования

Простой кнопочный калькулятор на языке 1С для 8.1 и 8.2. Работает со всеми арифметическими операторами, вычисляет процент, корень, факториал, и последовательность фибоначчи. Умеет измерять скорость (быстродействие) клиентского компьютера и конкретной базы 1С.
Используется собственная улучшенная реализация функции выполнить!

    Дамы и Господа, Братья и Сёстры. С гордостью представляю вашему вниманию свою оригинальную разработку, удобный кнопочный калькулятор, оформленный в виде отчёта. Интуитивно понятный интерфейс и большие кнопки позволят даже самым одарённым пользователям сразу насладиться работой с таким полезным бизнес-инструментом. Признаюсь честно, внешний вид и расположение кнопок содрал с стандартного калькулятора windows, но сейчас мой ПРОДУКТ намного превосходит своего примитивного родителя. Предлагаю ознакомиться с преимуществами калькулятора:

1) умеет вычислять N член последовательности фибоначчи -  работает реально быстро. В сети полно калькуляторов, перегруженных бесполезными функциями синусов, логарифмов, экспонент, переводом чисел с шестнадцатиричной системы в восьмеричную, но такой архинужной функции, как фибоначчи в них нет. В своё время главбух даже писал докладную генеральному, чтобы в базе 1с можна было считать фибоначчи.

2) Написан максимально просто, разобраться как оно работает сможет даже смышлёный старшеклассник. Не используется специфических функций 1С таких как выполнить или вычислить, алгоритм может быть без труда портирован на самые примитивные языки программирования. В моём коде вы не найдёте заумную "Польскую запись математических выражений", синтаксические деревья, состояния конечных автоматов, всё писалось методом тыка. Покурил, попил кофе, принял таблетку, начал писать. Бывает, что когда начинающего программиста берут во франч, ему в качестве тостового задания заставляют писать свой калькулятор. Не изобретайте велосипед, берите мой, я не против.ENJOY,GOOD LUCK.

3) В основной форме есть кнопочка TEST, при нажатии на неё вызывается особая процедура Кн22СмНажатие. Долгими зимними вечерами хочется иногда достать и померять 30 см линейкой, показать всем, кто сдесь главный, у кого больше. Процедура работает даже лучше чем вы подумали, открывается форма для тестов. Первый тест вычисляет число фибоначчи(36) по классическому рекурсивному алгоритму, в основном меряется скорость памяти и немножечко процессора. Версия конфигурации не имеет значения, 8.2 обычно на 20% быстрее чем 8.1  Второй тест создаёт 100 копий выбранного документа и проводит их на скорость последовательно(в транзакции, потом транзакция откатывается). Если в вашей конфигурации есть документ РеализацияТоваровИУслуг, то в тест подставится САМЫЙ ПОСЛЕДНИЙ документ, иначе выбирайте документ по своему вкусу. Меряется именно скорость проведения документов, т.е. если вы выбрали документ, который запрашивает много данных при проведении, то получить скорость БАЗЫ. Результаты тестов нормируется коэффициентами, у меня на моих серверах выбивают 10-18 баллов, а у ВАС?

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

Наименование Файл Версия Размер
1С Калькулятор для 8.2 53
.epf 18,60Kb
15.02.13
53
.epf 18,60Kb Скачать
1С Калькулятор для 8.1 4
.epf 16,73Kb
15.02.13
4
.epf 16,73Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Ярослав Радкевич (WKBAPKA) 17.02.13 14:01
а можно вопрос, калькулятор то зачем? я думал, там что то интересное, можно писать выражение, посмотрю как люди реализовали алгоритм вычисления... а калькулятор какой то не правильный оказался, примитивный... такой калькулятор напишет любой начинающий 1с-ник :)

запустил тест на быстродействие своего компа, уже 5 минут жду... тест на быстродействие документов пожалуй запускать не буду, от греха подальше...
2. Ярослав Радкевич (WKBAPKA) 17.02.13 14:03
наверное у меня не современный компьютер ;(
3. Дмитрий Гусев (dg15000) 18.02.13 20:54
Дорогой WKBAPKA, спасибо за проявленный интерес. Насчёт:
(1) Вот пример осмысленного калькулятора, на котором можно писать произвольное выражения:
s="";
Если Истина=ВвестиСтроку(s,"введи формулу") Тогда
Сообщить(Вычислить(s));
КонецЕсли;

Какая от него польза ? - 0.00
От моего польза побольше: пример того, как быстро, просто и надёжно реализовать вычислитель без особых заморочек. Да, там нет искусственного интеллекта, но в 1с ИИ только мешает, это бизнес-инструмент, а не игрушки.

(2) На моём попсовом ноутбуке Samsung R528 2010 года выпуска(
Celeron Dual Core T330 2GHz GB RAM) первый тест выполняется за 165 секунд. Не хочется Вас обижать, но задумайтесь об апгрейде, устаревшее на 1-2 года железо стоит копейки.
4. Ярослав Радкевич (WKBAPKA) 18.02.13 21:09
с железом у меня все нормально... по поводу вашего калькулятора я остался при своем мнении, не понимаю его назначения, да и сделать такой может любой... а с функцией Вычислить() я знаком получше вашего... скачал разработку только ради интереса посмотреть как реализовали алгоритм разбора выражений... оказалось, что калькулятор примитивный, такое я могу написать за пару часов безовсяких там высших образований!
5. Ярослав Радкевич (WKBAPKA) 18.02.13 21:11
я вообще даже не понимаю, о чем вы пишите... в 1С есть встроенный калькулятор, ваш то зачем, только для вычисления последовательности фибоначчи?
6. Ярослав Радкевич (WKBAPKA) 18.02.13 21:13
вот если бы вы написали на 1С калькулятор который рассчитывает выражения со скобками, хотя бы, подчеркну, с использованием той же функции Вычислить()... да еще и с переменными... а так простите, конечно... не понимаю