Как задать маску реквизита в 1с

Для 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.       Что такое поле Маска ввода

2.       Ограничения в масках ввода в 1С  

1.    Что такое поле Маска ввода

В данной статье будет описано, что такое поле «Маска ввода» в 1С. Также будут приведены все форматы и ограничители, которые доступны в поле «Маска ввода».

Когда в системе 1С есть поле ввода, которое имеет тип «строка», то в таком случае к нему есть возможность применить маску ввода данных. Данная функция отвечает за форматирование внешнего вида информации и за её количество. Маска ввода может находить практическое применение: маска ввода даты, маска ввода номера телефона, кода из сообщения.

Сама маска ввода может быть задана и при помощи конфигуратора, и текстом программы. 

2.    Ограничения в масках ввода в 1С

Рассмотрим, какие существуют форматы и ограничители свойств масок ввода в системе 1С.

Форматы-ограничители для поля «Маска ввода»:

·        9 – вводиться могут только цифры;

·        # — вводиться могут все цифры, пробел и знаки «+» и «-»;

·        h – вводиться могут только шестеричные цифры;

·        @ — вводиться могут буквенные символы, при этом все они будут становиться верхним регистром;

·        N – вводиться могут любые буквенные символы, регистр при этом не меняется;

·        U – аналогично «@» — можно вводить буквенные символы, и они будут преобразованы в верхний регистр;

·        I – можно вводить любые символы, но все они будут преобразованы в верхний регистр;

·        X – вводиться могут любые символы латиницы.

Чтобы запретить вводить какой-либо конкретный знак, это нужно прописать до того, как сделать маску ввода.

Символы «.», «(», «)», «-» и «,» также могут быть прописаны в маске ввода, с их помощью происходит форматирование строки. Рассмотрим примеры заданий масок ввода:

Пример №1: пусть нужно сделать маску ввода телефона, при этом, в нём должен присутствовать код города. В таком случае в системе 1С нужно написать маску ввода «9 (999) 999 99 99».

Пример №2: пусть нужно вводить в поле информацию кода накладной, вида «код.подразделение.месяц.год», в этом случае маска ввода будет выглядеть следующим образом – «UUUU.99.9999».

Замечание: при задании маски ввода её длина должна соответствовать длине строки. В случае, когда в строке может быть несколько форматов, потребуется написать несколько масок ввода — через точку с запятой.

Пример №3: пусть нужно ввести либо мобильный номер телефона, либо домашний (городской), тогда маска ввода номера будет выглядеть следующим образом – «9 (999) 999 99 99;999-99-99».

Если поместить значение из маски ввода в текст, который имеет привязку к данному полю, то значения преобразуются следующим образом: если в маске ввода символ «@», при этом в строке находится пробел, то пробел будет удалён.

Если в маске ввода есть только символы «@», то из текста все значения (которые не специальные символы) будут удалены после крайнего блока, заполненного символами «@».

Пример №4: пусть есть маска ввода следующего вида – «@@.@@.@@», а текст ввели «35. 3. .», данный текст будет преобразован в «35.3».

Чтобы прописать в маске ввода один из символов, который является специальным, необходимо перед данным символом поставить «».

В данной статье было описано, что такое маска ввода в 1С, а также описаны все критерии, параметры и форматирование масок ввода с примерами того, как они работают на практике.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

на форме есть реквизит тип ПолеВВода, длина 4. Как задать ему маску цифры и только латинские буквы?

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

Если маска 99;ХХ тогда первые два символа цифры а третий и четвертый любые буквы латинские.

Из справки 1С:

ПолеВвода (TextBox) — Маска (Mask)

Использование: Чтение и запись.

Описание:

Тип: Строка. Содержит посимвольную строку маски интерактивного ввода текста в поле.

В строке маски допустимо использование следующих специальных символов:

! — любой введенный символ преобразуется в верхний регистр;

9 — допустимо ввести произвольный символ цифры;

# — допустимо ввести произвольный символ цифры или — (знак минус) или + (знак плюс) или пробел;

N — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);

U — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;

X (латинского алфавита) — допустимо ввести произвольный символ;

^ — не допустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;

h — допустим ввод символов обозначения шестнадцатеричных цифр;

@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.

При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ «@», а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы «@», то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после по-следнего непустого блока из символов «@». Например, при маске «@@.@@.@@.» текст «41. 2. .» преобразуется в «41.2».

Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ «».

Допускается указание нескольких масок в одном параметре. Маски разделяются символом «;». В этом случае использоваться будет та маска, к которой подходит введенный текст.

Ранее мы добавили свой дополнительный реквизит «СНИЛС» для внутреннего документа и сделали закладку с дополнительными реквизитами первой на форме.

Пришло время улучшить юзабилити нашего реквизита. Как известно СНИЛС имеет определённый формат ввода. Кроме того, он содержит контрольное число в виде двух последних цифр для проверки корректности его ввода. Учитывая это, будет хорошим тоном по отношению к пользователям, если мы поможем ему корректно указать СНИЛС для сотрудника, а в случае ошибки предупредить его об этом.

Делаем маску ввода для дополнительного реквизита

Номер СНИЛС представляет собой строку следующего формата «XXX-XXX-XXX XX», где Х это цифра от 0 до 9. Последняя группа символов XX представляет собой контрольное число. К сожалению типовой механизм не позволяет задать маску ввода для дополнительных реквизитов. Поэтому внесем изменения в программный код. Создание полей на форме для дополнительных реквизитов происходит динамически при создании формы на сервере, либо при изменении некоторых реквизитов в уже открытой форме. Первичный вызов процедуры создания дополнительных реквизитов выглядит так:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

...

УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);

...

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

Само создание полей формы происходит в процедуре

УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме()

Откроем общий модуль УправлениеСвойствами и найдем там эту процедуру. Внесем туда изменения — добавим в конце вызов своей процедуры:

Процедура ЗаполнитьДополнительныеРеквизитыВФорме(Форма, Объект = Неопределено, ПоляНадписей = Ложь, СкрытьУдаленные = Неопределено) Экспорт

...

маг_РаботаСДокументами.ЗаполнитьДополнительныеРеквизитыВФорме(Форма, ОписаниеОбъекта, ПоляНадписей) ;

...

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

Теперь в общий модуль маг_РаботаСДокументами добавим  саму реализацию этой процедуры:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Процедура ЗаполнитьДополнительныеРеквизитыВФорме(Форма, Объект, ПоляНадписей) Экспорт

Если ТипЗнч(Объект.Ссылка) <> Тип(«СправочникСсылка.ВнутренниеДокументы») Тогда

Возврат;

КонецЕсли;

ВидДокументаСтрокой = «»+Форма.Объект.ВидДокумента;

Если ВидДокументаСтрокой = «Заявка на прием» тогда

//Получим уникальное имя для реквизита СНИЛС

ИмяДопРеквизита = маг_ПовторноеИспользование.УникальноеИмяДопРеквизита(Объект.ВидДокумента, «СНИЛС»);

Рек = Форма.Элементы.Найти(ИмяДопРеквизита);

Если Рек <> Неопределено тогда

Рек.Маска = «999-999-999 99»;

Рек.УстановитьДействие(«ПриИзменении», «маг_СНИЛСПриИзменении»);

КонецЕсли;

КонецЕсли;

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

Здесь мы сначала получаем уникально имя для нашего реквизита. По нему мы сможем обращаться как к самому реквизиту формы, так и к полю формы. Для получения уникального имени используем следующую функцию, поместим ее в общий модуль маг_ПовторноеИспользование:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

Функция УникальноеИмяДопРеквизита(ВидДокумента, ИмяРеквизита)  Экспорт

УстановитьПривилегированныйРежим(Истина);

Набор = ВидДокумента.НаборСвойств;

Результат  = «»;

Запрос = Новый Запрос;

Запрос.Текст =

«ВЫБРАТЬ ПЕРВЫЕ 1

| ВЫБОР

| КОГДА Наборы.ПометкаУдаления

| ТОГДА &ПустойНабор

| ИНАЧЕ Наборы.Ссылка

| КОНЕЦ КАК Набор,

| Наборы.Свойство

|ИЗ

| Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК Наборы

|ГДЕ

| Наборы.Ссылка = &Ссылка

| И Наборы.Свойство.Заголовок = &Наименование»;

Запрос.УстановитьПараметр(«Наименование», ИмяРеквизита);

Запрос.УстановитьПараметр(«Ссылка», Набор);

Запрос.УстановитьПараметр(«ПустойНабор», Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка());

РезультатЗапроса = Запрос.Выполнить();

Выб = РезультатЗапроса.Выбрать();

Если Выб.Следующий() тогда

ИмяУникальнаяЧасть =

СтрЗаменить(ВРег(Строка(Выб.Набор.УникальныйИдентификатор())), «-«, «x»)

+ «_»

+ СтрЗаменить(ВРег(Строка(Выб.Свойство.УникальныйИдентификатор())), «-«, «x»);

Результат = «ДополнительныйРеквизитЗначение_» + ИмяУникальнаяЧасть;

КонецЕсли;

Возврат Результат;

КонецФункции

После того как по уникальному имени получили ссылку на поле формы, устанавливаем для него маску ввода, а так же назначаем обработчик ПриИзменении для проверки корректности ввода СНИЛСа (об этом ниже). После внесения этих дополнений, значение СНИЛСа на форме должно вводиться по маске как показано на картинке ниже:

Ввод СНИЛС по маске

Маска для поля СНИЛС

Подключаем обработчик события для дополнительного реквизита

Для проверки корректности ввода СНИЛС используем типовую функцию из 1С:ЗУП. Поместим данную функцию в наш общий модуль маг_РаботаСДокументами. Ниже сама функция:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

Функция СтраховойНомерПФРСоответствуетТребованиям(СтраховойНомер) Экспорт

Результат = Истина;

СтрокаЦифр=СтрЗаменить(Лев(СтраховойНомер,11),«-«,«»);

Если ПустаяСтрока(СтрокаЦифр) Тогда

Возврат Ложь;

КонецЕсли;

Попытка

П1 = Число(СтрокаЦифр);

КонтрольноеЧисло=Число(Прав(СтраховойНомер,2));

Исключение

Возврат Ложь;

КонецПопытки;

Если Число(Лев(СтрокаЦифр,9)) > 1001998 Тогда

Всего=0;

Для Сч = 1 По 9 Цикл

Всего=Всего+Число(Сред(СтрокаЦифр,10Сч,1))*Сч

КонецЦикла;

Остаток=Всего%101;

Остаток=?(Остаток=100,0,Остаток);

Если Остаток<>КонтрольноеЧисло Тогда

Результат = Ложь;

КонецЕсли;

Иначе

Результат = Ложь;

КонецЕсли;

Возврат Результат;

КонецФункции

Помните, мы программно назначили обработчик на поле дополнительного реквизита. Теперь добавим саму процедуру для обработчика ПриИзменении в модуль формы элемента справочника «ВнтуренниеДокументы»:

&НаКлиенте

Процедура маг_СНИЛСПриИзменении(Элемент)

Если НЕ маг_РаботаСДокументами.СтраховойНомерПФРСоответствуетТребованиям(Элемент.ТекстРедактирования) тогда

ПоказатьПредупреждение(,«СНИЛС указан неверно!!!»);

КонецЕсли;

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

Теперь, если пользователь ошибется при вводе СНИЛСа, то система предупредит его и выдаст сообщение о некорректном значении:

Предупреждение о некорректном СНИЛСе

Предупреждение

Итоги

После небольших изменений в программе, поведение нашего дополнительного реквизита стало более дружелюбным к пользователю. Теперь при заполнении поля СНИЛСа легче визуально контролировать его правильность за счет маски ввода. Кроме того, даже если если пользователь ошибется при вводе, программа предупредит его об этом.

Маска для телефона (различные варианты)

Автор Алексей_1985_06, 03 июн 2021, 19:02

0 Пользователей и 1 гость просматривают эту тему.

Дорогие форумчане всем привет! Подскажите как сделать маску для нескольких вариантов телефона: сотовый как +7 (999) 876-56-45 и домашний как 347-87-99. В поле ввода (тип: строка) создал маску: + 7 (999) 999-99-99; 999-99-99, но заполняется только первый вариант всегда….. Как сделать чтобы можно было вводит разные варианты?


Цитата: Алексей_1985_06 от 03 июн 2021, 19:02
Дорогие форумчане всем привет! Подскажите как сделать маску для нескольких вариантов телефона: сотовый как +7 (999) 876-56-45 и домашний как 347-87-99. В поле ввода (тип: строка) создал маску: + 7 (999) 999-99-99; 999-99-99, но заполняется только первый вариант всегда….. Как сделать чтобы можно было вводит разные варианты?

попробуйте в маске написать 9 (999) 999 99 99


Цитата: Ивашка от 03 июн 2021, 19:26

Цитата: Алексей_1985_06 от 03 июн 2021, 19:02
Дорогие форумчане всем привет! Подскажите как сделать маску для нескольких вариантов телефона: сотовый как +7 (999) 876-56-45 и домашний как 347-87-99. В поле ввода (тип: строка) создал маску: + 7 (999) 999-99-99; 999-99-99, но заполняется только первый вариант всегда….. Как сделать чтобы можно было вводит разные варианты?

попробуйте в маске написать 9 (999) 999 99 99

Ивашка Спасибо Вам за ответ, но к сожалению не получилось :-( все равно при вводе телефона вида: 347 87 66 получается: 3 (478) 766.


Цитата: Алексей_1985_06 от 03 июн 2021, 19:40

Цитата: Ивашка от 03 июн 2021, 19:26

Цитата: Алексей_1985_06 от 03 июн 2021, 19:02
Дорогие форумчане всем привет! Подскажите как сделать маску для нескольких вариантов телефона: сотовый как +7 (999) 876-56-45 и домашний как 347-87-99. В поле ввода (тип: строка) создал маску: + 7 (999) 999-99-99; 999-99-99, но заполняется только первый вариант всегда….. Как сделать чтобы можно было вводит разные варианты?

попробуйте в маске написать 9 (999) 999 99 99

ну или программно,например при каком то событии
&НаКлиенте
Процедура НомераТелефоновТипНомераПриИзменении(Элемент)   

СтрокаТабличнойЧасти=Элементы.НомераТелефонов.ТекущиеДанные;
Если СтрокаТабличнойЧасти.ТипНомера =
ПредопределенноеЗначение("Перечисление.ТипТелефона.СотовыйНомер") тогда
СтрокаТабличнойЧасти.НомерТелефона.Маска=("8(999)999-99-99");
Иначе
СтрокаТабличнойЧасти.НомерТелефона.Маска=("99-99-99");
КонецЕсли;   

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

Ивашка Спасибо Вам за ответ, но к сожалению не получилось :-( все равно при вводе телефона вида: 347 87 66 получается: 3 (478) 766.


можно пойти по другому варианту
из поля ввода убрать маску
а уже после ввода номера, применять ту или иную маску
вот какой-то пример
на ввод коротких 7-цифр и длинных 10-цифр номеров

если помогло нажмите: Спасибо!


Цитата: LexaK от 04 июн 2021, 11:28
можно пойти по другому варианту
из поля ввода убрать маску
а уже после ввода номера, применять ту или иную маску
вот какой-то пример
на ввод коротких 7-цифр и длинных 10-цифр номеров

LexaK то что нужно! Спасибо Вам огромное за помощь!!!


Цитата: LexaK от 04 июн 2021, 11:28
можно пойти по другому варианту
из поля ввода убрать маску
а уже после ввода номера, применять ту или иную маску
вот какой-то пример
на ввод коротких 7-цифр и длинных 10-цифр номеров

LexaK извините что надоедаю с одним и тем же вопросом. но никак не могу разобраться почему при записи маска «слетает» т.е при вводе номера все работает маска отрабатывает как надо, а при записи — в поле ввода получается значение которое введено (маска не работает). Подскажите в чем может быть проблема?

#Область Работа_с_маской_телефона

&НаКлиенте
Процедура ТелефонИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)

Элементы.Телефон.Маска = "";

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

&НаКлиенте
Процедура ТелефонПриИзменении(Элемент)

Если СтрДлина(Запись.Телефон) = 0 Тогда
Элементы.Телефон.Маска = "";
ИначеЕсли СтрДлина(Запись.Телефон) = 4 Тогда
Элементы.Телефон.Маска = "99-99";
ИначеЕсли СтрДлина(Запись.Телефон) = 7 Тогда
Элементы.Телефон.Маска = "999-99-99";
ИначеЕсли СтрДлина(Запись.Телефон) = 10 Тогда
Элементы.Телефон.Маска = "+7 (999) 999-99-99";
Иначе
Элементы.Телефон.Маска = "";
КонецЕсли;

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

&НаКлиенте
Процедура ТелефонОчистка(Элемент, СтандартнаяОбработка)
Элементы.Телефон.Маска = "";
КонецПроцедуры

#КонецОбласти


так маска это вроде как формат/оформление текстовой строки,
сама текстовая строка хранится в базе, а при выводе на форму в элемент получает нужную (их может быть множество) маску
если вам надо именно результат преобразования текста с маской то отдельно получайте из элемента формы, свойство .ТекстРедактирования
только потом его надо без маски выводить (скорее всего)

еще как вариант используйте поле/реквизит ТипНомера
Городской
Мобильный
при выборе типа устанавливаете нужную маску
при открытии формы, так-же проверяете ТипНомера устанавливаете маску на поле телефона

если помогло нажмите: Спасибо!


Цитата: LexaK от 07 июн 2021, 10:27
так маска это вроде как формат/оформление текстовой строки,
сама текстовая строка хранится в базе, а при выводе на форму в элемент получает нужную (их может быть множество) маску
если вам надо именно результат преобразования текста с маской то отдельно получайте из элемента формы, свойство .ТекстРедактирования
только потом его надо без маски выводить (скорее всего)

еще как вариант используйте поле/реквизит ТипНомера
Городской
Мобильный
при выборе типа устанавливаете нужную маску
при открытии формы, так-же проверяете ТипНомера устанавливаете маску на поле телефона

LexaK спасибо большое! Все понял….


Цитата: Алексей_1985_06 от 07 июн 2021, 18:34

Цитата: LexaK от 07 июн 2021, 10:27
так маска это вроде как формат/оформление текстовой строки,
сама текстовая строка хранится в базе, а при выводе на форму в элемент получает нужную (их может быть множество) маску
если вам надо именно результат преобразования текста с маской то отдельно получайте из элемента формы, свойство .ТекстРедактирования
только потом его надо без маски выводить (скорее всего)

еще как вариант используйте поле/реквизит ТипНомера
Городской
Мобильный
при выборе типа устанавливаете нужную маску
при открытии формы, так-же проверяете ТипНомера устанавливаете маску на поле телефона

LexaK спасибо большое! Все понял….

LexaK прошу у Вас опять помощи! Необходимо хранить телефоны сотрудников (писал об этом ранее) по Вашей рекомендации сделал РС «Телефоны» для хранения этой информации, при открытии элемента справочника «Сотрудники» в ТЧ (запросом) получаю все эти номера на отдельной закладке в ТЧ, при вводе, изменении или удалении номера телефона из ТЧ, в процедуре <При записи>, в РС создается новый набор записей телефонов из ТЧ справочника «Сотрудники» :

НаборЗаписей = РегистрыСведений.Телефоны.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Сотрудник.Установить (Ссылка);
Для каждого Строка Из Телефоны Цикл
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Сотрудник = Ссылка;
НоваяЗапись.Телефон = Строка.Телефон;
НоваяЗапись.ТипНомера = Строка.ТипНомера;
НоваяЗапись.СтатусНомера = Строка.СтатусНомера;
КонецЦикла;
НаборЗаписей.Записать(Истина);

Но загвоздка в том, что не получается в ТЧ справочника вводить номера в соответствии с маской… получается что я ввожу номер 89813334455 и он в таком виде отображается на форме списка РС. Подскажите как при вводе номера в строке ТЧ (справочника), сделать маску в соответствии с выбранным типом номера телефона? :dfbbdrfb::dfbbdrfb::dfbbdrfb:

P.S.
В РС «Телефоны» данная процедура отрабатывает как надо, все номера после записи отображаются на форме списка в соответствии с заданной маской:

Процедура МаскаТелефона();

Если  Запись.ТипНомера = ПредопределенноеЗначение("Перечисление.ТипНомера.Мобильный") Тогда // если номер мобильный
Элементы.Телефон.Маска = "+7 (999) 999-99-99";
ИначеЕсли  Запись.ТипНомера = ПредопределенноеЗначение("Перечисление.ТипНомера.ГАТС") Тогда   // если номер городской
Элементы.Телефон.Маска = "999-99-99";
ИначеЕсли  Запись.ТипНомера = ПредопределенноеЗначение("Перечисление.ТипНомера.Внутренний") Тогда   // если номер внутренний
Элементы.Телефон.Маска = "99-99"; 
ИначеЕсли  Запись.ТипНомера = ПредопределенноеЗначение("Перечисление.ТипНомера.АТСР") Тогда   // если номер АТСР
Элементы.Телефон.Маска = "99-99";
ИначеЕсли  Запись.ТипНомера = ПредопределенноеЗначение("Перечисление.ТипНомера.АТСО") Тогда   // если номер АТСО
Элементы.Телефон.Маска = "99-99";
Иначе
Элементы.Телефон.Маска = "";
КонецЕсли;

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


Понравилась статья? Поделить с друзьями:

Вот еще несколько интересных статей нашего сайта:

  • Монгольские компании в москве
  • Мондиал бизнес консорциум ооо
  • Монетка реквизиты организации
  • Монополия на большую компанию
  • Монопольные компании в россии

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии