Имя: Пароль:
1C
 
числовой код элемента справочника
0 Roman Go
 
29.01.08
08:43
Процедура Сформировать()
   Сообщить(ТипЗначенияСтр(Сотрудник.Код));
КонецПроцедуры

в демки зарплаты поменял тип кода на числовой, а код привиденный выше выдает "строка" . . . Сотрудник - это элемент диалога с типом данных Справочник.Сотрудники. Причем в режиме 1С:Предприятие видно, что коды стали числовые, а выдает все равно строка. Может кто подскажет?
1 Рэйв
 
29.01.08
08:45
так не бывает.
2 Морозов Александр
 
29.01.08
08:46
вообще... 1С коды хранит ВСЕГДА как строка.
3 Roman Go
 
29.01.08
09:16
(2) т.е. если я выбираю код смысла его проверять на тип, строка или число нет, он мне всегда выдаст строку? и это нормально?
4 Морозов Александр
 
29.01.08
09:18
фиш знает... я не когда этим не заморачивался
5 Roman Go
 
29.01.08
09:25
самое интересное, что когда делаю поиск НайтиПоКоду и передаю число, нормально ищет . . . лотерея какая-то, а не программа.
6 dk
 
29.01.08
09:27
хм, забавно, но можно определять через метаданные
Метаданные.Справочник("ххххх").ТипКода
7 Shaman100M
 
29.01.08
09:33
Сталкивался с подобной проблемой. Решал так:

КодТипЧисло = Число(Строка(Сотрудник.Код));
8 Ленинград
 
29.01.08
09:33
(0)А как видно что они стали числовые,
А зачем кстати это прилюбодеяние
9 Ленинград
 
29.01.08
09:34
(7) Число(Сотрудник.Код) разве недостаточно
10 DrZombi
 
гуру
29.01.08
09:36
(0)Лучше используй метаданные.

ТипКода
Синтаксис:

Метаданные.Справочник(х).ТипКода
Назначение:
 Получить тип кода х-того справочника.
Возвращаемое значение
 Строка - "Числовой" или "Текстовый"
11 dk
 
29.01.08
09:39
Прикольная фишка может получиться при увеличении кода на фиксированную величину

глУсловие1 = ООО "XXXXX"

ТипЗначенияСтр(глУсловие1) = Справочник
глУсловие1.Вид() = Фирмы

ТипЗначенияСтр(глУсловие1.Код) = Строка
Метаданные.Справочник(глУсловие1.Вид()).ТипКода = Числовой

глУсловие1.Код + 100 = 1100
Число(глУсловие1.Код) + 100 = 101
12 ВторНик
 
29.01.08
09:43
(11) к чему ты это?
13 dk
 
29.01.08
09:46
К тому, что 1100 <> 101 :)
Т.е. если я знаю, что код числовой, то буду считать 1 + 100 = 101, а никак не 1100 (сложение строк).
14 Roman Go
 
29.01.08
11:14
(8) да нафиг не нужно, доработанная конфига, попросили кое-что подделать и там есть арифметические операции над кодом справочника, посмотрел начал делать арифметику - не пошло, стал смотреть почему не идет, оказалось вместо числа строка . . . привел пример с ЗиК.

А видно стало по тому что у кода пропали незначащие нули (база демка), и при вводе кода нельзя вводить буковки :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс