Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Использование спецсимвола 9, как обычной цифры 9 в маске 1с 7.7
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
danil2304
Добрый день. Есть 3 переключателя, такой код:
Процедура ПриВыбореПерек()
    Если (ИП245 = 1) Тогда
        Форма.ИПАдрес1.Маска("173.234.14.999");    
    КонецЕсли;
     Если (ИП245 = 2) Тогда
            Форма.ИПАдрес1.Маска("10.156.187.999");
    КонецЕсли;
     Если (ИП245 = 3) Тогда
            Форма.ИПАдрес1.Маска("192.168.3.999");  
    КонецЕсли;
КонецПроцедуры; //ПриВыбореПерек

При выборе последней маски в числе "192" 9-ка используется как спец символ, каким образом сделать так, чтобы она была частью маски?(То есть просто цифрой 9)
pablo
переписать обработку маски так, чтобы она их искала/заменяла только в последнем октете адреса
danil2304
pablo @ Сегодня, 9:37 необходимо зарегистрироваться для просмотра ссылки,
А где она находится? Не могу найти.
pablo
Вероятно, в модуле конфигурации "Управление космическими полетами"
danil2304
pablo @ Вчера, 14:45 необходимо зарегистрироваться для просмотра ссылки,
А если серьезно? Перерыл все модули, не могу найти код, где присутствует маска
pablo
Вы используете типовой механизм работы с встроенной функцией Маска(). Он вас не устраивает. В таком случае возможно изменить поведение функции только в случае, когда вы будете использовать не типовые элементы управления (из каких-либо внешних компонент). Стандартная Маска() весьма убога, но для Ваших старых айпишников - вполне годилась. Тут уже определяйтесь, что дешевле - сменить айпишники или подключить, настроить и использовать ВК.
danil2304
pablo @ Сегодня, 8:42 необходимо зарегистрироваться для просмотра ссылки,
То есть, как я понял, встроенную функцию Маска() редактировать не получится?
Что есть "ВК"?
Цитата(pablo @ 12.05.16, 8:42) необходимо зарегистрироваться для просмотра ссылки
подключить, настроить и использовать ВК.

volodya1122
Можно сделать не совсем красиво но эффективно. (например так, два варианта)
1. Так как пользователю в любом случае нужно вводить только три последних символа, то и разрешить вводить только три последних символа. а преффикс на форме выводить "текстом" А потом в модуле склеить эти два значения.
2. В маске заменить девятку на латинскую букву "g". А после ввода сделать преобразование этой строки СтрЗаменить(ИРАдрес1,"g",9)
danil2304
volodya1122 @ Вчера, 14:24 необходимо зарегистрироваться для просмотра ссылки,
о 1ом я уже думал, а вот второй вариант у меня не выходит. Помещал СтрЗаменить и в функцию выбора и в процедуру "ПриЗаписи" - не меняет, по факту записывает букву g, строчку писал и СтрЗаменить("ИПАдрес1,"g",9);(тут, на сколько я понимаю ИПАДрес1 будет простро строкой, а не переменной) и СтрЗаменить(ИПАдрес1,"g",9);, а так решение понравилось.
volodya1122
danil2304 @ Сегодня, 5:51 необходимо зарегистрироваться для просмотра ссылки,

Только что проверил.
Формулу
ИПАдр=СтрЗаменить(ИПАдр,"g",9);

нужно повесить на реквизит на форме, в процеедуру ПриОткритии() и в процедуру ПриЗаписи()
На форме будет отображаться как должно быть по маске, а в бузу запишется с девяткой (проверил в форме списка сравочника)

Но в таком случае есть один существенный минус; каждый раз появляется запрос на сохранения справочника (Даже если реально изменений справочника небыло.
Можно сделать по другому: оставлять в базе с "g". В во всех отчетах, документах,..... где используется этот ИПАдрес делать замену g на 9.

Еще можно в справочнике ИР записывать через промежуточную переменную. (тоисть на форме выродить не реквизит справочника, а переменную. корорую связать с нужным реквизитом) - у меня именно так сделано - но немножко для другого случая. В таком случае 1с не задает лишних вопросов
danil2304
volodya1122 @ 13.05.16, 15:09 необходимо зарегистрироваться для просмотра ссылки,
Отлично работает, спасибо. Даже все проверки, которые идут после этой замены и проверка на уникальность ИП работает. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.