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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2012, 23:32   #1  
igork-9y is offline
igork-9y
Участник
 
36 / 10 (1) +
Регистрация: 17.01.2011
Выступлю в роли некропостера:
Столкнулся с аналогично проблемой совершенно случайным образом: обновили клиента до версии 4.0 SP3 (в планах перехать на sql 2008R2 + терминальный доступ основан на Windows 7). При запуске задания Коррекция с/с (R795) на некоторых товарах уходил в рекурсию (создавал в Т5802 одинаковые неправильные записи типом коррекция). Заитересовавшись подобной необычной ошибкой начал разбираться:
Первое с чем я столкнулся это необычное обновление переменной AverageCostLCY в F30 - оно обновлялось не во всех товарах (в каких то обновлялось правильно, в каких то не правильно, в каких то вообще не обновлялось), по которым существовали остатки. После непродолжительной медитации над кодом кодеюнита 5804 выяснилось:

CALCSUMS("Invoiced Quantity","Cost Amount (Actual)","Cost Amount (Actual) (ACY)");
AverageQty := "Invoiced Quantity";
AverageCost := "Cost Amount (Actual)";
AverageCostACY := "Cost Amount (Actual) (ACY)";

nicht arbeiten вообще.

При этом, расчет этих переменных в цикле а-ля

IF FIND('-') THEN
REPEAT
MESSAGE('%1_________%2_________%3_________%4',"Item No.","Invoiced Quantity",
"Cost Amount (Actual)","Cost Amount (Actual) (ACY)");
AverageQty +="Invoiced Quantity";
AverageCost +="Cost Amount (Actual)";
AverageCostACY +="Cost Amount (Actual) (ACY)";
UNTIL NEXT = 0;

прекрасно работало.
Долго думал, полез сюда подглядеть - ошибку с не корректным расчетом переменных на форме решил путем пересоздания ключей (благо таблички 32 и 5802 относительно не большие).
И вот что удивительное: решилась проблема с рекурсией и, как выяснилось, по части позиций с/с была расчитана некорректно.
Вопрос: кто нибудь когда-нибудь с подобным сталкивался? Может Microsoft что то пишет по этому поводу?

Переход был сделан с версии 3.7 на 4.0SP3, версия sql-сервера Microsoft SQL Server 2000 - 8.00.818 (Intel X86) May 31 2003 16:08:15 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
Старый 20.01.2012, 12:30   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от igork-9y Посмотреть сообщение
...создавал в Т5802 одинаковые неправильные записи типом коррекция...
коррекция или округление?
если округление, то с таким "сталкивался".
Старый 20.01.2012, 14:45   #3  
igork-9y is offline
igork-9y
Участник
 
36 / 10 (1) +
Регистрация: 17.01.2011
Цитата:
Сообщение от Sancho Посмотреть сообщение
Цитата:
Сообщение от igork-9y Посмотреть сообщение
...создавал в Т5802 одинаковые неправильные записи типом коррекция...
коррекция или округление?
если округление, то с таким "сталкивался".
Запись создавалась с Adjustment = True - вот что имел в виду. Сейчас развлекусь восстановлением позачерашнего backup'а и выложу создаваемые записи в 5802.
Еще один вопрос - есть ли возможность пересоздать все индексы в БД? "Меня терзают смутные сомнения"(с), что индексы накрылись не только в таблицах 32 и 5802.
Старый 20.01.2012, 17:02   #4  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от igork-9y Посмотреть сообщение
Еще один вопрос - есть ли возможность пересоздать все индексы в БД?
Либо руками в каждой таблице деактивировать а потом опять активировать все вторичные ключи, либо написать код и сделать то же самое в коде, используя Rec-variable для таблицы "KEY"
Старый 20.01.2012, 17:41   #5  
igork-9y is offline
igork-9y
Участник
 
36 / 10 (1) +
Регистрация: 17.01.2011
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от igork-9y Посмотреть сообщение
Еще один вопрос - есть ли возможность пересоздать все индексы в БД?
Либо руками в каждой таблице деактивировать а потом опять активировать все вторичные ключи, либо написать код и сделать то же самое в коде, используя Rec-variable для таблицы "KEY"
Спасибо, попробую что нибудь накодить ибо править приходится 11 БД.
 


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

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

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