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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2009, 10:41   #1  
Alexx7 is offline
Alexx7
Сам.AX
Аватар для Alexx7
Самостоятельные клиенты AX
1C
 
305 / 28 (1) +++
Регистрация: 22.07.2009
Такая же ошибка при разноске/проверке журнала.
проверка проходит после прогонки Job с кодом
X++:
    RPayJournalTrans    rPayJournalTrans;
    int                 i = 1;
    ;

    ttsbegin;

    while select forupdate rPayJournalTrans
        where rPayJournalTrans.JournalId == 'Номер журнала который не разносится'
    {
        rPayJournalTrans.LineNum = i;
        rPayJournalTrans.update();
        i ++;
    }

    ttscommit;
Но постоянно прогонять джоб тоже не вариант. А проблема так и не уходит. Что можно сделать?

Последний раз редактировалось Alexx7; 27.08.2009 в 10:45.
Старый 28.08.2009, 09:34   #2  
Peter Savintsev is offline
Peter Savintsev
Участник
 
246 / 124 (5) +++++
Регистрация: 14.12.2001
Цитата:
Сообщение от Alexx7 Посмотреть сообщение
Такая же ошибка при разноске/проверке журнала.
проверка проходит после прогонки Job с кодом
X++:
    RPayJournalTrans    rPayJournalTrans;
    int                 i = 1;
    ;

    ttsbegin;

    while select forupdate rPayJournalTrans
        where rPayJournalTrans.JournalId == 'Номер журнала который не разносится'
    {
        rPayJournalTrans.LineNum = i;
        rPayJournalTrans.update();
        i ++;
    }

    ttscommit;
Но постоянно прогонять джоб тоже не вариант. А проблема так и не уходит. Что можно сделать?
Это старый известный баг (странно, что до сих пор не поправили). Правда, он несколько из другой серии, нежели вышеприведенные сообщения. Тут проблема в том, что из-за некорректного индекса на RPayJournalTrans неверно работает автонумерация строк (присвоение значений полю LineNum) при создании строк журнала через форму RPayJournalTrans. Автонумерация строк журнала опирается на то, что LineNum должен быть уникальным в рамках каждого журнала, см. таблицы строк стандартных журналов InventJournalTrans, ProjJournalTrans, ProdJournalBOM, ProdJournalRoute. В этом плане в LedgerJournalTrans есть небольшое отличие, но оно связано с ваучером и особенностями разноски строк журнала ГК.

Наши же локализаторы, как всегда пошли своим путем, создав на RPayJournalTrans индекс JournalLineIdx и засунув в него помимо JournalId и LineNum еще кучу полей. В результате, автонумерация, которая обеспечивается заполнением свойства CounterField на дата-сорсе, работает некорректно. Решение достаточно простое:
1. Создать уникальнай индекс на таблице RPayJournalTrans из двух полей: JournalId и LineNum (именно в таком порядке). Тут надо быть осторожным, если у вас уже есть кривые журналы с неправильными номерами строк, необходимо выполнить джоб для их перенумерации, наподобие того, что привел выше Alexx7.
2. На форме RPayJournalTrans у одноименного дата-сорса в свойстве Index указать созданный в п.1 индекс.

После этого разноска журнала зарплаты не будет вызывать описанной ошибки.
За это сообщение автора поблагодарили: Alexx7 (1).
Теги
axapta retail, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поле "Оплатить до" в строке общего журнала longson DAX: Функционал 7 29.03.2008 14:38
Ошибка: фантомное дублирующее поле типа "дата" в гриде belugin DAX: Программирование 8 14.06.2006 00:15
поле "Документы к обновлению" в форме "Обработка закупки" sev DAX: Функционал 3 08.12.2005 17:21
Заказ. Форма "Разноска накладной"->Строки-> Поле "закрытие" ATimTim DAX: Функционал 2 30.11.2004 16:14
Журнал переноса->Строки->Поле "Количество" . Нужен "0" по умолчанию вместо ATimTim DAX: Функционал 5 26.06.2004 12:17
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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