Использование буфера обмена, как числовой ячейки. Использование буфера обмена, как числовой ячейки 1с 7.7 в ячейке документа добавить калькулятор

Собирающиеся стать программистом люди на каком либо языке программирования вынуждены осваивать специальность сначала с теории, затем с простейших примеров программирования. Одним из простейших примеров, можно сказать стартом в программировании во всех языках считается написание калькулятора. Для этого мы и решили написать обучающий урок о том как написать калькулятор на языке 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. Арифметические операции. Создаем для каждой кнопки обозначающей арифметическую операцию процедуры нажатия. Точно так же как мы уже создавали для кнопок обозначающих цифры. В коде каждой кнопки пишем код:

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

Если Вы не собираетесь моделировать на 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С:

  • В кнопках укажем верный заголовок (*, :, =)
  • Сгруппируем кнопки
    o Добавим группу («Группа – обычная группа»)
    o Исправим свойства кнопки (Группировка – горизонтальная, Отображение – Нет, Отображать заголовок – Нет)

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

Создадим процедуру, которая будет выполнять операции – сложение, деление и т.п. Назовем ее, например, ВыполнитьОперацию(ИмяОперации). При нажатии пользователя на кнопку нам нужно определять имя операции (зашифрованное в имени кнопки) и вызывать нашу процедуру выполнения операции.

Мы сделали форму калькулятора 1С, на форме поле (с введенным числом) и кнопки, у каждой кнопки один и тот же обработчик. Нужно определить операцию, которую желает выполнить пользователь.

В толстом клиенте параметр обработчика события – элемент управления на форме (т.е. кнопка). Ее имя и есть нужная нам операция.

Пример программного кода:

В тонком клиенте в параметре указана команда. Однако у формы есть понятие «текущий элемент» и в момент нажатия на кнопку текущим элементом будет эта кнопка.

При выполнении несложных текущих расчетов в системе «1С: Предприятие 8.0» можно воспользоваться встроенным калькулятором. Вызвать его на экран можно, выбрав пункт «Сервис» - «Калькулятор», либо воспользовавшись кнопкой
расположенные в форме калькулятора, изменяют свой размер пропорционально изменению размеров окна.
Калькулятор позволяет выполнять все арифметические действия, вычислять проценты и обратные значения, запоминать числа в буфер и выполнять сложение и вычитание с запомненными в буфере значениями. При вводе числа можно редактировать введенное значение, удаляя неверно введенные разряды.
Для работы с калькулятором можно использовать как мышь, так клавиатуру.
Если результат какой-либо операции превысит допустимую разрядность калькулятора, будет выдано сообщение: «Результат превышает допустимые пределы».
При делении на 0 на дисплей будет выдано сообщение: «Деление на 0». Для продолжения работы в этом случае нужно будет очистить дисплей калькулятора, нажав кнопку сброса «С».
В памяти калькулятора запоминаются последние 15 вычислений,
которые можно просмотреть, воспользовавшись кнопкой
-
расположенной справа от дисплея.
Калькулятор имеет 10 регистров памяти для запоминания чисел и их дальнейшего использования в вычислениях. С помощью кнопок «MS», «М + », «М-» и «МС» работают с первым регистром.
Для запоминания результата вычислений в первом регистре следует нажать кнопку «MS». В табло, справа от надписи «М = «, появится запомненное значение. Нажатием кнопки «MR» запомненное значение выводится из первого регистра на дисплей. По кнопке «М + » запомненное в первом регистре значение прибавляется к результату
вычислений, по кнопке «М-» запомненное в первом регистре значение вычитается из результата вычислений. Кнопка «МС» сбрасывает содержимое первого регистра.
Для запоминания числа в один из девяти других регистров следует набрать число на дисплее (ввести или произвести нужные расчеты) и
нажать кнопку j
Для извлечения числа из регистра нажмите кнопку
расположенную рядом с кнопкой «MS». На экран будет выведен список регистров. Укажите мышью нужный регистр. Число записывается.
расположенную рядом с кнопками «MR», «М + » или «М-», в зависимости от вида действия, и выберите регистр. Аналогично выполняется очистка регистра (кнопка «МС»).
Калькулятор может работать в нескольких режимах. Выбор режима
осуществляется кнопкой >
и выбором нужного пункта:
В режиме «Микрокалькулятор» все действия выполняются с клавиатуры. Калькулятор при этом принимает упрощенную форму: Числа при этом вводятся с клавиатуры. Для очистки дисплея используется клавиша «С».
В режиме «Формульный калькулятор» все действия записываются в табло последовательно. Для организации определенной последовательности действий и ввода сложных выражений допускается использование скобок: Калькулятор X І0Ш 25+578)"4+(547+55)"5)Л7| ? - MS т М = о MR - 7 8 9 1/х г 1 М + " 4]|5 Є І к і L 1 м- " ПІ 2 3І Lci - ЮШИШ - -
В режиме «Настройка» можно настроить точность расчетов калькулятором. В выведенном на экран диалоговом окне настройки следует указать число знаков после запятой:
Калькулятор может использоваться не только для выполнения расчетов, но и для ввода численных реквизитов в документы и справочники. Для этого справа от числового реквизита следует нажать кнопку

Для выполнения несложных текущих расчетов система 1С:Предприятие имеет встроенный калькулятор. Его можно вызвать в любом режиме программы (кроме случаев, когда программа ждет ответа на запрос), нажав клавиши CTRL + F2 или выбрав пункт "Калькулятор" из меню "Сервис" главного меню программы.

В системе 1С:Предприятие можно использовать калькуляторы двух типов - формульный и числовой. Какой тип калькулятора будет вызываться по нажатию клавиш CTRL + F2 , определяется в режиме "Настройка параметров системы" , в настройке общих параметров.

Для удобства окно калькулятора всегда располагается "поверх" других окон (то есть его не закрывают другие окна программы). Можно мышью перетащить окно калькулятора в любое место экрана.

Совет:
Можно вызывать на экран одновременно калькуляторы обоих типов. Чтобы выполнить это, следует вызвать сначала один калькулятор, затем в режиме "Установка общих параметров" изменить состояние опции "Использовать формульный калькулятор" (выключить, если она включена, или включить, - если выключена), и вызвать калькулятор другого типа
.

Формульный калькулятор

Формульный калькулятор вычисляет выражения, записанные в виде формул в поле ввода калькулятора.

При записи формул можно использовать числа, знаки арифметических операций и круглые скобки для изменения порядка вычисления выражения. В формулах также можно использовать переменную "М" , которая выдает число, хранящееся в буфере обмена.

Для вычисления значения выражения следует нажать кнопку "Вычислить" . Результат вычисления выдается в правой части окна калькулятора, справа от знака "=" .

Числовой калькулятор

Числовой калькулятор позволяет выполнять все арифметические действия, вычислять проценты и обратные значения, запоминать число и выполнять сложение и вычитание с запомненным значением. При вводе числа калькулятор позволяет редактировать введенное значение, удаляя неверно введенные разряды.

В системе 1С:Предприятие используются два варианта числового калькулятора: общий калькулятор, который вызывается по нажатию клавиш CTRL + F2 или из главного меню, и временный, вызываемый по нажатию клавиши F4 при вводе реквизитов числового типа.

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

Для работы с калькулятором можно использовать, как мышь, так и клавиатуру. По выполняемым функциям числовой калькулятор напоминает "настоящие" калькуляторы.

Замечание:
Если результат какой-либо операции превышает разрядность калькулятора или производится деление на 0, то дисплей обнуляется
.