Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0
Добрый день. Есть 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)
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0
Вы используете типовой механизм работы с встроенной функцией Маска(). Он вас не устраивает. В таком случае возможно изменить поведение функции только в случае, когда вы будете использовать не типовые элементы управления (из каких-либо внешних компонент). Стандартная Маска() весьма убога, но для Ваших старых айпишников - вполне годилась. Тут уже определяйтесь, что дешевле - сменить айпишники или подключить, настроить и использовать ВК.
Правильно поставленный вопрос содержит до 90% ответа.
Можно сделать не совсем красиво но эффективно. (например так, два варианта) 1. Так как пользователю в любом случае нужно вводить только три последних символа, то и разрешить вводить только три последних символа. а преффикс на форме выводить "текстом" А потом в модуле склеить эти два значения. 2. В маске заменить девятку на латинскую букву "g". А после ввода сделать преобразование этой строки СтрЗаменить(ИРАдрес1,"g",9)
Сообщение отредактировал volodya1122 - 12.05.16, 14:26
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ Вчера, 14:24 , о 1ом я уже думал, а вот второй вариант у меня не выходит. Помещал СтрЗаменить и в функцию выбора и в процедуру "ПриЗаписи" - не меняет, по факту записывает букву g, строчку писал и СтрЗаменить("ИПАдрес1,"g",9);(тут, на сколько я понимаю ИПАДрес1 будет простро строкой, а не переменной) и СтрЗаменить(ИПАдрес1,"g",9);, а так решение понравилось.
нужно повесить на реквизит на форме, в процеедуру ПриОткритии() и в процедуру ПриЗаписи() На форме будет отображаться как должно быть по маске, а в бузу запишется с девяткой (проверил в форме списка сравочника)
Но в таком случае есть один существенный минус; каждый раз появляется запрос на сохранения справочника (Даже если реально изменений справочника небыло. Можно сделать по другому: оставлять в базе с "g". В во всех отчетах, документах,..... где используется этот ИПАдрес делать замену g на 9.
Еще можно в справочнике ИР записывать через промежуточную переменную. (тоисть на форме выродить не реквизит справочника, а переменную. корорую связать с нужным реквизитом) - у меня именно так сделано - но немножко для другого случая. В таком случае 1с не задает лишних вопросов
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0
volodya1122 @ 13.05.16, 15:09 , Отлично работает, спасибо. Даже все проверки, которые идут после этой замены и проверка на уникальность ИП работает. Спасибо.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!