МАКСИМУМ ссылочного типа #632556


#0 by SeraFim
Дано: Перечисление "Категории мед.персонала": Вторая, Первая, Высшая Видимо, при создании этого перечисления сделали порядок: Вторая, Высшая, Первая. Поэтому эти категории и сравниваются Вторая < Высшая < Первая (должно быть Вторая < Первая < Высшая) У Иванова есть Первая и Высшая Категории Поэтому запрос Подскажите, что нужно сделать, чтобы получить нужный результат: Иванов - Высшая
#1 by butterbean
сделать справочник вместо перечисления
#2 by Starhan
Соеденить с регистром сведений (Категория - Приоритет) Переделать на справочник с реквизитом приоритет м.б. поколдовать с УИД.
#3 by chelentano
не совсем понятно, как у одного человека может быть две категории одновременно
#4 by SeraFim
можно, но данные неохота конвертить) я пока сделал МАКСИМУМ(Табличка.Категория.Порядок) и потом соединение с Таблицей этого перечисления) Работает все хорошо, но не нравится -> длинные запросы получаются Вот как раз про УИДы и думал - что же в БД поменять. В справке: ссылочные типы сравниваются на основе своих значений (номера записи и т. п.); по разным специальностям
#5 by dk
переименовать в 1_Высшая, 2_Первая, 3_Вторая
#6 by SeraFim
все имена должны начинаться с букв)
#7 by IamAlexy
синонимы оставь с букв, а имена сделай с числа
#8 by dk
_1_Высшая
#9 by SeraFim
да это не мое требование) Это требование программирования) Вот даже проверил - 1Ска тоже ругается0
#10 by Светлый Гений
тока наиборот нада 3_Высшая, 2_Первая, 1_Вторая можно сделать _3Высшая, _2Первая, _1Вторая
#11 by dk
максимум на минимум нетрудно сменить
#12 by Светлый Гений
согласен, тут просто логика, такая, что надо максимальную категорию выводить )))
#13 by SeraFim
затестил - один фиг)) В справке: ссылочные типы сравниваются на основе своих значений (номера записи и т. п.);
#14 by acsent
выбор когда категория = &1 Тогда 1 КОГДА категория = &2 ТОГДА 2... КАК Порядок
#15 by Sammo
Насколько я понимаю там был намек, что максимум не от ссылочного типа, а от наименования. Но, емнип, у перечисления не взлетит - только для справочного типа. У перечисления в запросе можно использовать .Порядок, как в 4. И это правильно. P.S. Про возможность исправить уид перечисления - забудь
#16 by Светлый Гений
Короче говоря, "порядок" определяет положение значения перечисления сверху вниз. Соответственно, в конфигураторе определяй значения в нужном порядке и бери максимум по этому полю.
#17 by Светлый Гений
+то есть в конфигураторе у тебя должно быть Вторая Первая Высшая
#18 by Starhan
посмотрел в конфе. Зайди в перечилление в конфигураторе и поставь порядко какой тебе нужен
#19 by SeraFim
см. я так и сделал)) Вот я как раз про УИД и думал... Подключился к базе, смотрю - куча табличек _ENUM258. Просматриваю - 2 поля: _IDRRef и _EnumOrder, собственно "Ссылка" и "Порядок" Я правильно понимаю, что _IDRRef лучше не трогать?)) И где можно найти соответствие названий баз? (что, например, _ENUM258 - это Перечисление.Категории)
#20 by Starhan
поищи в инете куча обработок.
#21 by НЕА123
ПолучитьСтруктуруХраненияБазыДанных ? но я абсолютно согласен с .
#22 by SeraFim
ага, спасибо, но я уже всё нашел)) вот сижу думаю, стоит или не стоит их менять))
#23 by НЕА123
если менять 1. менять все существующие ссылки в базе; 2. при всяких там объединениях, восстановлениях конфы помнить об этом. нах это нужно?
#24 by SeraFim
это собственные дописки, так что на объединения пофиг) про замену к выводу пришел - что в 1Ске, что в SQL один фиг все менять надо) В 1Ске проще так что поступил так: создал 4-ую категорию, обработкой заменил высшую на новую, высшую удалил, эту переименовал) На этом все, всем спасибо большое :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С