|
как написать функцию которая получит данные из "Перечесления.СтавкиНДС" | ☑ | ||
---|---|---|---|---|
0
Sv4org
04.08.16
✎
09:51
|
Здравствуйте,началл изучать 1с и дошёл до функций и немножко подвис
Подскажите кто нибудь как написать функцию которая получит данные из "Перечесления.СтавкиНДС" и выведет числовое значение |
|||
1
Горогуля
04.08.16
✎
09:52
|
Функция ПолучитьДанные()
Возврат Данные; КонецФункции |
|||
2
Горогуля
04.08.16
✎
09:53
|
а числовое значение ставки из перечисления только перебором
|
|||
3
Любопытная
04.08.16
✎
09:53
|
Забавно. Чем функция получения ставки НДС отличается от любой другой функции?
|
|||
4
Lexey_
04.08.16
✎
09:54
|
(0) например, так:
Функция ПолучитьДанныеИзПеречЕсления() Возврат Перечисления.СтавкиНДС[0]; КонецФункции; |
|||
5
Sv4org
04.08.16
✎
09:55
|
Спасибо сейчас попробую
|
|||
6
Быдло замкадное
04.08.16
✎
09:55
|
первые 4 комментатора читать не умеют. ТС числовое значение в перечислении Ставка НДС не хранится.
|
|||
7
mastodont
04.08.16
✎
09:56
|
(6) +1
|
|||
8
Любопытная
04.08.16
✎
09:57
|
(6) Да неужели?! Как первое предложение в (0) соотносится со вторым?
|
|||
9
Jokero
04.08.16
✎
09:58
|
(0) посмотреть, как это в типовых реализовано))
Например УТ10 - Общий модуль УчетНДС функция получить НДС // Функция возвращает ставку НДС. // // Параметры: // СтавкаНДС - Ставка НДС. // // Возвращаемое значение: // Число. // Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда Возврат 20; ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда Возврат 10; ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда Возврат 18; КонецЕсли; Возврат 0; КонецФункции // ПолучитьСтавкуНДС() |
|||
10
mastodont
04.08.16
✎
09:59
|
(8) они не связаны особо)
человек же написал: "выведет числовое значение" |
|||
11
CMblCL
04.08.16
✎
10:03
|
||||
12
Sv4org
04.08.16
✎
10:04
|
(9) Судя по вашему примеру если мне понадобиться добавить новое значение скажем НДС6 то мне прийдётся и в коде прописывать "ИначеЕсли"
А нужно сделать так чтобы ставка НДС6 работала нне изменяя код |
|||
13
Горогуля
04.08.16
✎
10:04
|
(12) не нужно
|
|||
14
DomovoiVShoke
04.08.16
✎
10:05
|
(12)Лучше чтоб она работала быстрее. А в код тебе все равно придется лезть, чтоб в перечисление ставку добавлять.
|
|||
15
Горогуля
04.08.16
✎
10:06
|
Число(Сред(Строка(Перечисления.СтавкиНДС.НДС18), 1, Найти(Строка(Перечисления.СтавкиНДС.НДС18), "%")-1))
|
|||
16
Горогуля
04.08.16
✎
10:07
|
(15) на "без НДС", разумеется всё поломается ;)
|
|||
17
Любопытная
04.08.16
✎
10:10
|
(10) человек написал, что дошел до функций и у него случился затык. А дальше вопрос, который к функциям имеет весьма отдаленное отношение.
|
|||
18
Sv4org
04.08.16
✎
17:43
|
Народ помогите ещё раз
Вот код: &НаКлиенте Процедура ТоварСтавкиНДСПриИзменении(Элемент) ТекущиеДанные = Элементы.Товар.ТекущиеДанные; ТекущиеДанные.СуммаНДС = ТекущиеДанные.Сумма * УчётНДС.ПолучитьСтавкуНДС("ЗначениеПеречисления");//На функцию ТекущиеДанные.Итого = ТекущиеДанные.Сумма + ТекущиеДанные.СуммаНДС; КонецПроцедуры ////////////////////////////////////////////////////////// Функция ПолучитьСтавкуНДС(ЗначениеПеречисления)Экспорт Если ЗначениеПеречисления = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20") Тогда Возврат 0.2; ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.НДС6") Тогда Возврат 0.06; ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.НДС8") Тогда Возврат 0.08; ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.БезНДС") Тогда Возврат 0; КонецЕсли; КонецФункции ////////////////////////////////////////////////// выдаёт следующую ошибку: {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(43)}: Преобразование значения к типу Число не может быть выполнено ТекущиеДанные.СуммаНДС = ТекущиеДанные.Сумма * УчётНДС.ПолучитьСтавкуНДС("ЗначениеПеречисления"); В чём я ошибся? |
|||
19
Джинн
04.08.16
✎
17:46
|
(18) Жесть!
|
|||
20
Волшебник
модератор
04.08.16
✎
17:48
|
(18) в функции не хватает простого Иначе
При вызове функции ковычки лишние |
|||
21
НеБорис Нуралиев
04.08.16
✎
18:40
|
(18) ТекущиеДанные.СтавкаНДС скорее всего, а не "ЗначениеПеречисления"
|
|||
22
Garykom
гуру
04.08.16
✎
18:47
|
В какой то загранице совсем нет 1С-ников?
|
|||
23
FIXXXL
05.08.16
✎
08:33
|
(12) заведи РС соответствия значений перечислений и цифирок
запросом получай данные |
|||
24
b_ru
05.08.16
✎
09:16
|
Маузер то закономерно зафейлился. Есть в цыганской 1С модуль "УчетНДС" :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |