Собирающиеся стать программистом люди на каком либо языке программирования вынуждены осваивать специальность сначала с теории, затем с простейших примеров программирования. Одним из простейших примеров, можно сказать стартом в программировании во всех языках считается написание калькулятора. Для этого мы и решили написать обучающий урок о том как написать калькулятор на языке 1С.
 Разрабатывать будем простейший калькулятор с простыми арифметическими функциями: сложение, вычитание, умножение, деление. В калькуляторе не учтены более сложные операции как: корень, проценты, мемори. При желании вы можете самостоятельно усовершенствовать наш пример.
 Любое задание по программированию начинается с плана разработки. Составьте для себя такой план. Представьте, как бы вы писали калькулятор? Какой нужен алгоритм действий? Какие понадобятся инструменты для воспроизведения той или иной операции даже пока без перевода их на программный язык. Ваши чисто интуитивные замыслы.

Задание: Калькулятор для 1С 8.2, обычное приложение.

"Фишки" задания:

1. Табло калькулятора должно быть строкой, потому что именно к строке можно приписывать символы.
2. У калькулятора должен быть некий буфер (место хранения) первого числа, для того чтобы после ввода в табло калькулятора второго числа можно было извлечь из буфера первое и провести с ним арифметические операции.
3. Любой арифметической операции нужно присваивать значение переменной, затем чтобы при нажатии на "равно" программа понимала какую операцию ей следует выполнить: отнимать,  делить или умножать.

Практическое выполнение:

1. В конфигураторе создаем внешнюю обработку через меню Файл - Новый - Внешняя обработка.
2. Создаем форму обработки. Просто создаем пустую форму и жмем Готово.
3. Добавляем следующие реквизиты в обработку
а) табло калькулятора - тип - строка, длила - 15
б) операция - произвольный
в) буфер - тип - число, длина -10, точность - 2.
Зачем нужны эти реквизиты станет понятно чуть позже.


4. Добавляем на форму обработки элементы: кнопки, поле ввода. Кнопки, которые можно добавить в форму расположены внизу конфигуратора на панели управления "Элементы управления". Необходимо добавить такие элементы:
- Строка названием "Табло калькулятора". Расположите ее в самом верху формы.
- Цифирные кнопки от 1 до 9 плюс кнопка 0. А также кнопки обозначающие арифметические операции: сложение, умножение, разность, деление.
Кнопки с цифрами назовите: Цифра1, Цифра2... Цифра0.
Кнопки арифметических операций: Сложение, Умножение, Разность, Деление.
Чтобы вместо названий кнопок на форме отображались цифры и символы арифметических операций в свойстве каждой кнопки пропишите в поле "Заголовок" соответствующие цифры и символы операций: "1","2","3",... "*","-".
Расположение цифирных и арифметических кнопок на форме не принципиально. Можете расположить их в каком угодно порядке и месте.
5. Создаем обработчик нажатия на цифры. Становимся на кнопку "Цифра1", открываем ее свойство и в самом конце находим список возможных событий для данной кнопки. Доступно всего одно событие "Нажатие" и оно пока пустое. Нажимаем на увеличительное стекло и модуле обработки автоматически появляется код, который сгенерировала программа. Мы только что создали заготовку для процедуру, которая будет выполнятся при нажатии на кнопку "Цифра1".

Пишем код:

Процедура Цифра1Нажатие(Элемент)

ВыводЦифры1 = 1;
    ТаблоКалькулятора = ТаблоКалькулятора + Лев(ВыводЦифры1, 9);
    ТаблоКалькулятора = Число(Прав(ТаблоКалькулятора,10));

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

Комментарии к коду: а) Говорим что кнопка "Цифра1" - это цифра 1. б) Говорим, что табло калькулятора работает по принципу добавления символа к предыдущему символу (слева) в) Преобразуем вводимые в строку символы в число. Для остальных девяти цифр создаем точно такие же процедуры с аналогичным кодом. Последней кнопкой на форме калькулятора будет кнопка "Очистить" [C]. Принцип у нее простой - пишет ноль в табло калькулятора. Т.е. обнуляет табло.

6. Арифметические операции. Создаем для каждой кнопки обозначающей арифметическую операцию процедуры нажатия. Точно так же как мы уже создавали для кнопок обозначающих цифры. В коде каждой кнопки пишем код:

Процедура СложениеНажатие(Элемент)
    Буфер = Число(ТаблоКалькулятора);
    ТаблоКалькулятора = "";
    Операция = "Сложение";
КонецПроцедуры

Комментарии к коду: а) реквизиту формы "Буфер" передаем текущее значение табло калькулятора. Буфер запоминает и хранит данную информацию б) мы обнуляем табло калькулятора, т.е. подготавливаем его для ввода новых цифр в) реквизиту формы "Операция"  присваиваем текстовую переменную "Сложение". Аналогичные действия и код прописываем для остальных арифметических операций.
7. Вывод результата. В обычном калькуляторе результат арифметических операций выводится после нажатия по кнопке "=". Пропишем в нашем калькуляторе такую же логику. Для этого создаем процедуру нажатия по кнопке "равно" и помещаем во внутрь процедуры следующий код:

Процедура РавноНажатие(Элемент)
    Если Операция = "Сложение" Тогда
        ТаблоКалькулятора = Буфер + Число(ТаблоКалькулятора);
    ИначеЕсли Операция = "Вычитание" Тогда
        ТаблоКалькулятора = Буфер - Число(ТаблоКалькулятора);
    ИначеЕсли Операция = "Деление" Тогда
        ТаблоКалькулятора = Буфер / Число(ТаблоКалькулятора);
    ИначеЕсли Операция = "Умножение" Тогда
        ТаблоКалькулятора = Буфер * Число(ТаблоКалькулятора);
    КонецЕсли;
КонецПроцедуры

Комментарии к коду: а) для определения вида арифметической операции мы обращаемся к оператору Если. Оператор Если проверяет совпадает ли текст, обозначающий арифметическую операцию с присвоенным реквизиту "Операция" текстовой переменной из пункта 5. Если совпадение есть, выполняется именно эта операция.
Калькулятор готов.
Данный метод создания калькулятора для 1С не является эталонным или шаблонным. На базе нашего калькулятора вы можете создать свою обработку со своими алгоритмами и кодами.

 Ниже ссылка на готовую обработку с полным примером кода калькулятора.

Наши проекты | Софт | Услуги | ПрограммированиеАренда сервера | FAQ

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

© 2024 / ЕРП ПРОЕКТ / Server EU / Versia-Lux