AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.06.2008, 13:46   #1  
Nikolay100x is offline
Nikolay100x
Участник
 
25 / 10 (1) +
Регистрация: 30.07.2008
Thumbs up
Добрый день! У меня опять проблема с C/AL кодом. Дело вот в чем: нужно чтобы в заказе поле Line Amount (сумма строки) считалась сумма минус скидка, и чтобы это число делилось на 6. НАПРИМЕР если сумма строки минус скидка = 37,11 тогда 37,11/6 = 6,185 (округляем в большую сторону) = 6,19 * 6 = 37,14 (та сумма которая должна быть).
В каком триггере это писать и с чего начать незнаю. Помогите люди добрые. Если можно покажите пример кода. За ранее примного благодарен.
Старый 27.06.2008, 13:56   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Откройте 37 таблицу в режиме дизайнера, нажмите клавишу F9. Откроется редактор кода. Ctrl-F - откроется окно поиска. Туда введите Line Amount. И посмотрите в каких местах оно юзается. А потом подумайте еще раз - вам все еще надо делить ЭТО поле на 6 или завести новое для отдельной обработки и использования.

пс. Если сделаете по-своему сразу узнаете больше о триггерах навижена ..
Старый 27.06.2008, 14:27   #3  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Вы, точно уверены, что вам нужно делить на 6 именно в коде?

Скидки строки, вы уже используете.
Посмотрите теперь еще и скидки по счету. Укажите скидку по счету 83,33333% результат будет тот же (сумма уменьшится в 6 раз).

Сумма скидки по счету будет "распределено" на кажду строку. Таким образом согласно вашему примеру будет:
Line Amount = 37,11
Inv. Discount Amount = 30,92

Сумму 6,19 легко посчитать. Кстати в стандартном счете-фактуре будет именно сумма 6,19 и никаких упоминаний о скидках.

Печатные же формы править все же проще.

PS если то, что вы делаете с Sales Line - в образовательных целях, пожалуйста сообщите.
Старый 27.06.2008, 15:27   #4  
Nikolay100x is offline
Nikolay100x
Участник
 
25 / 10 (1) +
Регистрация: 30.07.2008
Ув. apanko, я немного непонятно написал, нужно чтобы Сумма строки Line Amount делилась на 6, затем округлилась в большую сторону и обратно умножилась на 6 что бы получилось не 37,11 а 37,14 т.е. если разделить 37,14 на 6 то будет число 6,19 без третьего знака. Это не в образовательных целях. И еще одно условие, это действие должно выполняться только для валюты UAH.
Старый 27.06.2008, 16:55   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
6 - это курс доллара к гривне что ли?
Старый 27.06.2008, 17:02   #6  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Ну раз так.

1. Клиент скидка по счету - не надо.
2. В валюте UAH на закладке Округление укажите:
* Счет точность округления = 0,06
* Счет тип окгругления = Больше

И если хотите каждую строку округлить - Сумма точность округления = 0,06
Старый 27.06.2008, 17:17   #7  
Nikolay100x is offline
Nikolay100x
Участник
 
25 / 10 (1) +
Регистрация: 30.07.2008
Это не курс доллара, просто нужно чтобы сумма строки делилась на 6, т.е. не было бы 3-го знака в сумме (если сумма 37,11 и ее разделить на 6 то будет сумма с 3-мя знаками (т.е. сумма НДСа), а если 37,11/6 а потом округлить в большую сторону то получится 37,14 НДС от которго будет 6,19 ). На 6 - это для правильного НДСа. Ну по крайней мере так хотят бухгалтеры.
Старый 27.06.2008, 17:33   #8  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от nikolay100x Посмотреть сообщение
Это не курс доллара, просто нужно чтобы сумма строки делилась на 6, т.е. не было бы 3-го знака в сумме (если сумма 37,11 и ее разделить на 6 то будет сумма с 3-мя знаками (т.е. сумма НДСа), а если 37,11/6 а потом округлить в большую сторону то получится 37,14 НДС от которго будет 6,19 ). На 6 - это для правильного НДСа. Ну по крайней мере так хотят бухгалтеры.
да... чего только бухгалтера не хотят...
Старый 27.06.2008, 17:35   #9  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от romeo Посмотреть сообщение
6 - это курс доллара к гривне что ли?
USD / UAH = 1 : 4,5
Цитата:
Сообщение от nikolay100x Посмотреть сообщение
Это не курс доллара, просто нужно чтобы сумма строки делилась на 6, т.е. не было бы 3-го знака в сумме (если сумма 37,11 и ее разделить на 6 то будет сумма с 3-мя знаками (т.е. сумма НДСа), а если 37,11/6 а потом округлить в большую сторону то получится 37,14 НДС от которго будет 6,19 ). На 6 - это для правильного НДСа. Ну по крайней мере так хотят бухгалтеры.
Ну и спецы у вас там бухи! А может тогда лучше изменить формулу, чтобы считала от % НДС? Тогда точно не надо будет привязываться с статике, а именно "6".
Старый 27.06.2008, 17:51   #10  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от RedFox Посмотреть сообщение
Ну и спецы у вас там бухи! А может тогда лучше изменить формулу, чтобы считала от % НДС? Тогда точно не надо будет привязываться с статике, а именно "6".
Собственно, да. Просто все счета надо выставлять без НДС, а программа сама расчитает сумму с НДС исходя из снятой галки "Цены включают НДС" на закладке счет.

и вообще

ПРИКАЗ
от 29 июля 1998 г. N 34н

ОБ УТВЕРЖДЕНИИ ПОЛОЖЕНИЯ
ПО ВЕДЕНИЮ БУХГАЛТЕРСКОГО УЧЕТА И БУХГАЛТЕРСКОЙ
ОТЧЕТНОСТИ В РОССИЙСКОЙ ФЕДЕРАЦИИ

25. Бухгалтерский учет имущества, обязательств и хозяйственных операций допускается вести в суммах, округленных до целых рублей. Возникающие при этом суммовые разницы относятся на финансовые результаты у коммерческой организации или увеличение доходов (уменьшение расходов) у некоммерческой организации.
(в ред. Приказа Минфина РФ от 30.12.1999 N 107н)
Старый 27.06.2008, 18:06   #11  
Nikolay100x is offline
Nikolay100x
Участник
 
25 / 10 (1) +
Регистрация: 30.07.2008
Это не Российская Федерация, это Украина.

Хоть подскажите в каком триггере это писать то.
Старый 30.06.2008, 13:19   #12  
Nikolay100x is offline
Nikolay100x
Участник
 
25 / 10 (1) +
Регистрация: 30.07.2008
Господа, помогите пожалуйста. Очень уж нужно.
Старый 01.07.2008, 12:43   #13  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Лично я внимательно бы посмотрел на функцию UpdateAmounts()в таблице 37 Sales Lines. Точнее на строки:

Код:
IF "Line Amount" <> ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") - "Line Discount Amount" THEN BEGIN
  "Line Amount" := ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") - "Line Discount Amount";
  "VAT Difference" := 0;
END;
После чего закрыл бы дизайнер и в карточке валюты UAH на закладке Округление указал:
* Счет точность округления = 0,06
* Счет тип округления = Больше
* Сумма точность округления = 0,06

В этом случае значительно меньше шансов, что вас проклянут, те кто будут сопровождать систему после вас.
Или сами себя проклянете когда будете ставить обновления.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:47.