![]() |
![]() |
![]() |
|
Баян с лидирующими пробелами в наименовании эл-та спр. | ☑ | ||
---|---|---|---|---|
0
andrewks
04.12.10
✎
17:26
|
подскажите пожалуйста, что-то не помню, чтобы раньше сталкивался с такой ситуацией.
имеется справочник, наименование например длины 50 вводим элемент, пишем наименование " имя1" (впереди пробел, длина 5), в МФ эл-та спр. имеем Наименование="имя1" (уже без пробела, длина 4). то же - при ПолучитьАтрибут(), СоздатьОбъект() при этом при редактировании и показе везде все ок - пробел этот есть. (соотв-но в базе этот пробел сохраняется) если впереди хоть 10 пробелов поставить - то же самое, все съедаются. в итоге: СпрН=СоздатьОбъект("Справочник.Номенклатура"); СпрН.Новый(); Стр=" имя3"; СпрН.Наименование=Стр; Если Стр=СпрН.Наименование Тогда Сообщить("равно"); Иначе Сообщить("не равно"); КонецЕсли; пишет: не равно что за хня? это так задумано? |
|||
1
МихаилМ
04.12.10
✎
17:31
|
да. так задумано.
причем в зависимости от фармата хранения данных (скл или дбф) дополняющие пробелы будут либо сначала либо в конце. возможно поэтому и задумано. |
|||
2
andrewks
04.12.10
✎
17:32
|
(1) м-да. с замыкающими я сразу столкнулся, еще на заре знакомства с 7-кой. а вот с лидирующими только сейчас.
|
|||
3
andrewks
04.12.10
✎
17:41
|
ха-ха. с быстрым поиском ваще баян. если набирать "имя1" без пробела - он его не находит из-за пробела. если набрать пробел - он встает на первый элемент с пробелом в начале. а вот если дальше начать набирать имя1 - все, ступор, ничего не находит. по-ходу при записи они должны были вставить отсечение пробелов, да забыли или не учли.
интересно, что покажет нам запрос. |
|||
4
andrewks
04.12.10
✎
17:56
|
в запросе все ништяк
|
|||
5
VasilyKushnir
04.12.10
✎
23:38
|
(0) Не допонял - налей еще. Нафига вообще пробелы хоть в начале, хоть в конце? Почему не:
СпрН.Новый(); Стр="имя3"; СпрН.Наименование=Стр; Если Стр=СокрЛП(СпрН.Наименование) Тогда Сообщить("равно"); Иначе Сообщить("не равно"); КонецЕсли; |
|||
6
Cthulhu
04.12.10
✎
23:41
|
Не бывает у наименования и текстового года лидирующих пробелов. фича такая.
|
|||
7
andrewks
04.12.10
✎
23:50
|
(5) бери стопарик :-)
этот код - для примера, чтобы показать баян. фишка в том, что с пробелами в конце проблем нет. а вот с лидирующими имеются - во-первых, глючит быстрый поиск. во-вторых проблема с сортировкой. в-третьих, программно их отловить можно только ч/з переменную в запросе, никакими переборами и т.д. они не ловятся. |
|||
8
andrewks
04.12.10
✎
23:54
|
+(7) а по вопросу - нафига - да нафиг они мне не сдались. я об них даже не знал 10 лет. но вот недавно к нам устроились на работу новые молоденькие креативные операторы, которые начали за каким-то хреном бить по одному или два пробела в начале наименования
|
|||
9
andrewks
05.12.10
✎
00:06
|
+(8) для исправления пришлось писать вот такой код:
Б=СоздатьОбъект("Справочник.Спр1"); Б.ПорядокКодов(); Б.ВыбратьЭлементы(); Пока Б.ПолучитьЭлемент()=1 Цикл Б.Наименование=Б.Наименование; Б.Записать(); КонецЦикла; если б мне его показали недельку назад - сломал бы мозг |
|||
10
VasilyKushnir
05.12.10
✎
00:10
|
(9) А не лучше на справочник кинуть ПриЗаписи(), где
Спр.Наименование = СокрЛП(Какая-тоХрынь); |
|||
11
andrewks
05.12.10
✎
00:13
|
(10) во-первых, ты мало выпил, жахни ещё :-)
достаточно написать в ПриЗаписи(): Наименование=Наименование; во-вторых - не одуреешь ли по всем базам во всех справочниках такую лажу размазывать? |
|||
12
VasilyKushnir
05.12.10
✎
00:16
|
(11) Хочешь сказать, что (9) периодически запускать проще?
|
|||
13
andrewks
05.12.10
✎
00:19
|
(12) + линейка по рукам
|
|||
14
VasilyKushnir
05.12.10
✎
00:19
|
достаточно написать в ПриЗаписи(): Наименование=Наименование;
а если вводится новый элемент? что тогда есть "=Наименование" |
|||
15
andrewks
05.12.10
✎
00:21
|
(14) без разницы. для нового элемента берётся из контекста. впрочем, для не-нового тоже.
|
|||
16
VasilyKushnir
05.12.10
✎
00:36
|
(15) Если ему уже присвоено значение, то да. Впрочем сам с такой проблемой не сталкивался - справочник товаров по долгу службы ведет начальник приемного отдела, у остальных доступ только к отдельным полям (для редактирования и за исключением админа, ессссно). А у нас она человек очень скурпулезный - главное четко "нарисовать" ей что и как должно быть. Аналогично за справочник Поставщиков отвечает одна из бухов. Ну и в том же духе.
|
|||
17
Конь в пальто
05.12.10
✎
00:38
|
бредятина
|
|||
18
Cthulhu
05.12.10
✎
01:16
|
(14),(16): бред.
|
|||
19
EvgeniuXP
05.12.10
✎
02:49
|
ой, блин, как хорошо я съехал с 7.7 :)
|
|||
20
Cthulhu
05.12.10
✎
03:34
|
(19): семерка тоже очень этому рада - так и просила передать. и клиенты её - тоже. )))
|
|||
21
МастерВопросов
05.12.10
✎
05:11
|
Всвязи с (1)- у автора файловая, или скл.
|
|||
22
andrewks
05.12.10
✎
08:09
|
(21) конкретно вчера копался в файловой, на скуле пока проверить не могу - нет под рукой
|
|||
23
smaharbA
05.12.10
✎
09:49
|
(8) что бы обойти проверку на уникальность наименования
|
|||
24
mishaPH
05.12.10
✎
09:54
|
(0) я думаю при тестах платформы в 1С как-то никому в голову не пришло, что кто-то внаименовании поставит пробелы в переди.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |