Создание Калькулятора в 1С 8.3

1. user674551_ali.yerzhanov 21.01.17 09:05 Сейчас в теме
Помогите написать процедуру для создания калькулятора в 1С 8.3. Форма полностью готова, но сам алгоритм не могу построить. Вот пытался использовать исходник процедуры калькулятора для 1С 8.2, но в 1С 8.3 выдает ошибку.

/
/Процедуры обработки нажатия циферных клавиш и вывод результата в табло калькулятора
Процедура Цифра1Нажатие(Элемент)
	
	ВыводЦифры1 = 1;
	ТаблоКалькулятора = ТаблоКалькулятора + Лев(ВыводЦифры1, 9);
	ТаблоКалькулятора = Число(Прав(ТаблоКалькулятора,10)); //если этого нет то по нажатию С рисуется ноль а к нему добавляется единица
		
КонецПроцедуры


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

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


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


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


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


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


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


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


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


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


Процедура ОчиститьНажатие(Элемент)
	
	ТаблоКалькулятора = 0;
	
КонецПроцедуры

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

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

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

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

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

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

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

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


Ошибка:
{Форма.Форма.Форма(101,16)}: Переменная не определена (ТаблоКалькулятора)
Буфер = Число(<<?>>ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(109,16)}: Переменная не определена (ТаблоКалькулятора)
Буфер = Число(<<?>>ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(117,16)}: Переменная не определена (ТаблоКалькулятора)
Буфер = Число(<<?>>ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(125,16)}: Переменная не определена (ТаблоКалькулятора)
Буфер = Число(<<?>>ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(134,7)}: Переменная не определена (Операция)
Если <<?>>Операция = "Сложение" Тогда (Проверка: Сервер)
{Форма.Форма.Форма(137,12)}: Переменная не определена (Операция)
ИначеЕсли <<?>>Операция = "Вычитание" Тогда (Проверка: Сервер)
{Форма.Форма.Форма(140,12)}: Переменная не определена (Операция)
ИначеЕсли <<?>>Операция = "Деление" Тогда (Проверка: Сервер)
{Форма.Форма.Форма(143,12)}: Переменная не определена (Операция)
ИначеЕсли <<?>>Операция = "Умножение" Тогда (Проверка: Сервер)
{Форма.Форма.Форма(135,23)}: Переменная не определена (Буфер)
ТаблоКалькулятора = <<?>>Буфер + Число(ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(139,23)}: Переменная не определена (Буфер)
ТаблоКалькулятора = <<?>>Буфер - Число(ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(142,23)}: Переменная не определена (Буфер)
ТаблоКалькулятора = <<?>>Буфер / Число(ТаблоКалькулятора); (Проверка: Сервер)
{Форма.Форма.Форма(145,23)}: Переменная не определена (Буфер)
ТаблоКалькулятора = <<?>>Буфер * Число(ТаблоКалькулятора); (Проверка: Сервер)

(Реквизиты: ТаблоКалькулятора, буфер и операция были созданы)
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. Denis_CFO 48 22.01.17 12:44 Сейчас в теме
2. ImHunter 315 21.01.17 11:42 Сейчас в теме
Форма таки управляемая или обычная?
Странно как-то...
По коду похоже на обычную, т.к. нет директив исполнения кода.
По ошибкам похоже на управляемую.
3. Fril 21.01.17 12:37 Сейчас в теме
Без директив, конфа будет пытаться выполнить код на Сервере. Поставь директивы "На клиенте" и попробуй! Далее как вариант попробуй обратиться к Табло как Элементы.Табло... Так же везде будет не "Элемент", а команда. Лучше создай новую упр форму и заполняй все с новья, куски кода бери со старой, тогда не будет ошибок.
4. Alex_E 2353 21.01.17 13:18 Сейчас в теме
А калькулятор, что доступен в поле ввода типа число, использовать никак?
6. пользователь 09.11.17 12:03
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот