1С 8.3 : Поле ввода
Для 1с поле ввода с типом строка можно применить маску ввода. В 1с маска задает формат представления данных и ограничивает вводимой информации. Это очень удобно бывает во многих жизненных задачках, например ввод телефона, ввод специального кода или представления номера. В 1с маску можно задать как интерактивно «в режиме конфигуратора», так и программно.
Для 1с поле ввода маска доступны следующие форматы ограничители.
Ввод только числовых данных:
* 9 – вводятся только цифры
* # – вводятся цифры и знаки «+» «-» и пробел
* h ввод шестеричных цифр
Ввод цифр и букв:
* @ – ввод символов алфавита, и при этом они будут преобразованы в верхний регистр
* N – разрешен ввод алфавитных символов но уже можно контролировать регистр.
* U – вводи символов алфавита с преобразованием в верхней регистр. Отличие между U и @ не смог найти.
* ! – любой введенный символ автоматический преобразуется к верхнему регистру
* X – разрешен ввод только латиницы
Для запрет ввода символа «^» в 1с поле ввода, необходимо прописать этот символ в маску
В маске могут присутствовать специальные символы «.» , «(», «)», «-» и «,» и некоторые другие, они позволяют форматировать строку.
Например, нам нужно указать, что номер вводится с указанием кода города. То нужно прописать 1с маску ввода «9 (999) 999 99 99» или «9 (999) 999-99-99». Все зависит от требуемого формата представления строки. Или допустим нам нужно ввести формат дополнительного номера накладной типа «код подразделение.месяц.год», тогда маска будет «UUUU.99.9999» или «UUUU/99/9999»
Стоит помнить что, задавая маску – мы обязаны задать её полностью такой длины, какой длины вводится строка. Либо если существуют несколько форматов строки, короткий и длинный – то можно задать две и более масок, через запятую.
Например, вводим сотовый телефон клиента, либо городской (без указания кода города), тогда 1c маска будет 9 (999) 999-99-99;999-99-99
Из справки 1С:
ПолеВвода (TextBox) — Маска (Mask)
Использование: Чтение и запись.
Описание:
Тип: Строка. Содержит посимвольную строку маски интерактивного ввода текста в поле.
В строке маски допустимо использование следующих специальных символов:
! — любой введенный символ преобразуется в верхний регистр;
9 — допустимо ввести произвольный символ цифры;
# — допустимо ввести произвольный символ цифры или — (знак минус) или + (знак плюс) или пробел;
N — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);
U — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;
X (латинского алфавита) — допустимо ввести произвольный символ;
^ — не допустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;
h — допустим ввод символов обозначения шестнадцатеричных цифр;
@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.
При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ "@", а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после по-следнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2".
Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\".
Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст.
Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
АйТиБложик
Пара слов о спец. символе «@»: использование этого символа в маске кода влияет на хранение кода в базе данных и отображение его в диалогах ввода.
На тех позициях, где в маске стоит символ «@», а в строке пробел – пробел удаляется, иначе говоря, при сохранении кода в базу данных код «упаковывается» — из него вырезаются пробелы. Допустим, имеется маска «@@.@@», тогда код «1Пробел.1Пробел»(5 знаков) упакуется в «1.1»(3 знака).
Если в маске из специальных символов используются только символы «@», то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов «@». Например, при маске «@@.@@.@@.» код «41.Пробел2.ПробелПробел.»(9 знаков) преобразуется в «41.2»(4 знака).
При редактировании счета в плане счетов, код счета распаковывается до вида, подходящего под маску, а при записи опять упаковывается.
Каталог статей
Для 1с поле ввода с типом строка можно применить маску ввода. В 1с маска задает формат представления данных и ограничивает вводимой информации. Это очень удобно бывает во многих жизненных задачках, например ввод телефона, ввод специального кода или представления номера. В 1с маску можно задать как интерактивно « в режиме конфигуратора », так и программно.
Для 1с поле ввода маска доступны следующие форматы ограничители.
Ввод только числовых данных
- 9 – вводятся только цифры
- # – вводятся цифры и знаки «+» «-» и пробел
- h ввод шестеричных цифр
Ввод цифр и букв
- @ – ввод символов алфавита, и при этом они будут преобразованы в верхний регистр
- N – разрешен ввод алфавитных символов но уже можно контролировать регистр.
- U – вводи символов алфавита с преобразованием в верхней регистр. Отличие между U и @ не смог найти.
- ! – любой введенный символ автоматический преобразуется к верхнему регистру
- X – разрешен ввод только латиницы
Для запрет ввода символа «^» в 1с поле ввода, необходимо прописать этот символ в маску
В маске могут присутствовать специальные символы «.» , «(», «)», «-» и «,» и некоторые другие, они позволяют форматировать строку.
Например, нам нужно указать, что номер вводится с указанием кода города. То нужно прописать 1с маску ввода «9 (999) 999 99 99» или «9 (999) 999-99-99». Все зависит от требуемого формата представления строки. Или допустим нам нужно ввести формат дополнительного номера накладной типа «код подразделение.месяц.год», тогда маска будет «UUUU.99.9999» или «UUUU/99/9999»
Стоит помнить что, задавая маску – мы обязаны задать её полностью такой длины, какой длины вводится строка. Либо если существуют несколько форматов строки, короткий и длинный – то можно задать две и более масок, через запятую.
Например, вводим сотовый телефон клиента, либо городской (без указания кода города), тогда 1c маска будет
Настройка маски кода счета для ускорения ручного ввода операций
Если существенная часть операций вводится бухгалтером вручную, то достаточно актуально стоит вопрос о повышении производительности ввода проводок. При массовом вводе операций бухгалтер обычно не выбирает счета из плана счетов , а набирает коды счетов на клавиатуре. Для ускорения ввода кодов счетов можно воспользоваться настройкой параметра «Маска кода счета» (меню «Сервис — Параметры» — закладка «Бухгалтерия»).
По умолчанию параметр «Маска кода счета» не доступен для редактирования и при вводе кода счета используется стандартная маска, заданная для плана счетов. Для того, чтобы изменить значение параметра следует отключить флажок «Использовать маску плана счетов», расположенный на той же закладке.
При работе со стандартным планом счетов, используемым в типовой конфигурации 1С:Бухгалтерии можно рекомендовать установить маску «##.##». Если такая маска установлена, то программа при вводе кода счета будет воспринимать первые два вводимых символа, как код счета, а третий и четвертый символы, как код субсчета. Это позволит при вводе кодов основных счетов не набирать пробел или точку для перехода к вводу кода субсчета, а сразу после ввода двухзначного кода счета вводить код субсчета. При необходимости ввести забалансовый счет, код которого состоит из трех символов, можно будет выбрать данный счет из списка. В любой момент можно снова включить в параметрах полную маску кода счета заданную для плана счетов. При желании опять установить используемую ранее сокращенную маску, ее можно будет выбрать, нажав кнопку с треугольником в поле «Маска кода счета».
В некоторых случаях используется возможность указания пустой маски. Для указания пустой маски следует просто стереть все символы в поле «Маска кода счета». При вводе кода счета с пустой маской необходимо самостоятельно вводить в коде счета разделители субсчетов, набирая на клавиатуре точку. Этот вариант может быть удобнее при использовании двух или более планов счетов с разными масками. В этом случае допускается указание кода счета из любого плана счетов. Программа автоматически найдет введенный код в том плане счетов, в котором он существует. Разумеется, это имеет смысл, если сами коды счетов в используемых планах различаются.