Ввод числа
Для ввода числа в 1С можно использовать одну из двух функций: ВвестиЧисло или ПоказатьВводЧисла. ВвестиЧисло синхронная функция, ПоказатьВводЧисла - асинхронная. ВвестиЧисло считается устаревшей, так как будет работать только если разрешено использование модальности.
Рассмотрим обе функции на примерах.
ВвестиЧисло
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимоеЧисло;
//Если переменной ВводимоеЧисло присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//число ограничено длиной 15 разрядов и точностью 2 знака
Если ВвестиЧисло(ВводимоеЧисло, "Введите число", 15, 2) Тогда
//функция вернет Истина, если число введено
//в переменной ВводимоеЧисло будет само число
Сообщить(ВводимоеЧисло);
Иначе
//функция вернет Ложь, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
КонецЕсли;
КонецПроцедуры
ПоказатьВводЧисла
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимоеЧисло;
//Если переменной ВводимоеЧисло присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
ОбратныйВызов = Новый ОписаниеОповещения("ОбратныйВызов", ЭтотОбъект);
//число ограничено длиной 15 разрядов и точностью 2 знака
ПоказатьВводЧисла(ОбратныйВызов, ВводимоеЧисло, "Введите число", 15, 2);
КонецПроцедуры
&НаКлиенте
Процедура ОбратныйВызов(Число, ДопПар) Экспорт
Если Число = Неопределено Тогда
//Число = Неопределено, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
Иначе
//в переменной Число будет само число
Сообщить(Число);
КонецЕсли;
КонецПроцедуры
Ввод строки
Для ввода строки в 1С можно использовать одну из двух функций: ВвестиСтроку или ПоказатьВводСтроки. ВвестиСтроку синхронная функция, ПоказатьВводСтроки - асинхронная. ВвестиСтроку считается устаревшей, так как будет работать только если разрешено использование модальности.
Рассмотрим обе функции на примерах.
ВвестиСтроку
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимаяСтрока;
//Если переменной ВводимаяСтрока присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//строка ограничена длиной 100 символов,
//Истина - значит что будет многострочное поле ввода
Если ВвестиСтроку(ВводимаяСтрока, "Введите строку", 100, Истина) Тогда
//функция вернет Истина, если строка введена
//в переменной ВводимаяСтрока будет сама строка
Сообщить(ВводимаяСтрока);
Иначе
//функция вернет Ложь, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
КонецЕсли;
КонецПроцедуры
ПоказатьВводСтроки
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимаяСтрока;
//Если переменной ВводимаяСтрока присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
ОбратныйВызов = Новый ОписаниеОповещения("ОбратныйВызов", ЭтотОбъект);
//строка ограничена длиной 100,
//Истина - значит что будет многострочное поле ввода
ПоказатьВводСтроки(ОбратныйВызов, ВводимаяСтрока, "Введите строку", 100, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОбратныйВызов(Строка, ДопПар) Экспорт
Если Строка = Неопределено Тогда
//Строка = Неопределено, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
Иначе
//в переменной Строка будет сама строка
Сообщить(Строка);
КонецЕсли;
КонецПроцедуры
Ввод даты
Для ввода даты в 1С можно использовать одну из двух функций: ВвестиДату или ПоказатьВводДаты. ВвестиДату синхронная функция, ПоказатьВводДаты - асинхронная. ВвестиДату считается устаревшей, так как будет работать только если разрешено использование модальности.
Рассмотрим обе функции на примерах.
ВвестиДату
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимаяДата;
//Если переменной ВводимаяДата присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//будем вводить только дату, без времени
Если ВвестиДату(ВводимаяДата, "Введите дату", ЧастиДаты.Дата) Тогда
//функция вернет Истина, если дата введена
//в переменной ВводимаяДата будет сама дата
Сообщить(ВводимаяДата);
Иначе
//функция вернет Ложь, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
КонецЕсли;
КонецПроцедуры
ПоказатьВводДаты
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимаяДата;
//Если переменной ВводимаяДата присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
ОбратныйВызов = Новый ОписаниеОповещения("ОбратныйВызов", ЭтотОбъект);
//будем вводить только дату, без времени
ПоказатьВводДаты(ОбратныйВызов, ВводимаяДата, "Введите дату", ЧастиДаты.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ОбратныйВызов(Дата, ДопПар) Экспорт
Если Дата = Неопределено Тогда
//Дата = Неопределено, если пользователь закрыл окно ввода
Сообщить("Ничего не введено!");
Иначе
//в переменной Дата будет сама дата
Сообщить(Дата);
КонецЕсли;
КонецПроцедуры
Ввод значения
Помимо функций для ввода примитивных типов, в 1С есть функции для ввода значения произвольного типа данных: синхронная ВвестиЗначение и асинхронная ПоказатьВводЗначения. ВвестиЗначение можно использовать только если разрешено использование модальности.
В данных функциях последним параметром можно передать тип значения, который нужно будет ввести. Если тип не указать, то будет использоваться тип переменной, в которую будет получен результат. Также можно указать составной тип данных, тогда до ввода значения нужно будет выбрать тип.
Рассмотрим обе функции на примерах.
ВвестиЗначение
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимоеЗначение;
//Если переменной ВводимоеЗначение присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//будем выбирать из справочника товаров
Тип = Тип("СправочникСсылка.Товары");
Если ВвестиЗначение(ВводимоеЗначение, "Выберите значение", Тип) Тогда
//функция вернет Истина, если пользователь выбрал товар
//в переменной ВводимоеЗначение будет сам товар
Сообщить(ВводимоеЗначение);
Иначе
//функция вернет Ложь, если пользователь закрыл окно выбора
Сообщить("Ничего не выбрано!");
КонецЕсли;
КонецПроцедуры
ПоказатьВводЗначения
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимоеЗначение;
//Если переменной ВводимоеЗначение присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//будем выбирать из справочника товаров
Тип = Тип("СправочникСсылка.Товары");
ОбратныйВызов = Новый ОписаниеОповещения("ПослеВыбораТовара", ЭтотОбъект);
ПоказатьВводЗначения(ОбратныйВызов, ВводимоеЗначение, "Выберите значение", Тип);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораТовара(ВыбранныйТовар, ДопПараметры) Экспорт
Если ВыбранныйТовар = Неопределено Тогда
//ВыбранныйТовар = Неопределено, если пользователь закрыл окно выбора
Сообщить("Ничего не введено!");
Иначе
//в переменной ВыбранныйТовар будет сам товар
Сообщить(ВыбранныйТовар);
КонецЕсли;
КонецПроцедуры
Составной тип
&НаКлиенте
Процедура Команда1(Команда)
Перем ВводимоеЗначение;
//Если переменной ВводимоеЗначение присвоить какое-то значение,
//то оно будет использоваться как первоначальное значение
//будем выбирать из справочника товаров или контрагентов
ТипТовар = Тип("СправочникСсылка.Товары");
ТипКонтр = Тип("СправочникСсылка.Контрагенты");
Типы = Новый Массив;
Типы.Добавить(ТипТовар);
Типы.Добавить(ТипКонтр);
СоставнойТип = Новый ОписаниеТипов(Типы);
ОбратныйВызов = Новый ОписаниеОповещения("ПослеВыбора", ЭтотОбъект);
ПоказатьВводЗначения(ОбратныйВызов, ВводимоеЗначение, "Выберите значение", СоставнойТип);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбора(ВыбранныйЭлемент, ДопПараметры) Экспорт
Если ВыбранныйЭлемент = Неопределено Тогда
//ВыбранныйЭлемент = Неопределено, если пользователь закрыл окно выбора
Сообщить("Ничего не введено!");
Иначе
//в переменной ВыбранныйЭлемент будет товар или контрагент
Сообщить(ВыбранныйЭлемент);
КонецЕсли;
КонецПроцедуры
Смотрите также:
Электронный учебник по программированию в 1С Рекомендации по изучению программирования 1С с нуля Программное решение для сдачи и подготовки к экзаменам Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки