|
Запрет на введение символов в имени контрагента ↓ (Волшебник 18.04.2024 22:20) |
☑ | ||
---|---|---|---|---|
0
vienya
12.04.24
✎
09:55
|
Как установить ограничение на введение цифр, латиницы и спецсимволов при заведении нового контрагента?
С сайта ИТС https://its.1c.ru/db/bsp315doc/content/172/hdoc составил такой код: Функция ТолькоКириллицаВСтроке(ФИО, Ложь, "-") Экспорт КонецФункции; Где разместить этот код? |
|||
1
maxab72
12.04.24
✎
09:57
|
В переопределяемом общем клиентском модуле
|
|||
2
Гена
12.04.24
✎
10:01
|
Бедная, бедная фирма 1С...
|
|||
3
Zamestas
12.04.24
✎
10:03
|
(0) Ты документацию по диагонали читаешь? Там же написано:
Результат = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(СтрокаПроверки, УчитыватьРазделителиСлов, ДопустимыеСимволы) соответственно в конфигурации уже есть функция: ТолькоКириллицаВСтроке которая расположена в общем модуле СтроковыеФункцииКлиентСерверРФ тебе только вызвать её нужно, из любого удобного места для проверки ФИО. |
|||
4
Гена
12.04.24
✎
10:04
|
(3) Посмотрите заголовок. Автор не ФИО проверять будет, а наименование контрагента.
|
|||
5
Zamestas
12.04.24
✎
10:14
|
(4) Так в (0) он явно ФИО проверяет.
|
|||
6
yopQua
12.04.24
✎
10:18
|
(4) так он же болгарин
да? а какая разница |
|||
7
Мультук
12.04.24
✎
10:20
|
(0)
Где разместить этот код? Смотреть нужно в события: "ПередЗаписью" в форме или "ПередЗаписью" в модуле объекта Желательно такие проверки выносить в отдельные функции/процедуры. Можно еще родить "Расширение" и написать туда P.S. А по хорошему нужно идти на курсы и читать книжки. |
|||
8
vienya
12.04.24
✎
10:24
|
(4) (5) Верное замечание, потому что это ограничение касается только физических лиц, как их разграничить с юридическими лицами?
К ним можно обратиться через Если ... тогда КонецЕсли; ? |
|||
9
yopQua
12.04.24
✎
10:29
|
(8) проверкой на перечисление в контрагенте?
пс. в типовых кажется это перечисление |
|||
10
Гена
12.04.24
✎
10:30
|
Да хоть бы и ФИО. Это только лет 5 назад Путин подписал запрет на цифры в именах после известного суда, где родители дали сыну номер подводной лодки. Но ИП же явно не дети. У них могут быть имена хоть Людовик XIV
|
|||
11
vienya
12.04.24
✎
10:42
|
(7) На ФормеЭлемента есть "ПередЗаписью". "ПередЗаписьюНаСервере" не трогать?
|
|||
12
АгентБезопасной Нацио
12.04.24
✎
10:57
|
(10) Вот у нас в контрах есть потрясающие армяне с отчествами "Ваникович", "Сержантович" и даже "Жульвернович". а вот "нумерованных" не разу не встречал
|
|||
13
Kigo_Kigo
12.04.24
✎
11:10
|
Запрет на введение и проверка на введеные данне-это 2 разные вещи, это во первых
во вторых контролировать это можно на разных уровнях, при вводе, после ввода, перед записью, не посредственно при записи, еще вопрос - надо отругать пользователя за это и/или исправить, или предоставить это пользователю, что бы он свои "биоматериалы" оставил на это дествие, типа что он уверен что так и должно быть, потом еще есть такая фигня, когда контриков/физ лица покинувших на всегда компанию или уже закрывшиеся, или вообще минус 2, метят - каким то образом, к примеру в наименовании перед ставят ему "#" - что типа не дейсвующий |
|||
14
maxab72
12.04.24
✎
11:29
|
Здесь скорее нужен запрет на непечатные символы, когда при заполнении контрагента копируют его название с какой-либо веб-страницы, а потом при обменах начинаются карнавалы и поиск, у кого в наименовании запретный символ есть...
|
|||
15
maxab72
12.04.24
✎
11:37
|
(12) У нас круче, есть сотрудник-татарин Данияр Рамзесович (он же для своих "Тутанхамоныч")
|
|||
16
АгентБезопасной Нацио
12.04.24
✎
11:45
|
(15) не круче. с Жульверновичем на одном уровне.
|
|||
17
Garykom
12.04.24
✎
11:50
|
(0) ПриИзменении (элемента на формах) и ПередЗаписью (обязательно после ОбменДанными.Загрузка = Истина)
|
|||
18
vienya
12.04.24
✎
14:08
|
(17) Спасибо.
Мне нужно только ПередЗаписью. Данная процедура есть в Форме Элемента и модуле объекта. Пытался и в общем модуле создать. Помогите! Не знаю как обратиться к полю НаименованиеДляДокументов/НаименованиеВПрограмме? Результат = СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке([?], Ложь, "-"); И даже как обратиться к самому справочнику Контрагенты? [?].ОбменДанными.Загрузка = истина; [?].Записать(); |
|||
19
Kigo_Kigo
12.04.24
✎
15:00
|
ЭтотОбъект.НаименованиеДляДокументов?кстати есть там такое поле вообще?
|
|||
20
Kigo_Kigo
12.04.24
✎
15:02
|
если это типовая то там есть только
НаименованиеПолное и Наименование |
|||
21
vienya
12.04.24
✎
15:28
|
(20)В справочнике контрагенты реквизит НаименованиеПолное.
Но пишет: {Справочник.Пользователи.Форма.ФормаЭлемента.Форма(415,68)}: Переменная не определена (НаименованиеПолное) И то же с Наименованием |
|||
22
Kigo_Kigo
12.04.24
✎
15:31
|
если это Справочник.Пользователи.Форма.ФормаЭлемента.Форма
тогда Объект.Наиманование Объект.НаименованиеПолное |
|||
23
АгентБезопасной Нацио
12.04.24
✎
15:31
|
(21) позовите уже программиста!
|
|||
24
Kigo_Kigo
12.04.24
✎
15:32
|
в модуле объекта объект превращается в ЭтотОбъект, это если делать проверку в процедуре ПередЗаписью
|
|||
25
Kigo_Kigo
12.04.24
✎
15:33
|
(23) Да ладно, пусть разбирается, мы все шишики набиваем исключительно об свой лоб :)
|
|||
26
Garykom
12.04.24
✎
15:36
|
(24) МодификацияКонфигурацииПереопределяемый же есть
|
|||
27
Kigo_Kigo
12.04.24
✎
15:45
|
(26) А где это он есть?
У меня нет |
|||
28
vienya
12.04.24
✎
16:27
|
(22) Спасибо. На ошибки в конфигураторе код прошёл. Но в режиме предприятия спецсимволы по-прежнему вводятся!
P.S. Странно, я думал, для запрета на ввод спецсимволов, латиницы и цифр в наименовании физлиц должен бы быть какой-нибудь универсальный инструмент. |
|||
29
Kigo_Kigo
12.04.24
✎
16:40
|
(28) Так они и будут вводится, кудаж они денутся, если ты проверяешь уже введеные, а ты сам смотрел функцию
ТолькоКириллицаВСтроке -? она возращает ложь или истину РезультатПроверкиФИО = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наиманование, Ложь, "-"); Если Не РезультатПроверкиФИО тогда сообщить("В наименование есть не допустимые символы"); Возврат; КонецЕсли; |
|||
30
Garykom
12.04.24
✎
16:47
|
(27) У ТС что не УТ11 ?
|
|||
31
Kigo_Kigo
12.04.24
✎
17:08
|
(30) Не знаю, в моей УХ нет :)
|
|||
32
Garykom
12.04.24
✎
17:35
|
(31) просто УХ это на основе БП3, там да нет такого
но общие модули которые вызываются ПриСозданииНаСервере, ПередЗаписью и т.д. должны быть |
|||
33
Timon1405
12.04.24
✎
17:53
|
||||
34
SleepyHead
12.04.24
✎
18:15
|
(2) 🔥🔥🔥
|
|||
35
vienya
12.04.24
✎
20:45
|
(29) Kigo_Kigo Спасибо за готовый рабочий код!
(33) Странно, но инструкцию можно понять ТОЛЬКО после рабочего кода. До этого она набор букв. |
|||
36
vienya
15.04.24
✎
12:35
|
На локальной тестовой код работает, а на БП Корп нет.
Для рабочей базы создал внешнюю обработку, в её модуле объекта разместил по шаблону с ИТС СведенияОВнешнейОбработке Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1"); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта(); ПараметрыРегистрации.Версия = "1.0"; Команда = ПараметрыРегистрации.Команды.Добавить(); Команда.Представление = НСтр("ru = 'Ограничение Наименования Контрагента'"); Команда.Идентификатор = "ОграничениеНаименованияКонтрагента"; Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(); Команда.ПоказыватьОповещение = Истина; Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина); ПараметрыРегистрации.Разрешения.Добавить(Разрешение); Возврат ПараметрыРегистрации; КонецФункции Скрыть и разместил указанный (29) Kigo_Kigo код в процедуру ПередЗаписью(Отказ, ПараметрыЗаписи). Саму обработку разместил в справочник Контрагенты. Но в режиме предприятия всё по-прежнему вносится латиницей. Почему внешняя обработка не срабатывает, что я делаю не так? |
|||
37
Мультук
15.04.24
✎
13:12
|
(36)
1) Зачем нужна внешняя обработка "Заполнение объекта" ? Что она должна делать по вашему мнению ? Каким кодом она должна что-то делать? Почему и когда она должна срабатывать ? Объясните самому себе. 2) Покажите ВСЮ процедуру ПередЗаписью(Отказ, ПараметрыЗаписи) с кодом от Kigo_Kigo Что за переменная "Отказ" и для чего она нужна? Что будет если написать: Отказ = Истина; |
|||
38
vienya
15.04.24
✎
13:51
|
(37)
1) Зачем нужна внешняя обработка "Заполнение объекта" ? - На локальной тестовой базе код работает, а когда его вписываешь в БП Копр нет. Пробовал скопировать справочник Контрагенты в расширения и вписать там, результата тоже нет. Что она должна делать по вашему мнению ? - Ограничение на введение цифр, латиницы и спецсимволов при заведении нового контрагента. Каким кодом она должна что-то делать? Предполагалось несколько вариантов: //1 вариант &НаКлиенте Процедура ПриИзменении (Отказ, ТекущееЗначение) РегВыр = Новый РегВыр ("[^a-zA-Zа-яА-Я0-9]") Если РегВыр.Соответствует(СтрокадляПроверки) Тогда Сообщить ("Имя контрагента не должно содержать спецсимволы!") Отказ = Истина; КонецЕсли КонецПроцедуры //2 вариант Функция ПроверкаНаименованияЮЛ (Наименование) Перем РегВыр; РегВыр = Новый Строкой ("\d"); //регулярное выражение для проверки наличия цифр Если Не СтрНайти (РегВыр.Сопоставить (Наименование), 1) Тогда Возврат Ложь; //в намименовании есть цифры Иначе Возврат Истина; //в наименовании нет цифр Конецесли; КонецФункции //3 вариант Функция ПроверкаНаименованияФЛ (Наименование) Перем РегВыр; РегВыр = Новый Строкой ("^[^\p{P}\p{S}\p{Z}]=$"); //регулярное выражение для проверки на отсутствие спецсимволов Если Не СтрНайти (РегВыр.Сопоставить (Наименование), 1) Тогда Возврат Истина; //в намименовании нет спецсимволов Иначе Возврат Ложь; //в наименовании есть спецсимволы Конецесли; КонецФункции Все они оказались нерабочими... Почему и когда она должна срабатывать ? Почему - я объяснить самому себе не могу. Когда? При заполнении строки (процедура ПередЗаписью()) 2) Покажите ВСЮ процедуру ПередЗаписью(Отказ, ПараметрыЗаписи) с кодом от Kigo_Kigo Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Результат = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "-"); //ЭтотОбъект при внешней обработке Если Не Результат Тогда Сообщить("В наименовании есть недопустимые символы"); Возврат; КонецЕсли; КонецПроцедуры Этот вариант рабочий, но как его применить во внешней форме? |
|||
39
Kigo_Kigo
15.04.24
✎
14:05
|
Жмакаешь ПередЗаписью - ПКМ добавить в раширение "перед"
&Перед("ПередЗаписью") Процедура ПередЗаписьюПеред(Отказ, ПараметрыЗаписи) Результат = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "-"); //ЭтотОбъект при внешней обработке Если Не Результат Тогда Сообщить("В наименовании есть недопустимые символы"); Отказ = Истина; КонецЕсли; КонецПроцедуры и не надо никаких внешних обработок |
|||
40
Timon1405
15.04.24
✎
14:17
|
(35) это было больше не про инструкцию, а про точку входа: процедуру обработки проверки заполнения
|
|||
41
Garikk
15.04.24
✎
14:18
|
(0) почему вы запрещаете цифры в контрагенте?
полно фирм с цифрами в названии же |
|||
42
Aleksey
15.04.24
✎
14:30
|
(41) См (8)
|
|||
43
vienya
15.04.24
✎
15:15
|
(39) У меня через ПКМ не добавляется. Не понял магических слов &Перед("ПередЗаписью"), но добавил, как и Процедура ПередЗаписьюПеред(Отказ, ПараметрыЗаписи)
Пробовал и на ФормеЭлемента и на Модуле объекта. И отдельно и в ПередЗаписьюНаСервере. Чуда не произошло. Kigo_Kigo, в локальной пашет, в серверной нет. (41) Для ФЛ запрет на спецсимволы, цифры и латиницу, для ЮЛ только на спецсимволы. Следующим шагом планирую прописать условием. |
|||
44
Kigo_Kigo
15.04.24
✎
15:22
|
я пропустил ТС говорил какая у него конфа?
|
|||
45
Kigo_Kigo
15.04.24
✎
15:23
|
Вот так пробуешь?
|
|||
46
Kigo_Kigo
15.04.24
✎
15:24
|
После добавление система тебя сама сросит когда вызвать этот модуль, надо поставить галку - перед
|
|||
47
vienya
15.04.24
✎
16:20
|
(45) О как! Спасибо.
(46) По умолчанию вызывается Вызывать вместо (уже создан), можно открыжить Вызвать вместо (с контролем), а Вызвать перед и Вызвать после - не активны. Вот такой код на ФормеЭлемента справочника Контрагенты: Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Результат = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(ЭтотОбъект.Наименование, Ложь, "-"); Если Не Результат Тогда Сообщить("В наименовании есть недопустимые символы"); Отказ = Истина; КонецЕсли; КонецПроцедуры Вот такой код на ФормеЭлемента Доработки справочника Контрагенты: &Перед("ПередЗаписью") Процедура ПередЗаписьюПеред(Отказ, ПараметрыЗаписи) РезультатПроверкиФИО = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(ЭтотОбъект.Наименование, Ложь, "-"); //ЭтотОбъект при внешней обработке Если Не РезультатПроверкиФИО Тогда Сообщить("В наименовании есть недопустимые символы"); Отказ = Истина; КонецЕсли; КонецПроцедуры Код не работает, что можно подправить? |
|||
48
Мультук
15.04.24
✎
16:32
|
>> Вот такой код на ФормеЭлемента справочника Контрагенты:
У меня нет БП Корп, но в обычной БП в функции &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) //Куча типового кода от 1С КонецПроцедуры Вы или эти строки от 1С или прилежно удаляете, или ... |
|||
49
vienya
15.04.24
✎
17:23
|
(48) Спасибо! У меня действительно &НаКлиенте не стояло. Жаль это не исправило ситуацию.
|
|||
50
vienya
16.04.24
✎
09:49
|
Как быть, если на локальной тестовой базе код работает, а на серверной БП Копр - нет?
Есть рабочий код на ограничение введения латиницы и спецсимволов при заведении нового контрагента: &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Результат = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "-"); Если Не Результат Тогда Сообщить("В наименовании есть недопустимые символы"); Возврат; КонецЕсли; КонецПроцедуры Данный код разместил на форме элемента и через ПКМ (Тип вызова: Вызвать вместо) добавил в расширение Процедура ДК1_ПередЗаписьюВместо(Отказ, ПараметрыЗаписи). Подозреваю, что не работает обработчик события формы. |
|||
51
Гена
16.04.24
✎
09:55
|
Пятый день человек мучается. Коллеги, напишите же ему кто-нибудь этот простейший код за долю малую )
|
|||
52
vienya
16.04.24
✎
11:15
|
(51) Заработал код! - мешало слово Возврат; (как и Отказ = Истина;)
Kigo_Kigo, спасибо за код; Мультук, спасибо за внимательность; Timon1405, спасибо за ссылку; Гена, спасибо за сердечность. |
|||
53
vienya
16.04.24
✎
15:44
|
Кстати, как по условию обратиться в справочнике контрагенты к строке наименования Юр/ФизЛица ?
Пробую в ФормеЭлемента: Объект.НаименованиеПолное = ""; Если Объект.НаименованиеПолное = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда [условие недопустимых символов физлица] Иначе [условие недопустимых символов юрлица] КонецЕсли; Пишет: Переменная не определена (Перечисления) |
|||
54
FIXXXL
16.04.24
✎
17:05
|
(53) на клиенте нет "Перечисления"
есть костыль ПредопределенноеЗначение и вот это Объект.НаименованиеПолное = ""; Если Объект.НаименованиеПолное = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда что должно сделать? ты пустую строку сравниваешь со значением перечисления |
|||
55
vienya
16.04.24
✎
22:41
|
(54) что должно сделать?
Это я от отчаяния)) Извините! Спасибо! А как само условие задать? Если ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо") Тогда Объект.НаименованиеПолное и как-то вписать условие недопустимых символов? Я понимаю, что это "садись, два" |
|||
56
Мимохожий Однако
16.04.24
✎
23:00
|
ОФФ "Спокойствие Штюбинг... ваше щетина превратится в золото"
|
|||
57
vienya
17.04.24
✎
14:18
|
С учетом всех замечаний сделал такой вот код в виде функции в расширении:
&НаСервере &Вместо("ПроверкаНаименования") Функция ДК1_ПроверкаНаименования() с функции на ФормеЭлемента: &НаСервере &Вместо("ПроверкаНаименования") Функция ДК1_ПроверкаНаименования() РезультатПроверки = Ложь; Если Объект.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо") Тогда РезультатПроверкиФЛ = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "-"); Если Не РезультатПроверкиФЛ Тогда Сообщить("В наименовании ФЛ недопустимые символы"); Отказ = Истина; КонецЕсли; Иначе РезультатПроверкиЮЛ = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"); Если Не РезультатПроверкиЮЛ Тогда Сообщить("В наименовании ЮЛ недопустимые символы"); Отказ = Истина; КонецЕсли; Возврат РезультатПроверки; Результат = ПродолжитьВызов(); Возврат Результат; КонецФункции; В расширении в &НаСервере Процедура ДК1_ПередЗаписьюНаСервереПеред(Отказ, ТекущийОбъект, ПараметрыЗаписи) добавил: Результат = ПроверкаНаименования() Кажется, что с логикой разобрался, но код также не рабочий. |
|||
58
vienya
18.04.24
✎
02:03
|
Пытаюсь на доработке ограничить названия контрагентов ФЛ (на спецсимволы, цифры, латиницу, в титульном регистре) и ЮЛ (только на спецсимволы) в БП Корп 8.3 Написал в Справочнике Контрагенты: ФормаЭлемента. ПКМ добавил в расширение, получилась функция с теми же потрохами.
Если Объект.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо") Тогда //Причём этот усечённый код цикла отдельно работает: РезультатПроверкиФЛ = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь, "-"); Если Не РезультатПроверкиФЛ Тогда Сообщить("В наименовании ФЛ недопустимые символы"); Отказ = Истина; КонецЕсли; КонецЕсли; //И также с условием для ЮрЛица. А вот код условного оператора не работает. Что не так? |
|||
59
Мультук
18.04.24
✎
07:33
|
(58)
1) Здесь нет цикла. 2) Хотите советов? Копи-пастите ваш код полностью. Вашим "усеченный код" и "также для", лично я, простите, уже не верю 3) Научитесь пользоваться отладчиком 4) Когда я писал про книги и курсы, я не шутил И главное, всё что вы делаете (код который пишите) можно чудесно обкатать на обычной внешней обработке, написав и оттестировав нужную процедуру P.S. Вы кто начинающий программист? Жадный бух, которому не хочется нанимать 1С-ника ? Вы сейчас, вместо программирования и знаний пользуетесь "магией" А магия вне Хогвартса, как известно, до хорошего не доведет. |
|||
60
vienya
18.04.24
✎
10:56
|
(59) Мультик,
1) Извините, я только учусь 2) Наконец-то! Вот рабочий код в процедуре ПередЗаписью: [CODE]Если Объект.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо") Тогда РезультатПроверкиФЛ = СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Объект.Наименование, Ложь); Если Не РезультатПроверкиФЛ Тогда Сообщить("В наименовании ФЛ недопустимые символы"); Отказ = Истина; КонецЕсли; КонецЕсли; Если Объект.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо") Тогда РезультатПроверкиЮЛ = СтроковыеФункцииКлиентСерверРФ.ТолькоЛатиницаВСтроке(Объект.Наименование, Ложь, "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"); Если Не РезультатПроверкиЮЛ Тогда Сообщить("В наименовании ЮЛ недопустимые символы"); Отказ = Истина; КонецЕсли; КонецЕсли;[/CODE] Но у него 2 недостатка: - Нет запрета на спецсимволы; - Не задан титульный регистр у физлиц: [CODE]Результат = ТРег()[/CODE] Это поправимо? 3) Спасибо 4) Я понимаю. Просто надо здесь и сейчас. С внешней обработкой я ещё не разобрался, как Справочник в неё скопировать. Я начинающий программист на испытательном сроке. |
|||
61
vienya
18.04.24
✎
16:46
|
Оставшиеся 2 недостатка исправлены:
- Запрет на спецсимволы сделал без массива, перечислением: Если Найти (Объект.Наименование, "!") >0 ИЛИ Найти (Объект.Наименование, "@") >0 ИЛИ Найти (Объект.Наименование, "#") >0 ИЛИ Найти (Объект.Наименование, "$") >0 ИЛИ Найти (Объект.Наименование, "%") >0 ИЛИ Найти (Объект.Наименование, "^") >0 ИЛИ Найти (Объект.Наименование, "*") >0 ИЛИ Найти (Объект.Наименование, "_") >0 ИЛИ Найти (Объект.Наименование, "=") >0 ИЛИ Найти (Объект.Наименование, "{") >0 ИЛИ Найти (Объект.Наименование, "}") >0 ИЛИ Найти (Объект.Наименование, "[") >0 ИЛИ Найти (Объект.Наименование, "]") >0 ИЛИ Найти (Объект.Наименование, ";") >0 ИЛИ Найти (Объект.Наименование, "'") >0 ИЛИ Найти (Объект.Наименование, "\") >0 ИЛИ Найти (Объект.Наименование, "<") >0 ИЛИ Найти (Объект.Наименование, ">") >0 ИЛИ Найти (Объект.Наименование, ",") >0 ИЛИ Найти (Объект.Наименование, "?") >0 Тогда Сообщить("В наименовании ФЛ недопустимые символы"); Отказ = Истина; КонецЕсли; - Задан титульный регистр у физлиц: Объект.Наименование = ТРег(Объект.Наименование); Объект.НаименованиеПолное = ТРег(Объект.НаименованиеПолное); Хочу особо поблагодарить Kigo_Kigo и Мультук за участие и подсказки. |
|||
62
Волшебник
18.04.24
✎
22:20
|
Хватит дурдома
|
|||
63
Aleksey
19.04.24
✎
03:09
|
(61) Страшно, очень страшно, мы не знаем что это такое, если бы мы знали, что это такое, но мы не знаем, что это такое
|
|||
64
Aleksey
19.04.24
✎
03:14
|
Имхо я бы заменил проверку на безусловно удаление спецсимволов. Если ты запрещает записывать с таким наименованием, т.е. Пользователь все равно будет удалять эти символы, то почему не удалить их программно?
|
|||
65
Волшебник
19.04.24
✎
06:11
|
(61) Замените на функцию проверки или замены. Используйте рефакторинг. Все запрещённые символы должны быть перечислены в одной строке.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |