Как сделать калькулятор в 1с
Если Вы не собираетесь моделировать на 1С физические явления, то математические функции Вам понадобятся достаточно редко.
На всякий случай пройдемся кратко по ним. Чтобы не было скучно – параллельно сделаем простенький калькулятор 1С.
Краткое техническое задание на калькулятор 1С
Сделаем наш калькулятор 1С во внешней обработке – чтобы им можно было пользоваться в любой конфигурации.
На форме будет цифровое поле, куда пользователь может ввести число. Чтобы совершать над числом операции – нужны кнопки управления – плюс, минус, деление и т.п.
Если для операции нужны два числа – первое запомним и предложим ввести второе.
Результат будем выводить в то же числовое поле.
Создание калькулятора 1С
Форма и кнопки
Для пользователя калькулятор 1С в первую очередь состоит из формы. Создадим наш гений дизайнерской красоты.
Итак, создаем внешнюю обработку: Конфигуратор/Файл/Новый/Внешняя обработка.
Добавляем форму калькулятора 1С. На форме нам нужно разместить
- Поле ввода числа
- Кнопки с цифрами
- Кнопки управления.
Калькулятор 1С — толстый клиент
Ненужную нам кнопку «Выполнить», добавленную на форму по-умолчанию, удалим (выделить кнопку левой кнопкой мыши, кнопка DEL на клавиатуре).
Добавим поле на форму калькулятора 1С. В его свойствах установим тип данных – число.
Кнопки калькулятора 1С придется «рисовать» руками. Хорошо, что до нас придумали «копипаст». Главное – нарисовать первую кнопку. Чтобы долго не прицеливаться – в свойствах кнопки (правой кнопки мыши на кнопку) прямо укажем размер – ширину и высоту.
При нажатии пользователя на нашу кнопку в калькуляторе 1С должны выполняться действия. Назначим обработчик.
У кнопки калькулятора 1С есть имя. По-умолчанию кнопка называется «Кнопка1». Мы можем зашифровать в имени кнопки выполняемое ей действие, например «Умножить». Что нам это дает? Кнопок будет много – а обработчик события один. Это удобно.
Копировать кнопку калькулятора 1С можно
- Привычным Ctrl+C и Ctrl+V
- Перетаскивая ее мышью с зажатой клавишей Ctrl.
Что удобно – при копировании кнопки калькулятора 1С обработчик остается тот же. Все, что нужно делать ручками – указать текст, который отображается на кнопке.
Калькулятор 1С — тонкий клиент
В тонком клиенте калькулятора 1С кнопки создаются по-другому: сначала создается команда, потом она перетаскивается на форму и «превращается» в кнопку. Но нам это неудобно – нам же хочется, чтобы у разных кнопок был один и тот же обработчик.
Создадим команду, назовем «НажатиеКнопкиКоманды». Добавим обработчик.
Теперь добавим кнопку на калькулятор 1С. Обратите внимание – кнопку создаем для элемента Форма, а не в подчинении «Командной панели».
Войдем в свойтва кнопки (правой кнопкой мыши). Выберем команду в свойстве «Имя команды».
Ну а дальше – уже привычным копипастом – сделаем нужные нам кнопки калькулятора 1С. При копировании все также меняется имя кнопки (кроме нуля), и остается выбранная команда.
Чтобы навести красоту на форме калькулятора 1С:
- В кнопках укажем верный заголовок (*, :, =)
- Сгруппируем кнопки
o Добавим группу («Группа – обычная группа»)
o Исправим свойства кнопки (Группировка – горизонтальная, Отображение – Нет, Отображать заголовок – Нет)
Программируем действия кнопок калькулятора 1С
Создадим процедуру, которая будет выполнять операции – сложение, деление и т.п. Назовем ее, например, ВыполнитьОперацию(ИмяОперации). При нажатии пользователя на кнопку нам нужно определять имя операции (зашифрованное в имени кнопки) и вызывать нашу процедуру выполнения операции.
Мы сделали форму калькулятора 1С, на форме поле (с введенным числом) и кнопки, у каждой кнопки один и тот же обработчик. Нужно определить операцию, которую желает выполнить пользователь.
В толстом клиенте параметр обработчика события – элемент управления на форме (т.е. кнопка). Ее имя и есть нужная нам операция.
Пример программного кода:
В тонком клиенте в параметре указана команда. Однако у формы есть понятие «текущий элемент» и в момент нажатия на кнопку текущим элементом будет эта кнопка.
Как пользоваться калькулятором в 1С 8.3
Для вызова калькулятора зайдите в меню Сервис и настройки — Калькулятор или нажмите клавишу Ctrl+F2 .
Так выглядит калькулятор 1С.
Настройки количества знаков калькулятора
Для настройки количества знаков после запятой нажмите на значок стрелки и выберите пункт Настройка .
Введите число знаков. В поле ниже сразу отобразится пример:
Режимы калькулятора
У калькулятора 1С кроме обычного вида есть еще 2 режима работы. Режим выбирается по кнопке со стрелкой.
Микрокалькулятор — упрощенный вид, в котором кнопки калькулятора скрываются, значения вводятся с клавиатуры.
Формульный калькулятор — позволяет вводить формулы.
Кнопки памяти
С калькулятором 1С можно работать с экрана или с клавиатуры. В окне слева есть кнопки памяти — начинаются на M . Рассмотрим, для чего они нужны.
MS — сохраняет число в память. Например, наберем число и нажмем MS .
Это число сохранится в поле M = . Нажав на стрелку рядом с MS , мы увидим введенное значение.
Можно сохранить в памяти до 10 значений.
Чтобы сохранить число в другой ячейке памяти, введем число, нажмем на стрелку и выберем свободную строку.
Данная функция полезна, если конкретное число вам еще понадобится в работе.
MR — выводит на экран сохраненное в памяти число.
Вы можете выбрать любое из 10 сохраненных значений и выполнять с ними необходимые действия.
M+ — прибавляет отображаемое на экране число к значению в памяти. При этом число в памяти меняется. Если просто нажать M+ , то используется первое число. При нажатии на стрелку доступен выбор числа.
M- — вычитает отображаемое число из значения в памяти.
MC — очищает значения из памяти. По стрелке доступен выбор числа для удаления.
Применение калькулятора в отчетах
Калькулятор 1С удобно использовать в отчетах. Например, если хотите суммировать и вычитать цифры.
Для этого зайдите в меню Сервис и настройки — Показать M, M+, M- .
Кнопки появятся на панели сверху.
С помощью этих кнопок значения из отчетов переносятся в калькулятор.
Например, выделите число в отчете и нажмите кнопку M .
Значение попадет в память калькулятора.
Выделите другое число и нажмите M+ или M- .
Результат отобразится в калькуляторе.
В любой момент вы можете перенести полученное значение из памяти в поле ввода по кнопке MR .
Применение калькулятора в списках документов
Калькулятор 1С можно применять и в документах. Например, вы хотите просуммировать значения в списке.
Для этого выделите нужные строки и нажмите M+ .
Мы рассмотрели, как пользоваться калькулятором в 1С.
См. также:
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
1С:Бухгалтерия предприятия 3.0 — самая популярная бухгалтерская программа. Но у.Настроить электронный документооборот (ЭДО) в программе 1С Бухгалтерия 3.0 просто.У вас нет доступа на просмотр Чтобы получить доступ: Оформите.В 1С любой отчет, любую печатную форму можно настроить для.
(1 оценок, среднее: 5,00 из 5)
Решение: Пишем калькулятор на 1С
Собирающиеся стать программистом люди на каком либо языке программирования вынуждены осваивать специальность сначала с теории, затем с простейших примеров программирования. Одним из простейших примеров, можно сказать стартом в программировании во всех языках считается написание калькулятора. Для этого мы и решили написать обучающий урок о том как написать калькулятор на языке 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, 9);
ТаблоКалькулятора = Число(Прав(ТаблоКалькулятора,10));
Комментарии к коду: а) Говорим что кнопка «Цифра1» — это цифра 1. б) Говорим, что табло калькулятора работает по принципу добавления символа к предыдущему символу (слева) в) Преобразуем вводимые в строку символы в число. Для остальных девяти цифр создаем точно такие же процедуры с аналогичным кодом. Последней кнопкой на форме калькулятора будет кнопка «Очистить» [C]. Принцип у нее простой — пишет ноль в табло калькулятора. Т.е. обнуляет табло.
6. Арифметические операции. Создаем для каждой кнопки обозначающей арифметическую операцию процедуры нажатия. Точно так же как мы уже создавали для кнопок обозначающих цифры. В коде каждой кнопки пишем код:
Процедура СложениеНажатие(Элемент)
Буфер = Число(ТаблоКалькулятора);
ТаблоКалькулятора = «»;
Операция = «Сложение»;
КонецПроцедуры
Комментарии к коду: а) реквизиту формы «Буфер» передаем текущее значение табло калькулятора. Буфер запоминает и хранит данную информацию б) мы обнуляем табло калькулятора, т.е. подготавливаем его для ввода новых цифр в) реквизиту формы «Операция» присваиваем текстовую переменную «Сложение». Аналогичные действия и код прописываем для остальных арифметических операций.
7. Вывод результата. В обычном калькуляторе результат арифметических операций выводится после нажатия по кнопке «=». Пропишем в нашем калькуляторе такую же логику. Для этого создаем процедуру нажатия по кнопке «равно» и помещаем во внутрь процедуры следующий код:
Процедура РавноНажатие(Элемент)
Если Операция = «Сложение» Тогда
ТаблоКалькулятора = Буфер + Число(ТаблоКалькулятора);
ИначеЕсли Операция = «Вычитание» Тогда
ТаблоКалькулятора = Буфер — Число(ТаблоКалькулятора);
ИначеЕсли Операция = «Деление» Тогда
ТаблоКалькулятора = Буфер / Число(ТаблоКалькулятора);
ИначеЕсли Операция = «Умножение» Тогда
ТаблоКалькулятора = Буфер * Число(ТаблоКалькулятора);
КонецЕсли;
КонецПроцедуры
Комментарии к коду: а) для определения вида арифметической операции мы обращаемся к оператору Если. Оператор Если проверяет совпадает ли текст, обозначающий арифметическую операцию с присвоенным реквизиту «Операция» текстовой переменной из пункта 5. Если совпадение есть, выполняется именно эта операция.
Калькулятор готов.
Данный метод создания калькулятора для 1С не является эталонным или шаблонным. На базе нашего калькулятора вы можете создать свою обработку со своими алгоритмами и кодами.
Ниже ссылка на готовую обработку с полным примером кода калькулятора.
XI Международная студенческая научная конференция Студенческий научный форум — 2019
РАЗРАБОТКА ОБРАБОТКИ «КАЛЬКУЛЯТОР» НА ПЛАТФОРМЕ 1С: ПРЕДПРИЯТИЕ
«1С: Предприятие» является универсальной системой автоматизации деятельности предприятий. Основной особенностью системы «1С: Предприятие» является её конфигурация. Собственно, система «1С: Предприятие» представляет собой совокупность механизмов, предназначенных для манипулирования различными типами объектов предметной области. В режиме конфигуратора 1С есть возможность создавать не только объекты внутри конфигурации, но и создавать внешние объекты в виде отдельных файлов, в том числе и обработки. Можно использовать по мере надобности любые необходимые обработки и изменять их без внесения изменений в метаданные базы 1С [1-3].
В качестве примера рассмотрим процесс создания обработки «Калькулятор». Создадим пустую информационную базу, запустим ее в режиме «Конфигуратор».
Все объекты, которые знает платформа, перечислены в дереве объектов конфигурации. В дереве объектов (рис. 1) выберем объект «Обработки», добавим новую, в открывшемся окне редактирования объекта конфигурации напишем имя.
Рис. 1. Создание объекта «Обработки»
Внутри обработки создаём реквизит с именем «Буфер». В открывшемся окне свойств запишем имя, установим тип – число, длина – 10, точность – 2. Реквизит «Буфер» будем использовать для временного хранения значений во время вычислений.
Рис. 2 Создание реквизита «Буфер»
Создадим форму обработки (рис. 3).
Рис. 3. Создание формы
В открывшемся диалоговом окне видим созданный реквизит «Буфер», создадим ещё один реквизит «Итого» для отображения результирующего значения вычислений.
Рис. 4. Создание реквизита
Для того, чтобы видеть новый реквизит на форме просто перетащим его в окно «Элементы» редактора форм. Далее избавимся от командной предопределенной панели «Ещё» и уберем надпись «Итого» с поля вывода значений. Для этого выделим в окне элементов «Командная панель» и в окне свойств уберем флаг для автозаполнения. В окне свойств поля «Итого» изменим «ПоложениеЗаголовка» с «авто» на «нет» (рис. 5).
Рис. 5. Редактирование поля вывода значений
Напишем первую команду для событий кнопок в редакторе формы. Назовём команду «КомКноп» Создадим элемент кнопка, который отобразится в нижнем окне на форме после назначнеия для нее команды.
Рис. 6. Создание кнопки
Аналогичным образом создадим остальные кнопки, для каждой определяя подпись в строке «Заголовок», назначим размеры.
Рис. 7. Редактирование кнопки
Создадим команды, которые будут выполнять арифметические действия, назначим их на соответствующие кнопки (рис. 8).
Рис. 8. Создание кнопки «Сумма»
Теперь все кнопки надо привести в определённый порядок, чтобы форма приняла компактный вид. Разделим кнопки на несколько групп, для каждой группы установим горизонтальное расположение (рис. 9).
Рис. 9. Группировка кнопок
Добавим ещё одну группировку, куда соберем все группы, для итоговой группировки установим вертикаальное расположение. Результат представлен на рисунке 10.
Рис. 10. Форма «Калькулятор»
Каждая форма имеет свой индивидуальный модуль. Сейчас он пустой, напишем первую запись, объявим две переменные, а над ними директиву на клиенте, чтобы программа понимала, где начинается исполнение команды.
Рис. 11. Объявление переменных
Напишем первую процедуру для созданной формы, перейдём в редактор формы нажав кнопку «Форма». В редакторе форм, в разделе команды форм выделим команду «КомКноп». Откроется окно свойств, где в строке действия определим «Создать на клиенте» это и есть директива из модуля (рис. 12). В результате в модуле будет создана автоматически процедура для созданной ранее команды. Над процедурой команды мы видим директиву «НаКлиенте», в начале процедуры имя команды «КомКноп», а рядом в скобках прописано, что данная процедура создана по команде (рис. 12, 13).
Рис. 12. Создание обработчика команды
Рис. 13. Процедура команды
В процедуре напишем код для кнопок (рис.14). Процедура выполняет запись в поле «Итого» значения свойства «Заголовок» в данный момент выбранной кнопки.
Рис. 14. Код для команды «КомКноп»
Проверим работу процедуры, для этого обновим конфигурацию базы данных ( F 7), а потом запустим её в режиме отладки ( F 5), попробуем ввести цифры на табло (рис. 15).
Рис. 15. Запуск в режиме отладки
В модуле напишем код для команды «Сумма». Для математических вычислений переведем значение, записанное в поле «Итого», в число, для этого используем функцию «Число( )». После поместим числовое значение в переменную Буфер. Дальше очистим поле «Итого». Запишем в переменную «Операция» имя команды в виде строки (рис. 16).
Рис. 16. Процедура «Сумма»
Аналогичным образом напишем код для остальных команд вычисления и добавим на поле «Итого» кнопку «КнопкаОчистки» (рис. 17).
Рис. 17. Листинг модуля формы
Напишем код для команды «Вычислить» (рис. 18).
Рис. 18. Процедура для кнопки «Вычислить»
На рисунке 19 изображен калькулятор в готовом виде, при необходимости его можно доработать. Но основная задача была показать возможности создания и программирования формы обработки.
Рис. 19. Калькулятор
В ходе работы мы успешно использовали объект метаданных конфигураций 1С, на базе которого создали внутреннею обработку «Калькулятор».
Список источников
1. Обзор платформы 1С [Электронный ресурс]. URL : http :// v 8.1 c . ru / overview / (Дата обращения: 15.01.2019).
2. Радченко М. Г., Хрусталева Е. Ю. 1С:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы. М.: 1С-Паблишинг, 2013. 964 с.
3. Рыбалка В. В. Hello, 1C! Пример быстрой разработки приложений на платформе 1С:Предприятие 8.3. Версия 3. М.: 1С-Паблишинг, 2013. 225 с.