Имя: Пароль:
1C
 
Как по коду 1 найти элемент 0000001 в справочнике сотрудники?
0 Гений 1С
 
гуру
01.04.15
16:02
Собственно?
1 User_Agronom
 
01.04.15
16:03
ПОДОБНО
Не?
2 User_Agronom
 
01.04.15
16:03
Если нет префиксов преобразуй к числам.
3 Гений 1С
 
гуру
01.04.15
16:03
(1) 00001231 тоже подобно.
4 busy1
 
01.04.15
16:03
Справочники.Организации.НайтиПоКоду("0000001");
5 b_ru
 
01.04.15
16:03
почитать в СП описание функции Формат, не?
6 Гений 1С
 
гуру
01.04.15
16:04
(2) в запросе надо, я сейчас использую НайтиПоКоду. Если для 100 вызывать сотров, будет медленно перебирать или строить индекс всего справочника.
7 DmitrO
 
01.04.15
16:04
после таких постов понимаешь почему на партнерскую конференцию доступ ограничен )
8 Гений 1С
 
гуру
01.04.15
16:04
(5) А по-другому никак? Это надо длину кода вытаскивать.
9 b_ru
 
01.04.15
16:07
(8) ГДЕ ВЫРАЗИТЬ(Справочник.Код КАК Число) = &ПараметрЧисло

только тормозить будет, проще конечно параметр сконвертировать.
10 Shurjk2
 
01.04.15
16:08
Вот нравится мне такая постановка задач, когда приходят и говорят "хочу так". Ты говоришь ну делай "вот так" а тебе там нее так не пойдет там есть "если", и так бесконечно пока ты полностью не разгадаешь все условия задачи.
Озвучивай полностью проблему и цели.
11 Зеленый пень
 
01.04.15
16:10
(3) Это гениально.
12 Гёдза
 
01.04.15
16:11
(9) так не работает
Формат(Код, "ЧЦ=6; ЧВН=; ЧГ=0")
13 Shurjk2
 
01.04.15
16:12
По сабжу посмотри как в типовых организована печать номера документа там придумали как избавляться от лидирующих нулей.
14 Ненавижу 1С
 
гуру
01.04.15
16:13
Гений решил устроить 1 апреля. Понятно
15 Shurjk2
 
01.04.15
16:16
(14) Ну может быть у него шутка даже тоньше чем юмор с переворчивающимися буквами.
16 User_Agronom
 
01.04.15
16:20
(3) Номер ПОДОБНО "0000000000000000"+"1"
17 spectre1978
 
01.04.15
16:23
(0) единицу сконвертить в строку "0000001" путем дописки нужного к-ва нулей слева. Выполнить поиск. ???? Profit!
18 Гений 1С
 
гуру
01.04.15
17:00
В общем сделал через длину кода.

Функция СотрудникПоPersonID(PersonID)
    
    ИскСотрудник = Справочники.СотрудникиОрганизаций.НайтиПоКоду(PersonID);
    Если ЗначениеЗаполнено(ИскСотрудник) Тогда
        Возврат ИскСотрудник;
    КонецЕсли;
    
    
    Попытка PersonIDЧислом = Число(PersonID) Исключение КонецПопытки;
    
    КодСНулями = Формат(PersonIDЧислом, "ЧЦ=" + Метаданные.Справочники.СотрудникиОрганизаций.ДлинаКода + "; ЧДЦ=; ЧГ=;ЧВН=");
    ИскСотрудник = Справочники.СотрудникиОрганизаций.НайтиПоКоду(КодСНулями);
    Возврат ИскСотрудник;
    
    
КонецФункции
19 Shurjk2
 
01.04.15
17:02
(18) Что за выверты с латинскими буковками в названиях переменных?
20 mehfk
 
01.04.15
17:06
(18) ты б Исключение хоть "возврат неопределено" вставил бы...
21 D_E_S_131
 
01.04.15
17:10
(20) Тогда код не дойдет до поиску по строковому коду.
22 D_E_S_131
 
01.04.15
17:12
(18) Ты же говорил про кучку кодов? Сделай ТЗ с числовым и строковым (приведенным к длине с нулями) кодом, а потом передай ТЗ в запрос, где двумя подзапросами ищи нужных контрагентов. Это будет гораздо быстрее чем делать 2 поиска 100500 раз. Да еще длину кода через метаданные каждый раз получать...
23 Dmitry1c
 
01.04.15
17:13
(-_\\
24 Shurjk2
 
01.04.15
17:18
(21) Зачем тогда вообще это исключение там?
25 Ненавижу 1С
 
гуру
01.04.15
17:20
это реально тот самый Гений 1С или все таки верно (14)?
26 Ненавижу 1С
 
гуру
01.04.15
17:21
я думаю по этой проблеме стоит написать большую статью в ЖЖ )))
27 DirecTwiX
 
01.04.15
17:21
(3) ПОДОБНО "%1"?
28 D_E_S_131
 
01.04.15
17:22
(27) см (3)
29 D_E_S_131
 
01.04.15
17:24
(24) Что бы код не "валился" на получении числа из какого-то %овна.
30 Shurjk2
 
01.04.15
17:24
(29) Зачем число получать если в любом случае строка нормально обработается?
31 Shurjk2
 
01.04.15
17:25
+(30) А если нет то в любом случае вывалится.
32 D_E_S_131
 
01.04.15
17:26
А вдруг у него там кое-где этот АйДи обозначен как 1, а где-то как "один". Но в приоритете искать с начала по числу, а уж если ID не число или с таким числом нет элемента, то уже только потом по строке. Бред конечно, но это же Гений 1С.
33 Shurjk2
 
01.04.15
17:28
(32) То есть в любом случае хоть числои хоть строкой это говоно попадет в формат, нахрена тогда это исключение?
34 mehfk
 
01.04.15
17:35
(33) В Формат() будет ошибка, если только PersonIDЧислом не определена где-то еще.
35 Shurjk2
 
01.04.15
17:37
(34) У меня основной вопрос зачем там это исключение.
36 D_E_S_131
 
01.04.15
17:51
(35) см (29)
37 D_E_S_131
 
01.04.15
17:51
Может там поле составного типа, по которому поиск производится.
38 Shurjk2
 
01.04.15
17:53
(36) А зачем вообще овно в число пытаться перевести если в любом случае это овно хоть в виде числа хоть в виде говна попадет в формат.
39 D_E_S_131
 
01.04.15
18:02
(38) Потому что:
Формат(1, "ЧЦ=6; ЧВН=; ЧГ=0") = "000001"

но

Формат("001", "ЧЦ=6; ЧВН=; ЧГ=0") = "001"

т.е. не одно и тоже
40 Гений 1С
 
гуру
01.04.15
18:08
(39) именно
41 Гений 1С
 
гуру
01.04.15
18:08
вообще в PersonID хранится число в виде строки, но мало ли что туда на вход попадет, не гарантируется, может "" попасть, например.
42 D_E_S_131
 
01.04.15
18:11
(41) Это говорит о входном (при внесении данных в PersonID) контроле или выходном (перед поиском) контроле ключевых значений.
43 Господин ПЖ
 
01.04.15
18:14
>или строить индекс всего справочника.

чего делать?
44 Рэйв
 
01.04.15
18:16
(0)Ты из какойто фигни делаешь муху:-))
45 Рэйв
 
01.04.15
18:16
до слона тут далеко...:=)
46 D_E_S_131
 
01.04.15
18:19
(44) И ведь 40 лет уже мужику...
47 Рэйв
 
01.04.15
18:20
(46)Причем наша современная медицина обещает до 80..
48 Рэйв
 
01.04.15
18:21
(46)Я тут прочитал, что есть другие планеты...
49 Рэйв
 
01.04.15
18:22
может нам туда?
50 Рэйв
 
01.04.15
18:23
от гения
51 Рэйв
 
01.04.15
18:27
:)
52 Рэйв
 
01.04.15
18:28
Эх вы.
НЕ то что шуток.
53 Рэйв
 
01.04.15
18:29
С вами даже прикалваться неудобно
54 Рэйв
 
01.04.15
18:29
вдруг не поймут
55 Рэйв
 
01.04.15
18:29
Ушел
56 Господин ПЖ
 
01.04.15
18:46
(3) а если так?

Поле1 подобно "%1" и Поле1 не подобно "%1[0-9]%"


если отмороженные кадровики не пользуют номера типа 00001абвгд53451
57 D_E_S_131
 
01.04.15
18:48
(56) Как обычно все сводится либо к сложному алгоритму, либо к организации хранения данных.
58 Господин ПЖ
 
01.04.15
18:50
(57) ну да...
59 spectre1978
 
01.04.15
19:15
(47) я извиняюсь - лет? Или еще чего?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн