|
Как в запросе преобразовать ставку НДС в число | ☑ | ||
---|---|---|---|---|
0
suvolod
02.06.12
✎
21:36
|
Мне нужно в запросе создать отдельное поле такого вида:
ИсточникДанных.СтоимостьПриход*ИсточникДанных.Номенклатура.СтавкаНДС Поскольку CтавкаНДС - это перечисление, сижу ломаю голову, как лучше это сделать.. |
|||
1
Агент Инфостарта
02.06.12
✎
21:40
|
Как-то так, схематично
ИсточникДанных.СтоимостьПриход * (ВЫБОР КОГДА ИсточникДанных.Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкаНДС.Ставка18) ТОГДА 0.18 ИНАЧЕ 0 КОНЕЦ) |
|||
2
bodik911
02.06.12
✎
21:41
|
Используй ЗНАЧЕНИЕ в Запросе
|
|||
3
suvolod
02.06.12
✎
21:46
|
громоздко как-то получается.. у меня на самом деле будет кучаполей полей
ИсточникДанных.СтоимостьНачальныйОстатокБезНДС ИсточникДанных.СтоимостьНачальныйОстатокНДС ИсточникДанных.СтоимостьПриходБезНДС ИсточникДанных.СтоимостьПриходНДС ... и т.д С учетом того, что ставок в конфигураторе 8, на каждое такое поле придется прописывать кучу "ВЫБОР", теперь помножим на сами поля и получим страх божий :) |
|||
4
Живой Ископаемый
02.06.12
✎
21:49
|
для этого можно создать ресурсы... ну, в смысле ресурсы,а не "ресурсы"
|
|||
5
suvolod
02.06.12
✎
21:50
|
про ресурсы не понял.. на какой объект их создать?
|
|||
6
ChAlex
02.06.12
✎
21:59
|
Можно через СКД. В СКД можно испльзовать вычисляемые поля, а в них функции модулей. функцию написать не проблема, отсюда будет элегантно. остается тлько проверить производительность :)
|
|||
7
МихаилМ
02.06.12
✎
22:05
|
в использовании реляционных субд
каждый чих - таблица создайте таблицу сответствий ставка - процент |
|||
8
shuhard
02.06.12
✎
22:15
|
(7) + 1
ВТ для этого в самый раз ВЫБРАТЬ СтавкиНДС.Ссылка, 0.18 КАК Ставка ПОМЕСТИТЬ ТНДС ИЗ Перечисление.СтавкиНДС КАК СтавкиНДС ГДЕ СтавкиНДС.Ссылка = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ СтавкиНДС.Ссылка, 0.1 ИЗ Перечисление.СтавкиНДС КАК СтавкиНДС ГДЕ СтавкиНДС.Ссылка = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НДСНачисленный.СчетФактура, НДСНачисленный.СтавкаНДС, НДСНачисленный.СуммаБезНДС * (1 + ТНДС.Ставка) КАК Нечто, НДСНачисленный.СуммаБезНДС + НДСНачисленный.НДС КАК Поле1 ИЗ РегистрНакопления.НДСНачисленный КАК НДСНачисленный ЛЕВОЕ СОЕДИНЕНИЕ ТНДС КАК ТНДС ПО НДСНачисленный.СтавкаНДС = ТНДС.Ссылка |
|||
9
suvolod
02.06.12
✎
22:18
|
Мне надо поправить универсальный отчет, а это не СКД, так-что отпадает..
За код спасибо.. сам делаю нечто подобное прямо сейчас. Хочу запрос (ниже) поместить во ВремТаб и соединить его с основным запросом ВЫБРАТЬ Номенклатура.Ссылка КАК Номенклатура, ВЫБОР КОГДА Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18) ИЛИ Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118) ТОГДА 0.18 КОГДА Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10) ИЛИ Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110) ТОГДА 0.1 КОГДА Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0) ИЛИ Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) ТОГДА 0 КОГДА Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20) ИЛИ Номенклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120) ТОГДА 0.2 ИНАЧЕ 0 КОНЕЦ КАК СтавкаНДС ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ |
|||
10
shuhard
02.06.12
✎
23:01
|
(9) бред
|
|||
11
МихаилМ
02.06.12
✎
23:45
|
ИНАЧЕ 0 - почему ноль, а не NULL
|
|||
12
hhhh
03.06.12
✎
00:09
|
(11) прикалываешься?
|
|||
13
МихаилМ
03.06.12
✎
01:28
|
(12) нет
классическая ошибка. не припомню что бы я с Вами переходили на "*аешься" |
|||
14
ЧашкаЧая
03.06.12
✎
01:39
|
(13) И зачем там NULL? А если потом это завернуть во вложенный запрос и потом сделать умножение на ставку НДС, что получим тогда?
|
|||
15
МихаилМ
03.06.12
✎
02:51
|
(14) получим что положено - NULL
|
|||
16
catena
03.06.12
✎
06:06
|
(15)Кем положено?
|
|||
17
ChAlex
03.06.12
✎
13:01
|
(9) - а зачем лишнюю информацию во временную таблицу запихивать? Во временную таблицу запихнуть 2 колнки: ставкаНДС и числовое значение ее (4 строчки). А в основном запросе просто соединять со внутренней таблице по полю "СтавкаНДС"
|
|||
18
experimentator76
03.06.12
✎
13:22
|
(0) вот за это за все я терпеть не могу перечисления
имхо давно пора переходить на справочники с предопределенными элементами гибкость возрастает В РАЗЫ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |