Имя: Пароль:
1C
1С v8
Как проверить "..имя объекта конфигурации, должно состоять из одного слова..."
0 aspirator23
 
10.03.14
14:41
Пользователи заполняют справочник, наименования элементов, которого впоследствии используются как имена кнопок, программно формируемых на форме обработки. Поэтому названия элементов справочника должны корректно введены: "...должны состоять из одного слова, начинаться с буквы и не должно содержать специальных символов, кроме “_”..."
(пробел допустим - вырежу при формировании кнопки).
Каким способом можно проверить соблюдение правила, кроме приведенной ниже процедуры? Не люблю без необходимости использовать Попытка-Исключение-КонецПопытки.
Процедура НаименованиеОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    Попытка
        ТЗПроверки=Новый ТаблицаЗначений;
        ТЗПроверки.Колонки.Добавить(СтрЗаменить(СокрЛП(Текст)," ",""));
    Исключение
        СтандартнаяОбработка=Ложь;    
        Предупреждение("Наименование должно начинаться с буквы и не должно содержать специальных символов, кроме “_”");
    КонецПопытки;
КонецПроцедуры
1 ОбычныйЧеловек
 
10.03.14
14:46
(0) Это на сколько же сильно надо ненавидеть пользователя, что бы свои поблемы (по формиромнию идентификатора колонки) возлагать на пользователя.....
2 aspirator23
 
10.03.14
14:47
(1) О ненависти нет речи. Справочник доступен пользователю. Он сам решает как должна быть названа кнопка.
3 ОбычныйЧеловек
 
10.03.14
15:03
(2) в твоем описание поблемы - пользователь ровным счетов ничего не решает... С таким подходом - разработка это не совсем твое (без обид).
Совет: Справочник вообще не твогай - захотел пользоватеь назвать "моя супер пупер кнопка" - так пусть называет.Когда формируешь кнопку\колонку или что там у тебя еще - создавай уникальный идентификатор и связывай его с элеметом справочника.Либо  получай идентификатор этого сравочника (викинув оттуда запрещенные символы) - работы на 5 минут.
4 Torquader
 
10.03.14
15:11
У справочника, наверное, есть код - его и используй, как идентификатор, а вот текстовое представление пусть пользователь пишет как хочет - может быть - они хотят, чтобы все кнопки назывались одинаково.
5 aspirator23
 
10.03.14
15:11
(3) Проблема в том, что здесь пару словами всю задачу не опишешь. Поэтому лучше отвлечься от методики как ее решить.
Нужно решить: Как проверить значение на соответствие правилу?
Правило для наименования объектов.
6 aspirator23
 
10.03.14
15:17
(4) В данной задаче к сожалению код не подходит.
Проблема решается использованием названия элемента справочника и семью строками кода указанном в (0).
Но в этом коде не нравится попытка/исключение.
7 ОбычныйЧеловек
 
10.03.14
15:18
(5) Глупостью занимаешься (ибо в чем задача (и способ решения) было понятно с первых строк. Ну раз уж тебе не жить не быть хочется
Проверить слово то в цикле по длине строки проверь каждый символ (символ должен быть в интревале символов которые являются буквами)
8 aspirator23
 
10.03.14
15:19
(7) О цикле думал, но уж больно некрасивое решение.
9 echo77
 
10.03.14
15:24
Найти(), но все равно в цикле по строке доступных символов
10 aspirator23
 
10.03.14
15:27
(9) Видимо решение только циклом. Закрываем ветку.
11 ОбычныйЧеловек
 
10.03.14
15:28
(8) оно конечно наверно здорово искать красивое решение для изначально неправильной задачи, но вот вопрос - зачем? Может все  таки сразу сделать и красиво и правильно?
12 mrDSide
 
10.03.14
15:30
Так попробуй))
имя=/"_/";
Для й=1 По СтрДлина(МоеНазвание) Цикл
    имя=имя+КодСимвола(Сред(МоеНазвание,й,1));
КонецЦикла;
Колонки.Добавить(....);
13 aspirator23
 
10.03.14
15:34
(12) Интересное решение. Запомню.
14 mrDSide
 
10.03.14
15:39
(13) Точно говорю, работает нормально (делал когда-то тестовое задание) на УФ, там хотели видеть в колонках склады и что не отчет и не СКД.
15 Remark
 
10.03.14
15:57
(12)+ Я так таблицы дбф загружал, там идентификаторы могли только регистром символа отличаться, что в 1с при установке отбора в табполе представляет проблему, так как берет разные ключи, а в 1с они одинаковые.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс