Автор Тема: Коды валют, общие принципы организации  (Прочитано 16459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Коды валют, общие принципы организации. Настройка валют относится к общим параметрам системы.



Код валюты. Принципы организации.

В общем виде в системе поле ввода суммы имеет максимальную разрядную сетку в 11 знаков, т.е. максимальное целое число, которое можно внести, еще раз подчеркиваю целое число, это 99 999 999 999, т.е. как видим 11 знаков. Так, ограничение в 11 знаков, можно увидеть в определении домена описывающего данные валюты, это тип CURR. Далее начинается интересное, если мы указываем, что для суммы возможно ведение дробных чисел, например копеек и задаем разрядность копеек как 2, то фактически этим мы уменьшаем максимально возможное целое число, которое можно внести для валюты, по факту после задания разрядности 2 максимальное целое число становится 999 999 999 и два знака 99 на ввод копеек. Стандартно, по умолчанию, система предполагает, что для валюты используется два знака на копейки, т.е. когда в систему вводится код валюты система предполагает, что маска ввода, максимального числа по умолчанию следующая 999 999 999,99 однако этим процессом можно управлять, увеличить максимально вносимое целое число в принципе невозможно, т.е. число будет 11 знаков, но можно например сказать, что суммы будут без копеек и таким образом в поле валюты можно будет внести уже сумму как 99 999 999 999,00 т.е. по факту увеличение точности копеек уменьшает максимальную сумму в поле ввода.

Теперь где это можно настроить, используем транзакцию OY04 или по дереву настройки SPRO,  пример на рисунке 1: OY04-1.png.

ВНИМАНИЕ! Использование данной транзакции может привести систему в полностью не консистентное состояние, если вы будете делать изменения для кодов валют, которые уже использовался для проводок документов. Т.е. изменение, можно проводить только для кода валюты, который не использовался в операциях.

Запускаем транзакцию настройки десятичных разрядов для валют. Система несколько раз попытается вас отговорить от этого действия, т.е. типа если вы не знаете что делаете то.. лучше не надо.

И так первое предупреждение, рисунок 2: OY04-2.png, суть предупреждения заключается в том, что данные изменения повлекут изменения для всей системы, т.е. коды валют межмандантные данные и их нельзя настроить или изменить для какой-то одной БЕ, если уже сломаете, то в целом все БЕ во всех мандантах.

Далее вас предупредят, что если валюта уже используется, причем обратите внимание, используется вообще где-либо в системе, в любом из мандантов, то по факту все введенные документы с изменяемой валютой будет ошибочными, рисунок 3: OY04-3.png.

Если вас не испугали два предыдущие сообщения, то система попытается как в любой сказке в третий раз отговорить от выполняемых действий, причем в сообщении будет дана попытка объяснить почему вам это не следует делать, рисунок 4: OY04-4.png.


Полный текст выдаваемы в этом окне следующий (да грамматический ошибки текста и пунктуация типа слов «вниматИльно», это к переводчикам, как и фразы типа «щапрос на перенос»):

Перед тем как продолжить, вниматильно прочитайте этот текст.

Эта транзакция может причинить почти непоправимый ущерб Вашей системе, если Вы не примите во внимание данное указание. Поля валюты сохраняются в таблицах системы R/3 как десятичные числа с переменным десятичным числом. Десятичный знак сохранен не в поле в базе данных. Вместо этого каждое поле валюты ссылается на поле кода валюты. Этому коду валюты Вы присваиваете в этой транзакции однозначное число десятичных знаков.

Если Вы, например, настроили валюту USD на два десятичных разряда и выполняете проводку суммы в 100 USD, то в базе данных в поле валюты стоит
сумма 10000. Только при дальнейшей обработке или выводе этой суммы система обращается к коду валюты из поля ссылки и определяет через эту таблицу число десятичных разрядов. Таким образом возможна правильная интерпретация содержимого таблицы для дальнейшей обработки или форматирование для вывода с правильными знаками препинания.

Если после удачной проводки Вы измените десятичные разряды для USD, например, на 3, то существующее содержимое поля 10000 для дальнейшей обработки или вывода будет интерпретировано как 10 USD (10.000). Таким образом все содерж. таблиц во всей системе для всех полей валют с суммой в USD неправильно
интерпретируются на десятичный порядок. Для изменения числа десятичных разрядов уже использованной валюты необходимо преобразовать все таблицы системы R/3, содержащие поля валют, чтобы сохранить целостность данных. К сожалению, по причинам организационного характера, а также времени выполнения это невозможно выполнить в продуктивной системе.

Следующие изменения в таблице TCURX могут, таким образом, привести к утрате целостности данных, если изменение выполняется в продуктивной системе или переносится в продуктивную систему:
  • Изменение числа десятичных разрядов существующей валюты.
  • Удаление записи из таблицы TCURX (соответствует изменению десятичных разрядов со стандартного значения 2 десятичных разряда на другое значение), если речь идет об уже существующем коде валюты.
  • Добавление записи в TCURX (соответствует изменению стандартного значения в 2 десятичных разряда на другое значение), если речь идет об уже существующем коде валюты. Некритичными же являются все изменения в этой таблице во время настройки новой инсталляции или добавление записей TCURX по ходу текущей эксплуатации, если коды валюты были только что занесены с помощью транзакции OY03 в таблицу TCURC, т.к. таким образом пока не могла быть выполнена проводка для этих кодов валюты.

В общем как видим фактически расписаны проблемы и варианты когда можно делать какие именно изменения в данной настроечной транзакции и приведены примеры что будет, если вы измените данные для уже работающих кодов валют.

В стандарте IDES для валюты российский рубль например, десятичные разряды не ведутся, рисунок 5: OY04-5.png

PS: Как обычно, все одним файлом: [attachment=6]
« Последнее редактирование: Апрель 02, 2011, 11:50:11 pm от Nexus »

Оффлайн alexk2009

  • Newbie
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Коды валют, общие принципы организации
« Ответ #1 : Декабрь 11, 2012, 10:27:13 am »
Добрый день! По воле Заказчика пришлось создать новые (фиктивные) валюты. Естественно эти валюты нигде не использоваль. По умолчанию валюты создались с двумя десятичными знаками. Хотел увеличить до 4-х знаков. В настройках поставил 4. Но результата нет. Что я сделала не так?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Коды валют, общие принципы организации
« Ответ #2 : Декабрь 11, 2012, 01:50:31 pm »
You are not allowed to view links. Register or Login
По умолчанию валюты создались с двумя десятичными знаками. Хотел увеличить до 4-х знаков.
Значит что-то сделали не так... в тесте у себя я пробовал делать с тремя знаками - работало. Как вариант, удалите эти коды и создайте по новому, но сразу с 4 знаками, ну раз коды еще нигде не использовались.

Sapforum.Biz

Re: Коды валют, общие принципы организации
« Ответ #2 : Декабрь 11, 2012, 01:50:31 pm »