Разработка и Конфигурация · 11 мин
Как добавить калькулятор в 1С
Как добавить калькулятор в 1С: встроенный калькулятор полей ввода, калькуляция в документах и создание собственного калькулятора через конфигуратор.
Под «калькулятором в 1С» пользователи обычно понимают три разные задачи: быстрый расчет прямо в поле ввода числа, вызов встроенного калькулятора платформы и добавление собственного расчетного инструмента в конфигурацию. Все три сценария решаются штатными средствами, но разными способами и с разными требованиями к правам доступа.
В типовых конфигурациях (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) базовый калькулятор уже встроен в платформу: он доступен в любом числовом поле документа или справочника. Отдельно устанавливать его не нужно — достаточно знать сочетание клавиш. А вот собственный калькулятор с кнопками, формулами и сохранением результатов придется создавать через конфигуратор или подключать как внешнюю обработку.
Прежде чем что-то менять, определите, какой именно сценарий вам нужен. Если требуется просто быстро посчитать сумму при заполнении документа — хватит встроенных возможностей. Если нужен расчет по формулам с сохранением истории — потребуется доработка, и здесь важно понимать границы безопасной самостоятельной работы.
Как вызвать встроенный калькулятор в числовом поле
Самый быстрый способ посчитать что-то в 1С — не выходя из документа. Установите курсор в любое числовое поле (количество, цена, сумма, ставка) и нажмите F4. Платформа откроет окно калькулятора, где можно выполнить арифметические операции. После нажатия «ОК» или Enter результат автоматически подставится в поле, из которого калькулятор был вызван.
В ряде версий платформы 8.3 работает также комбинация Ctrl+F4, а в тонком и веб-клиенте поведение может отличаться — проверьте на своей версии. В полях, где разрешены арифметические выражения, можно ввести выражение прямо в поле, например 150*3+20, и после нажатия Enter или Tab платформа сама посчитает результат. Это работает не во всех полях: если выражение не вычисляется, поле принимает только готовое число.
Признак того, что калькулятор доступен: при фокусе в числовом поле в строке состояния или всплывающей подсказке отображается упоминание клавиши вызова. Если F4 не срабатывает, убедитесь, что поле действительно числовое, а не строковое — в строковых полях калькулятор не вызывается.
Как проверить, что встроенный калькулятор работает
Открывается окно калькулятора, результат возвращается в поле
Ничего не происходит или срабатывает другая функция — поле не числовое либо клавиша перехвачена
После Enter в поле появляется 150
Значение очищается или выдается ошибка — поле не поддерживает выражения
Калькулятор открывается в модальном окне браузера
Клавиша не работает — проверьте сочетание для вашей версии платформы
Как добавить кнопку вызова калькулятора на форму
Если пользователи часто считают вручную и не знают про F4, имеет смысл вывести кнопку вызова калькулятора прямо на форму документа. Это делается через конфигуратор: откройте конфигурацию в режиме «Конфигуратор», найдите нужный документ, откройте его форму и добавьте кнопку в командную панель или рядом с числовым полем.
Для кнопки создайте команду формы и в обработчике напишите вызов стандартного диалога. Платформа предоставляет метод ВвестиЧисло(), который открывает окно ввода числа с возможностью расчета. Пример обработчика команды:
&НаКлиенте
Процедура РассчитатьСумму(Команда)
НачальноеЗначение = Объект.Сумма;
Если ВвестиЧисло(НачальноеЗначение, "Введите сумму", 15, 2) Тогда
Объект.Сумма = НачальноеЗначение;
КонецЕсли;
КонецПроцедуры
Такой подход безопаснее полноценной доработки: вы не меняете логику документа, а только добавляете удобный способ ввода. Однако любое изменение формы в типовой конфигурации снимает её с полной поддержки — при обновлении форму придется сравнивать и объединять вручную.
Как создать собственный калькулятор как внешнюю обработку
Внешняя обработка — оптимальный вариант, когда нужен полноценный калькулятор с кнопками, памятью и своими формулами, но конфигурацию трогать нельзя. Обработка хранится в отдельном файле с расширением .epf и подключается без изменения конфигурации.
Порядок создания: откройте конфигуратор, выберите «Файл → Новый → Внешняя обработка». Добавьте форму обработки, разместите на ней поле ввода для результата и кнопки цифр и операций. Для каждой кнопки создайте команду, в обработчике которой формируется строка выражения. Для вычисления результата используйте встроенную функцию Вычислить(), передав ей собранное выражение.
&НаКлиенте
Процедура КнопкаРавно(Команда)
Попытка
Результат = Вычислить(Выражение);
Исключение
Результат = "Ошибка в выражении";
КонецПопытки;
КонецПроцедуры
Готовую обработку пользователи открывают через «Файл → Открыть» или подключают в справочник «Дополнительные отчеты и обработки», если он есть в конфигурации — тогда калькулятор появится в интерфейсе как штатный пункт меню. Обратите внимание: функция Вычислить() выполняет произвольный код, поэтому не давайте пользователям вводить в поле выражения ничего, кроме цифр и операторов, либо фильтруйте ввод программно.
- 1Сделайте резервную копию базы и проверьте права на работу в конфигураторе
- 2Создайте новую внешнюю обработку и добавьте управляемую форму
- 3Разместите поле результата и кнопки цифр и операций
- 4Напишите обработчики команд: накопление выражения и вычисление через Вычислить()
- 5Сохраните файл .epf и откройте его в режиме 1С:Предприятие
- 6Проверьте расчет на простых примерах: сложение, деление, обработка ошибочного ввода
Как добавить калькулятор в конфигурацию через расширение
Если обработку нужно встроить в интерфейс постоянно — например, добавить кнопку «Калькулятор» в раздел «Сервис» — используйте механизм расширений конфигурации. Расширение не изменяет основную конфигурацию, поэтому обновления типового решения проходят без ручного объединения.
В конфигураторе откройте «Конфигурация → Расширения конфигурации», создайте новое расширение и перенесите в него общую форму с калькулятором либо заимствуйте форму документа и добавьте на неё свою кнопку. Затем в подсистеме или командном интерфейсе расширения зарегистрируйте команду открытия формы.
Ограничение подхода: расширения поддерживаются не всеми старыми версиями платформы, а заимствованные формы могут конфликтовать, если типовая форма сильно изменится при обновлении. После каждого обновления конфигурации проверяйте работоспособность расширения на тестовой копии базы.
Сравнение способов добавить калькулятор
Подходит для быстрых разовых расчетов. Ничего настраивать не нужно, но нет своих формул и истории вычислений
Подходит для собственного калькулятора без изменения конфигурации. Ограничение: не интегрирована в интерфейс без справочника дополнительных обработок
Подходит для постоянной интеграции в меню. Требует совместимой версии платформы и проверки после каждого обновления
Максимальная гибкость, но снимает конфигурацию с полной поддержки и усложняет обновления
Расчетные формулы в документах без калькулятора
Часто потребность в калькуляторе возникает из-за ручного пересчета значений, которые система может считать сама. Например, сумма строки документа в типовых конфигурациях вычисляется автоматически как произведение количества на цену — достаточно заполнить оба поля. Если в вашей конфигурации автоматический расчет не работает, это повод проверить настройки, а не добавлять калькулятор.
В самописных или доработанных документах расчет добавляется в модуле формы через обработчики событий ПриИзменении полей количества и цены. Это стандартный прием: пользователь вводит исходные данные, а результат появляется без дополнительных действий, что исключает арифметические ошибки оператора.
Переносите в автоматический расчет только те формулы, которые стабильны и не требуют ручной корректировки. Если менеджеры регулярно вводят сумму «как договорились», жесткий пересчет будет мешать — в таких случаях оставьте поле редактируемым или добавьте признак ручного ввода.
Проверка результата и типичные ограничения
После добавления калькулятора любым способом проверьте его на контрольных примерах: сложение и вычитание целых чисел, умножение дробных значений, деление на ноль, ввод слишком длинного выражения. Корректный калькулятор должен либо выдавать понятное сообщение об ошибке, либо блокировать недопустимый ввод, но не закрываться с системной ошибкой платформы.
Проверьте работу под учетной записью обычного пользователя, а не только под администратором. Если калькулятор реализован как внешняя обработка, у пользователя должны быть права на открытие внешних файлов — в некоторых конфигурациях это запрещено настройками безопасности, и файл просто не откроется.
Учитывайте ограничение точности: в 1С числа в реквизитах документов обычно имеют фиксированную разрядность (например, 15 знаков, 2 после запятой). Результат расчета с большим числом знаков будет округлен при записи — это норма, а не ошибка калькулятора. Если нужны расчеты с высокой точностью, задавайте соответствующую разрядность в поле обработки и в реквизитах.
Часто задаваемые вопросы
Почему F4 не открывает калькулятор в моей 1С?
Чаще всего курсор стоит не в числовом поле — калькулятор вызывается только там, где ожидается число. Также проверьте вид клиента: в веб-клиенте сочетания клавиш могут отличаться или перехватываться браузером. Попробуйте Ctrl+F4 или ввод выражения прямо в поле.
Можно ли добавить калькулятор без доступа к конфигуратору?
Да, если использовать встроенный калькулятор платформы (F4) — он доступен любому пользователю. Собственную внешнюю обработку без конфигуратора создать нельзя, но можно попросить разработчика подготовить файл .epf и просто открывать его через «Файл → Открыть».
Снимется ли конфигурация с поддержки, если добавить свою форму калькулятора?
Да, прямое изменение конфигурации включает возможность изменения и усложняет автоматическое обновление. Чтобы этого избежать, используйте внешние обработки или расширения конфигурации — они не затрагивают типовой код.
Опасна ли функция Вычислить() в самодельном калькуляторе?
Да, если не ограничить ввод. Функция выполняет любой код на встроенном языке, поэтому через поле выражения можно обратиться к данным базы. Разрешайте ввод только цифр, скобок и знаков операций, отсекая остальные символы программно.
Как сохранять историю вычислений в собственном калькуляторе?
Добавьте на форму обработки таблицу значений и в обработчике вычисления записывайте туда выражение и результат. Для хранения между сеансами используйте хранилище общих настроек или сохранение таблицы в файл.
Работает ли внешний калькулятор в веб-клиенте?
Управляемые формы внешних обработок в веб-клиенте работают, но открытие файла .epf из браузера может быть ограничено настройками безопасности. Надежнее подключить обработку через механизм дополнительных отчетов и обработок, если он есть в конфигурации.
Что важно запомнить
Для быстрых расчетов используйте встроенный калькулятор по клавише F4 — ничего добавлять не требуется. Собственный калькулятор создавайте как внешнюю обработку или расширение, не трогая типовую конфигурацию. Перед любой доработкой делайте резервную копию, фильтруйте ввод при использовании Вычислить() и проверяйте работу после каждого обновления.