|
Удаление всех пробелов в автономерных знаках... | ☑ | ||
---|---|---|---|---|
0
VSpicy
naïve
13.02.20
✎
13:44
|
Всем доброго дня!
Подскажите пожалуйста как лучше реализовать "Удаление всех пробелов в автономерных знаках"... Есть справочник транспортных средств, в нём поле "Государственный номер". Сейчас все госномера записаны так: В 122 АМ 777, а нужно так: В122АМ777 Вот код накидал: Процедура УдалениеПробеловВГосНомерахНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | уатТС.ГосударственныйНомер КАК ГосударственныйНомер |ИЗ | Справочник.уатТС КАК уатТС"; Транспорт = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из Транспорт. Цикл УдалениеПробелов = Транспорт; УдалениеПробелов.ГосударственыйНомер = СтрЗаменить(УдалениеПробелов.ГосударственыйНомер," ",""); УдалениеПробелов.Записать(); КонецЦикла; КонецПроцедуры Выходит ошибка: ({ВнешняяОбработка.УдалениеПробеловВГосНомерах.Форма.Форма.Форма(20)}: Поле объекта не обнаружено (ГосударственыйНомер) УдалениеПробелов.ГосударственыйНомер = СтрЗаменить(УдалениеПробелов.ГосударственыйНомер," ",""); Подскажите пожалуйста что не так делаю или может есть другие варианты решения? Заранее благодарен!!! |
|||
1
vicof
13.02.20
✎
13:49
|
Стр.ГосударственыйНомер = СтрЗаменить(УдалениеПробелов.ГосударственыйНомер," ","");
|
|||
2
vicof
13.02.20
✎
13:50
|
точней Стр.ГосударственыйНомер = СтрЗаменить(Стр.ГосударственыйНомер," ","");
|
|||
3
vicof
13.02.20
✎
13:51
|
И точку убрать после транспорта
|
|||
4
Fish
13.02.20
✎
13:55
|
" Для Каждого Стр Из Транспорт. Цикл
УдалениеПробелов = Транспорт;" Это пять, я считаю :)) |
|||
5
Fish
13.02.20
✎
13:58
|
+(4) Дальше тоже огонь: "УдалениеПробелов.Записать();"
Это с учетом Транспорт = Запрос.Выполнить().Выгрузить(); И УдалениеПробелов = Транспорт; |
|||
6
Homer
13.02.20
✎
14:01
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | уатТС.Ссылка КАК Ссылка, | уатТС.ГосударственныйНомер КАК ГосударственныйНомер |ИЗ | Справочник.уатТС КАК уатТС"; Транспорт = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из Транспорт. Цикл УдалениеПробелов = Стр.Ссылка.ПолучитьОбъект(); УдалениеПробелов.ГосударственыйНомер = СтрЗаменить(УдалениеПробелов.ГосударственыйНомер," ",""); УдалениеПробелов.Записать(); КонецЦикла; |
|||
7
VSpicy
naïve
13.02.20
✎
14:01
|
(5) Я начинающий)
|
|||
8
Fish
13.02.20
✎
14:03
|
(7) В (6) правильный код. Ты забыл получить ссылку на объект, который собрался менять.
|
|||
9
Fish
13.02.20
✎
14:03
|
+(8) Только ещё (3) учесть :)
|
|||
10
VSpicy
naïve
13.02.20
✎
14:07
|
(9) Да это понятно)
|
|||
11
Fish
13.02.20
✎
14:10
|
(10) Ну и поле ГосударственныйНомер в запросе получать необязательно. Достаточно ссылки. Только я бы ещё добавил проверку на наличие пробелов, чтобы не перезаписывать элементы, где в номере уже нет пробелов.
|
|||
12
VSpicy
naïve
13.02.20
✎
14:11
|
(8) Похоже не совсем правильный...Ошибка осталась: {ВнешняяОбработка.УдалениеПробеловВГосНомерах.Форма.Форма.Форма(21)}: Поле объекта не обнаружено (ГосударственыйНомер)
УдалениеПробелов.ГосударственыйНомер = СтрЗаменить(УдалениеПробелов.ГосударственыйНомер," ",""); |
|||
13
VSpicy
naïve
13.02.20
✎
14:13
|
(11) А можно маленький пример такой проверки? Спасибо!!!
|
|||
14
Fish
13.02.20
✎
14:15
|
(12) Показывай весь код. Может, что не так скопипастил.
(13) например, можно в цикле: Если <ВСтрокеЕстьПробелы> Тогда Тут твой код по замене КонецЕсли; |
|||
15
unbred
13.02.20
✎
14:16
|
(13) забей болт. херач все.
(6) лишили парня отладчика. а он начинающий. грусть. |
|||
16
Builder
13.02.20
✎
14:17
|
"Государственый" - с двумя Н пишется, если что. :)
|
|||
17
unbred
13.02.20
✎
14:17
|
||||
18
Fish
13.02.20
✎
14:20
|
(16) Ну может у него в конфе с одним. Откуда мы знаем :)
|
|||
19
Fish
13.02.20
✎
14:20
|
+(18) А. не заметил. В (0) с двумя как раз.
|
|||
20
VSpicy
naïve
13.02.20
✎
14:23
|
(16) Точняк, поспешил не заметил)
|
|||
21
VSpicy
naïve
13.02.20
✎
14:24
|
Но теперь новая ошибка:
Реквизит недоступен для группы! |
|||
22
Fish
13.02.20
✎
14:26
|
(21) Поставь в запросе условие:
ГДЕ НЕ ЭтоГруппа |
|||
23
VSpicy
naïve
13.02.20
✎
14:26
|
Можно конечно в реквизите: Использование изменить на "Для группы и элемента"....но наверное есть и другое решение???
|
|||
24
Fish
13.02.20
✎
14:27
|
(23) Не нужно так делать.
|
|||
25
GROOVY
13.02.20
✎
14:28
|
Объясните сне нахрена создавать таблицу значений для обхода результата запроса?
|
|||
26
Fish
13.02.20
✎
14:31
|
(25) Тут человек с более простыми вещами разобраться не может, а ты ему сразу про таблицу. Думаю, в случае ТС, это вообще не принципиально.
|
|||
27
VSpicy
naïve
13.02.20
✎
14:34
|
Это рабочий вариант! Спасибо всем!!!
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | уатТС.Ссылка КАК Ссылка, | уатТС.ГосударственныйНомер КАК ГосударственныйНомер |ИЗ | Справочник.уатТС КАК уатТС |ГДЕ НЕ ЭтоГруппа"; Транспорт = Запрос.Выполнить().Выгрузить(); Для Каждого ТекСтрока Из Транспорт Цикл УдалениеПробелов = ТекСтрока.Ссылка.ПолучитьОбъект(); УдалениеПробелов.ГосударственныйНомер = СтрЗаменить(УдалениеПробелов.ГосударственныйНомер," ",""); УдалениеПробелов.Записать(); КонецЦикла; |
|||
28
unbred
13.02.20
✎
14:34
|
(25) а я всегда ТЗ юзаю. не использую следующий().
поясни, в чём ошибка? |
|||
29
novichok79
13.02.20
✎
14:41
|
(27) через выборку кошернее
|
|||
30
unbred
13.02.20
✎
14:42
|
(29) мне бы хотелось получить ответ от GROOVY
|
|||
31
novichok79
13.02.20
✎
14:58
|
https://its.1c.ru/db/v8std#content:725:hdoc
специально залез, написано, что надо насильно ограничивать выборку. ТЗ и выборка без ограничения размеров - плохо. |
|||
32
unbred
13.02.20
✎
15:10
|
(31) не приходилось оптимизировать подобным способом ни разу.
а вот вместо выборки делать ТЗ и кайфовать от набора методов - очень часто. для всего есть свой инструмент. в конкретном случае нам в любом случае обходить весь массив номеров. по мне дак фиолетово, каким способом. |
|||
33
_Дайвер_
13.02.20
✎
15:21
|
Сейчас все госномера записаны так: В 122 АМ 777, а нужно так: В122АМ777, кто сказал что нужно так? Это правильный формат, так то, а в случае необходимости вывода без пробела можно и СтрЗаменить() использовать. Я видел в гос номерах такой ужОс, что капец.
//В 122 АМ 777 В122АМ777 В122АМ 777 В 122 АМ (777) В-122-АМ-777 В-122-АМ(777) В/122/АМ/777 В 122 АМ ( 77) А еще вместо латиницы кириллица, вместо О писали 0, использовали в номерах неиспользуемые символы и т.д. |
|||
34
_Дайвер_
13.02.20
✎
15:25
|
(33) + вместо кириллицы использовали латинский алфавит, или совместно
|
|||
35
unbred
13.02.20
✎
15:27
|
(33) "кто сказал что нужно так"// сказал чувак, который пишет обмен с сайтом.
|
|||
36
Йохохо
13.02.20
✎
15:30
|
(35) полтотекстовый поиск и ввод по наименованию платформенный заплакали)
а ТС получит незачет и вернется перечитать (33) |
|||
37
_Дайвер_
13.02.20
✎
15:38
|
(35) Серьезно? Чем ему не нравится с пробелами? Есть ограничения какие-то, или это требование стороннего сайта? А синхронизация тоже по номеру будет идти? Чувак который пишет обмен с сайтом...
|
|||
38
GROOVY
13.02.20
✎
15:51
|
(28) Все просто вы создаете еще одну таблицу в памяти, в дополнение к результату запроса, вместо того чтобы порционно считывать выборкой по 25 строк. И это плохо, особенно если запрос выбрал пару миллионов строк.
|
|||
39
pechkin
13.02.20
✎
15:54
|
(38) выборка не считывает порционно.
не ужто ты такому учишь? хоть ИТС почитал |
|||
40
unbred
13.02.20
✎
15:56
|
(39) да он сам писал этот ИТС))
|
|||
41
unbred
13.02.20
✎
15:57
|
(37) одна из догадок, не более. (скорее всего стороннего сайта)
|
|||
42
unbred
13.02.20
✎
16:02
|
раз пошла такая пьянка, великие оптимизаторы, посоветуйте , как перепровести 5 доков за 4 года максимально быстро? (примерное 300-500 доков в день в базе (сумма 5ти документов))
|
|||
43
hhhh
13.02.20
✎
16:27
|
(42) транзакцию используйте. по 500 документов одной транзакции
|
|||
44
pechkin
13.02.20
✎
16:33
|
(40) так на ИТС явно сказано что запрос.выполнить().выбрать() и выгрузить() - одинаково
|
|||
45
pechkin
13.02.20
✎
16:34
|
(43) в 8 такое не работает на ускорение, только в 7
|
|||
46
VSpicy
naïve
13.02.20
✎
17:08
|
(33) Это правильное оформление! Требуемое ГИБДД!
|
|||
47
hhhh
13.02.20
✎
17:12
|
(45) да ладно. Всё там работает в восьмерке. До 100 раз можно получить ускорение.
|
|||
48
VSpicy
naïve
13.02.20
✎
17:12
|
(33) У нас идет обмен из УАТ в Альфа-Авто, а уже из Альфы в ЕАИСТО.
|
|||
49
VSpicy
naïve
13.02.20
✎
17:14
|
(33) А от ЕАИСТО получаем ошибку из-за неправильно оформленного госномера.
И приходится постоянно руками править в Альфе! |
|||
50
Йохохо
13.02.20
✎
17:17
|
(46) тебе указали на плохой алгоритм, мало ошибок ловишь
|
|||
51
DrWatson
13.02.20
✎
17:25
|
(49) Убрать пробелы в момент выгрузки в ЕАИСТО. Пусть в базе остаётся с пробелами, так пользователям, наверное, удобнее.
|
|||
52
VSpicy
naïve
13.02.20
✎
21:00
|
(51)А вот это мысль хорошая... Спасибо, надо будет подумать!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |