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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.12.2005, 13:06   #1  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Thumbs up
При учете Заказа на покупку в 90м кодюните при коммите:
Код:
  IF NOT InvtPickPutaway THEN
	COMMIT;
система выдает очень нехорошую ошибку:
Транзакция не может быть завершена, так как это нарушит целостность таблицы Фин.Книга Операций. И говорит что ошибка изза использования функции CONSISTENT.

Явно вызов этой функции не нашла, может подскажет кто-то где "корень зла"?
Старый 13.12.2005, 13:21   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
12 юнит. Можно поискать по слову CONSISTENT. Ошибка возникает когда создаваемые в фин. книге проводки по одному номеру документа за одну дату не балансируют между собой. Где-то что-то криво создается.
Старый 13.12.2005, 15:05   #3  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
А какая у вас версия Nav? Случаем не 3.70 А?
Старый 13.12.2005, 16:51   #4  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Цитата:
Сообщение от romeo Посмотреть сообщение
12 юнит. Можно поискать по слову CONSISTENT. Ошибка возникает когда создаваемые в фин. книге проводки по одному номеру документа за одну дату не балансируют между собой. Где-то что-то криво создается.
спасибо
гдето нарушается баланс (BalanceCheckAmount, BalanceCheckAmount2)
сейчас сижу в дебаге и копаюсь почему


Цитата:
Сообщение от Fordewind Посмотреть сообщение
А какая у вас версия Nav? Случаем не 3.70 А?
она самая
Старый 13.12.2005, 17:07   #5  
Константин! is offline
Константин!
Участник
 
180 / 10 (1) +
Регистрация: 13.04.2005
Адрес: Казань
Возможно надо анализировать сдесь
cu 5802 ф-я PostInvtPostBuf

Post := TRUE;
IF NOT PostPerPostGrp THEN
Post := PostEntry(GlobalInvtPostBuf);
IF Post THEN
GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

Обычно CONSISTENT вываливается если покакимто причинам ф-я
PostEntry вернула FALSE и соответственно не запустился учет проводки GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

Удачи с дебагером!!!
Старый 13.12.2005, 17:23   #6  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Была у нас такая фиговина.
Выдавала такую же ругань при запуске Коррекция Курс. Разниц. Корень крылся в создании системой неких левых строк в Value Entry в процессе работы.
Сначала был сделан отчет убивающий эти строки. Позже поставили 3,70 В, проблема ушла.
Старый 13.12.2005, 17:38   #7  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Константин! , кодюнит 5802 не вызывается в данном случаи. Идет вызов кодюнита 12 (учет проводки) из 90го.
Старый 13.12.2005, 17:50   #8  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от TanyaV Посмотреть сообщение
Цитата:
Сообщение от romeo Посмотреть сообщение
12 юнит. Можно поискать по слову CONSISTENT. Ошибка возникает когда создаваемые в фин. книге проводки по одному номеру документа за одну дату не балансируют между собой. Где-то что-то криво создается.
спасибо
гдето нарушается баланс (BalanceCheckAmount, BalanceCheckAmount2)
сейчас сижу в дебаге и копаюсь почему


Цитата:
Сообщение от Fordewind Посмотреть сообщение
А какая у вас версия Nav? Случаем не 3.70 А?
она самая
Переменные BalanceCheckAmount, BalanceCheckAmount2 могут и неравнятся нулю при создании проводки GLEntry
Проблема может заключаться в том, что несоздается балансирующая проводка в GLEntry, при которой эти переменные и будут сброшены в 0
Старый 13.12.2005, 18:15   #9  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
После
GLEntry.CONSISTENT(
(BalanceCheckAmount = 0) AND (BalanceCheckAmount2 = 0) AND
(BalanceCheckAddCurrAmount = 0) AND (BalanceCheckAddCurrAmount2 = 0));
в 12 кодеюните вставьте строчку form.run(0, GLEntryTmp) и смотрите проводки.

либо в 90 кодеюните перед учетом смотрите последний номер операции в 17 таблице и перед коммитом примерно такой код:
gle.sefilter('%1..', LastGLEEntryNo);
form.run(0, gle)

PS. gle - record17
Старый 13.12.2005, 18:44   #10  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
После
GLEntry.CONSISTENT(
(BalanceCheckAmount = 0) AND (BalanceCheckAmount2 = 0) AND
(BalanceCheckAddCurrAmount = 0) AND (BalanceCheckAddCurrAmount2 = 0));
в 12 кодеюните вставьте строчку form.run(0, GLEntryTmp) и смотрите проводки.
спасибо
выявила что фин. книга операций создается только одна проводка по 63100 кредит. счету
вторая дебиторская не создается
Старый 13.12.2005, 19:44   #11  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Танюха! народ может не знать что такое 63100 счет!
А вообще молодец, что разобралась.
Старый 14.12.2005, 10:49   #12  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Цитата:
Сообщение от RobiBaggio Посмотреть сообщение
Танюха! народ может не знать что такое 63100 счет!
А вообще молодец, что разобралась.
Роберт! Тут дело не в номере счета.

PS на всякий случай, 63100 счет - расчет с отечественными поставщиками (Украина)
Старый 14.12.2005, 10:57   #13  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
TanyaV - копайте фунции FillInvPostingBuffer и UpdInvPostingBuffer, а также код формирования балансирующих проводок по строкам заказа продажи на основе InvPostingBuffer (поищите IF InvPostingBuffer[1].FIND('+') THEN ) в 90 кодеюните.
Удачи!
Старый 14.12.2005, 18:03   #14  
TanyaV_imported is offline
TanyaV_imported
Участник
 
66 / 10 (1) +
Регистрация: 25.04.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
TanyaV - копайте фунции FillInvPostingBuffer и UpdInvPostingBuffer, а также код формирования балансирующих проводок по строкам заказа продажи на основе InvPostingBuffer (поищите IF InvPostingBuffer[1].FIND('+') THEN ) в 90 кодеюните.
Удачи!
накопала
именно изза не заполнения InvPostingBuffer (не вызывался FillInvPostingBuffer) все неработало как надо! спасибо!
 


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

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

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