Имя: Пароль:
1C
1С v8
Как в запросе перечисление представить в виде строки
0 Lite777888
 
naïve
06.12.24
15:15
Пытаюсь так -
ВЫБРАТЬ
    СтавкиНДС.Ссылка КАК Ссылка  ,
    ВЫРАЗИТЬ( СтавкиНДС.Ссылка КАК СТРОКА ) КАК НДС
ИЗ
    Перечисление.СтавкиНДС КАК СтавкиНДС
//ГДЕ
    // &НДСИМЯ = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20 )
1 CepeLLlka
 
06.12.24
15:15
Представление?
2 Lite777888
 
naïve
06.12.24
15:23
ВЫБОР КОГДА  СтавкиНДС.Ссылка = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20) Тогда
            "НДС20"
            КОГДА  СтавкиНДС.Ссылка = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) Тогда
            "БезНДС"  
похоже так можно
3 CepeLLlka
 
06.12.24
15:25
??????

ВЫБРАТЬ
    ПРЕДСТАВЛЕНИЕ(СтавкиНДС.Ссылка) КАК Ссылка
ИЗ
    Перечисление.СтавкиНДС КАК СтавкиНДС
4 Мультук
 
гуру
06.12.24
15:26
(0)
Не знаю, зачем тебе это нужно,
но в документах "ставкаНДС" это уже целый справочник

(ERP 2.5, УТ11.5 -- актуальные релизы)
5 Lite777888
 
naïve
06.12.24
15:30
(4) В бух еще не справочник , при ком соединении нужно подцепить
6 Lite777888
 
naïve
06.12.24
15:32
(3) Так вроде идет тоже
7 CepeLLlka
 
06.12.24
15:33
(5)И как потом обрабатывать там где подцепили?
Проще получать поле "Порядок" и через соответствие в новой базе уже получать нужную позицию перечисления.
8 Lite777888
 
naïve
06.12.24
15:44
(7) Чем проще то ?
9 CepeLLlka
 
06.12.24
15:46
(8)Сорри.. я просто пытался помочь, предложил вам вариант, не собираюсь вступать в споры.
Можете продолжать делать вот так (2) вместо того чтобы сделать вот так (3) если вам так проще.
10 Lite777888
 
naïve
06.12.24
15:52
(9) вариант 3 принял
11 Dzenn
 
гуру
06.12.24
15:56
1 — создать таблицу значений с двумя колонками — перечисление и его представление

2 — передать ТЗ как параметр в запрос

3 — на основе ТЗ инициализировать в запросе временную таблицу

4 — использовать левое соединение по временной таблице

5 — PROFIT!
12 Lite777888
 
naïve
06.12.24
16:07
Вообще у меня есть строка "20%" и тд , нужно найти нужное значение перечисления , конструкция типа

ВЫБРАТЬ
     ПРЕДСТАВЛЕНИЕ(СтавкиНДС.Ссылка) КАК  Ссылка    
ИЗ
    Перечисление.СтавкиНДС КАК СтавкиНДС  
ГДЕ  
    ПРЕДСТАВЛЕНИЕ(СтавкиНДС.Ссылка) = &НДССТРОКОЙ
не работает, тк это строка неогр длины и привести ее к обычной строке проблемно , поэтому придется все равно использовать КОГДА -ТОГДА
13 RomanYS
 
06.12.24
16:05
XMLCтрока(Значение)

Не в запросе конечно же
14 PR
 
06.12.24
16:15
В душе не подозреваю, зачем это, но если уж так надо
ВЫБОР
    КОГДА Поле = ЗНАЧЕНИЕ(Перечисление.МоеПеречисление.Значение1)
        ТОГДА "Значение 1"
    КОГДА Поле = ЗНАЧЕНИЕ(Перечисление.МоеПеречисление.Значение2)
        ТОГДА "Значение 2"
    ...
    ИНАЧЕ "По ходу кто-то не отследил добавление добавление значений в перечисление, а-та-та по жопе"
КОНЕЦ КАК ПредставлениеПоляТипаПеречисление
15 Мультук
 
гуру
06.12.24
16:17
(14)

Вот зачем.

Обмен УТ 11.5 БП 3.0

Гена, правда, так и не развил свою мысль до конца.
А я про импорт уже ничего не помню.
16 CepeLLlka
 
06.12.24
16:28
(12)Ну я же написал в (7), что получайте не ссылку, а порядок - индекс перечисления.

Зная что:
1 - НДС 20%
2 - НДС 10%
3 - БЕЗ НДС
И т.д.

В базе приёмнике напишете так:

СоответствиеНДС = Новый Соответствие;
СоответствиеНДС.Вставить(1, Перечисления.СтавкиНДС.НДС20);
17 PR
 
06.12.24
16:30
(15) Понятно, говнокод
Передавать нужно имя значения перечисления, а не синоним
Если базы идентичные, то и вовсе (13)
Получается это, конечно же, не в запросе, да и непонятно, в чем ценность получения этого именно в запросе
18 Гена
 
гуру
06.12.24
16:34
(12) Вообще у меня есть строка "20%" и тд

Случаем не банковскую выписку терзаете, где в назначении платежа "В том числе НДС20% сумма"?