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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.11.2003, 13:05   #1  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
Ситуация примерно такая. Бухгалтер формирует операцию оплаты, в случае кредиты при этом должно сформироваться еще две проводки, на основе первой. Итого: 3. Я без проблем формирую все эти проводки, но может возникнуть такая ситуация, что некое ЧП помешало завершиться процедуре до конца. Скажем, прошло две проводки, и осталась еще одна. Для обеспечения корректности операции необходимо провести откат транзакции. Как это делается в Аттейне?

Есть еще такой вопрос: есть ли возможность получить текущую строку в фин. журнале (на которой усановлен курсор)?

Заранее благодарен.
Старый 27.11.2003, 13:42   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
насчет ЧП и отката.

Прежде всего стоит вернуться к терминологии.
Аттейн не может разнести часть проводки. Проводка либо целиком разносится, либо целиком не разносится. Операция - набор проводок. Операция может разнестись частично - некоторые проводки разнеслись, некоторые нет. Это свойство операций и проводок.

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

Поэтому у буржуев не возникает задачи отката - они делают многострочную проводку, если хотят, чтобы все строчки были обязательно разнесены.
__________________
полезное на axForum, github, vk, coub.
Старый 27.11.2003, 14:06   #3  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
Можно еще уточнить.
Я формирую проводки так: вставляю в фин. журнал строку и учитываю ее. Затем следующую и учитываю. А каким образом можно формировать многострочную проводку?
Старый 27.11.2003, 14:10   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не указывать балансирующи счет.
начать новую строку. Номер документа у строк будет совпадать до тех пор, пока баланс не станет нулевым.
__________________
полезное на axForum, github, vk, coub.
Старый 27.11.2003, 14:13   #5  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
т.е. вставить несколько строк, без балансирующих счетов? но он же ругаться будет, я же в фин. журнале их учитываю! наверное, есть еще способы учета проводок, только я их еще не накопал...
Старый 27.11.2003, 14:16   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
да, в фин.журнале.

не начнет. и даже корреспонденцию постарается сделать.
если будет один дебет и несколько кредитов (или один кредит и несколько дебетов), то даже нормально сделает.

Сложности с корреспонденцией начнутся, если будет несколько дебетов И несколько кредитов.
__________________
полезное на axForum, github, vk, coub.
Старый 27.11.2003, 14:38   #7  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
INIT;
"Journal Template Name":='ÎÁÙÈÉ';
"Journal Batch Name":='ÑÒÀÍÄÀÐÒ';
"Line No.":=3500;
"Document No.":='1';
"Account Type":=0;
"Account No.":='7610';
"Posting Date":=TODAY;
Amount:=100;
Description:='ÍÄÑ Êðåäèòû';

INSERT;
CODEUNIT.RUN(CODEUNIT::"Gen. Jnl.-Post Line",Rec);

INIT;
"Journal Template Name":='ÎÁÙÈÉ';
"Journal Batch Name":='ÑÒÀÍÄÀÐÒ';
"Line No.":=2500;
"Document No.":='1';

"Posting Date":=TODAY;
Amount:=100;
Description:='ÍÄÑ Êðåäèòû';
"Bal. Account Type":=0;
"Bal. Account No.":='5110';
INSERT;
CODEUNIT.RUN(CODEUNIT::"Gen. Jnl.-Post Line",Rec);

Делаю воот такую проводку. И выдается ошибка
Миниатюры
Нажмите на изображение для увеличения
Название: error2.JPG
Просмотров: 352
Размер:	62.4 Кб
ID:	9607  
Старый 27.11.2003, 15:01   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
сами программировали?
__________________
полезное на axForum, github, vk, coub.
Старый 27.11.2003, 15:05   #9  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
да, сам
Старый 27.11.2003, 15:28   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не. что то здесь не так.
но сказать что именно - пока квалификации не хватает.

Стандартный Навижин нормально работает без балансирующих счетов.
__________________
полезное на axForum, github, vk, coub.
Старый 27.11.2003, 15:31   #11  
Sash_xp_imported is offline
Sash_xp_imported
Участник
 
81 / 10 (1) +
Регистрация: 09.11.2003
ага, понятно, спасибо, буду дальше копать, я еще с этой ошибкой не сильно копался, сейчас главное основную часть кода завершить...
Старый 04.02.2004, 14:33   #12  
DID is offline
DID
Участник
 
6 / 10 (1) +
Регистрация: 22.08.2003
Адрес: Moscow
В коде надо использовать тригеры.
В частности,

VALIDATE(Amount,100);
Старый 04.02.2004, 16:30   #13  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
В принципе неправильно учитывать отдельно каждую строку одной операции. Если посмотрите на учет стандартных документов, то увидите, что фин.операции одного документа метятся одним номером транзакции (поле Transaction No. - это внутренний сквозной номер транзакций). Соответственно лучше сначала построить все строки в фин.журнале, а потом натравить на него 12 кодеюнит или даже 13, если учитывать целиком раздел. Сделайте себе копию рабочей базы и попробуйте правильно построить многострочные проводки, потом легче будет код писать. В фин.журнале фактически всем полям нужен VALIDATE. Если используете измерения, их нужно заполнять в самую последнюю очередь. А в первую: Код Шаблона, Код Раздела, Номер Строки.
Старый 21.05.2004, 13:03   #14  
NikSanych is offline
NikSanych
Участник
 
1 / 10 (1) +
Регистрация: 18.04.2003
Адрес: г. Москва
Предлагаю сначала выполнить формирование строк в журнале через форму
Финансы | Финансовые Журналы
При этом
- для задания счетов использовать только "Счет Но."
- следить за значением, которое выводится в "Общий Баланс" - д.б. = 0

Когда "научитесь" выполнять без ошибок учет, который Вас устроит "во всех отношениях", можно переходит к коду C/AL.

Сложнее будет выяснить - нужно или нет использовать оператор VALIDATE() для заполнения полей, точнее заполнение каких полей обязательно нужно сопровождать оператором VALIDATE(). Однозначный ответ для кажого поля можно получить внимательно изучив C/AL код Table 81.

Общие рекомендации
- заполняйте поля в том порядке, в котором они заполняются User`ом в форме
- всегда используйте VALIDATE() при заполнении полей "Posting Date", "Currency Code", "Account No.", "Amount"
- будьте аккуратны при формировании Dimensions - подробнее см. C/AL код.

BR
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:46.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.