|
В запросе перечисление преобразовать в строку. как? | ☑ | ||
---|---|---|---|---|
0
Shur1cIT
01.06.17
✎
11:06
|
Понадобилось в первый раз на много лет в запросе получить значение перечисление в виде строки
ВЫРАЗИТЬ ,ПРЕДСТАВЛЕНИЕ, ПРЕДСТАВЛЕНИЕССЫЛКИ Не рабаротает! у меня остаёться вариант писать через ВЫБОР, но это очень утомительлно так как перечисление и значений много.... |
|||
1
Волшебник
модератор
01.06.17
✎
11:07
|
формируй предложение ВЫБОР в цикле и подставь в запрос
|
|||
2
Волшебник
модератор
01.06.17
✎
11:09
|
ПРЕДСТАВЛЕНИЕ() должно работать
|
|||
3
Мимохожий Однако
01.06.17
✎
11:10
|
(0) Покажи фрагмент запроса с несчастным перечислением
|
|||
4
Гипервизор
01.06.17
✎
11:13
|
Представление же работает.
Правда в дальнейшем в запросе как строку использовать не получится. Поделитесь секретом, для чего вам перечисление строкой в запросе? |
|||
5
1dvd
01.06.17
✎
11:13
|
(2) должно работать пока он не попытается что-то сделать с этой строкой (Типа ПОДОБНО или ПОДСТРОКА)
ПРЕДСТАВЛЕНИЕ возвращает не совсем строку |
|||
6
Shur1cIT
01.06.17
✎
11:41
|
(5) да это в этом и подвох.
забил на это.... после запроса програмно обрабаываю перечисление Всем спасибо |
|||
7
Адинэснег
01.06.17
✎
11:43
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПеречНДС = ТаблицаИменПеречисления("СтавкиНДС"); Запрос = Новый Запрос("ВЫБРАТЬ | Таб.Имя, | Таб.Значение |ПОМЕСТИТЬ ТабПеречНДС |ИЗ | &ПеречНДС КАК Таб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Номенклатура.Ссылка, | Номенклатура.СтавкаНДС, | ЕСТЬNULL(ТабПеречНДС.Имя, """") КАК ИмяПереч, | Номенклатура.Код |ИЗ | Справочник.Номенклатура КАК Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ТабПеречНДС КАК ТабПеречНДС | ПО Номенклатура.СтавкаНДС = ТабПеречНДС.Значение"); Запрос.УстановитьПараметр("ПеречНДС", ПеречНДС); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Код + " - " + Выборка.ИмяПереч); КонецЦикла; КонецПроцедуры Функция ТаблицаИменПеречисления(ИмяПеречисления) Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Значение", Новый ОписаниеТипов("ПеречислениеСсылка."+ИмяПеречисления)); Таблица.Колонки.Добавить("Имя", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(100)); Для Каждого ЗнПереч Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл НовСтр = Таблица.Добавить(); НовСтр.Значение = ЗнПереч; НовСтр.Имя = ЗнПереч.Имя; КонецЦикла; Возврат Таблица; КонецФункции |
|||
8
Адинэснег
01.06.17
✎
11:44
|
00000019815 - НДС18
00000019815 - НДС18_118 00000019815 - НДС10 00000019815 - НДС10_110 |
|||
9
Адинэснег
01.06.17
✎
11:53
|
упс, сорян, поправил функцию
Функция ТаблицаИменПеречисления(ИмяПеречисления) Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Значение", Новый ОписаниеТипов("ПеречислениеСсылка."+ИмяПеречисления)); Таблица.Колонки.Добавить("Имя", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(100)); Для Каждого ЗнПереч Из Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления Цикл НовСтр = Таблица.Добавить(); НовСтр.Значение = Перечисления[ИмяПеречисления][ЗнПереч.Имя]; НовСтр.Имя = ЗнПереч.Имя; КонецЦикла; Возврат Таблица; КонецФункции |
|||
10
Shur1cIT
01.06.17
✎
11:55
|
Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |