13.08.2004, 15:46 | #1 |
Участник
|
задвоение номеров ГК
Скажите, кто сталкивался с проблемой задвоения номеров ГК?
Есть AX 3.0, SP 3, без hotfix-ов. При разноске журналов основных средств, номера попадают в numberSequenceList, статус Активный, мероприятие - нерешенный. Потом эти номера преобразуются в статус - Свободно, мероприятие - не используется. Соответственно, затем эти номера снова выбираются, хотя уже существуют проводки с этим номеровм в LedgerTrans, и происходит задвоение. Серия документов - непрерывная, стоит автоочистка. Параметры ГК - Запрещать дубликаты, контроль непрерывности. Подскажите, пожалуйста, что можно сделать? Еще лучше, где поправить. Конечно, можно убрать непрерывность серии документов, как уже писалось на форуме, но ... должно же работать корректно ) Спасибо |
|
16.08.2004, 16:33 | #2 |
Участник
|
И это не только в ОС... это и обычный журнал ГК и касса этим грешат...
и очистка не трет список... можно его ручками тереть переодически или мод написать... Но согласен, более верно вообще решить проблему с непрерывностью в системе - она просто не работает корректно и все ждут чуда, что в одном из СП ее починят... но возможно проще и, главное, быстрее самим разобраться. Надо сказать, что в ах25 - с этими задвоениями было много хуже чем в ах30... те некоторая оптимизация на лицо |
|
16.08.2004, 18:29 | #3 |
Участник
|
Спасибо, за участие.
Получается, что непрерывность без крайней необходимости лучше не использовать. И это очередная криво работающая функциональность Microsoft... ( Интересно, кто-нибудь считал соотнесение времени, которое тратится на настройку, доработку функционала, т.е. то, что необходимо клиентам, и на исправление ошибок microsoft в Axapta? |
|
16.08.2004, 19:27 | #4 |
Участник
|
Цитата:
Изначально опубликовано anny
Получается, что непрерывность без крайней необходимости лучше не использовать. И это очередная криво работающая функциональность Microsoft... ( Интересно, кто-нибудь считал соотнесение времени, которое тратится на настройку, доработку функционала, т.е. то, что необходимо клиентам, и на исправление ошибок microsoft в Axapta? Рад тебя видеть. Нет так маленько. 1. непрерывность действительно лучше не использовать 2. но не потому что это криво работающая функциональность. 3. непрерывность требует существенно больших ресурсов от Аксапты и СКЛ 4. непрерывность надо уметь использовать программисту. Программист должен о многом помнить, чтобы корректно работать с непрерывностью. насчет багов. мы в свое время говорили о международном функционале. По прежнему уверен, что международный функционал можно использовать практически без опасений. Все российские функции - очень осторожно. |
|
17.08.2004, 13:29 | #5 |
Аксакал в отставке
|
А в какой момент у Вас установлено генерировать номер ГК?
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
17.08.2004, 15:22 | #6 |
Участник
|
Я немного посмотрела в коде - на мой взгляд, суть не в том, в какой момент генерируются номера, а в том, что при работе журнала ОС, по сравнению с общим журналом ГК номера точно так же попадают в таблицу NumberSequenceList при создании записей в журнале, но если после разноски общего журнала использованные номера удаляются из этой таблицы, то после разноски журнала ОС они остаются. Следующая по времени процедура очистки переводит эти номера в статус - Свободно. Создаем любой журнал, использующий данную серию.. и получаем сюрпризы...
Решение без программирования - отказаться от непрерывности и/или отключить очистку. Интереснее было бы в нужном месте вызвать удаление уже разнесенных voucher из NumberSequenceList. Но, увы, я не нашла это место... Вернее подходящих мест слишком много... to mazzy - спасибо за добрые слова, но я думаю, что имелась в виду другая Аня , еще раз - спасибо. |
|
17.08.2004, 15:28 | #7 |
Участник
|
Цитата:
Изначально опубликовано anny
Я немного посмотрела в коде - на мой взгляд, суть не в том, в какой момент генерируются номера, а в том, что при работе журнала ОС, по сравнению с общим журналом ГК номера точно так же попадают в таблицу NumberSequenceList при создании записей в журнале, но если после разноски общего журнала использованные номера удаляются из этой таблицы, то после разноски журнала ОС они остаются. См. класс NumberSeqFormHandler Цитата:
Изначально опубликовано anny
to mazzy - спасибо за добрые слова, но я думаю, что имелась в виду другая Аня , еще раз - спасибо. Тогда привет Той Ане |
|
15.04.2005, 11:44 | #8 |
Модератор
|
Новые "фенечки".
Господа!
Попробуйте сделать так: РК - Платежи - Новый платеж Введем просто 3 пустые строчки (3 раза Ctrl + N) Смотрим на номера ГК - они ОДИНАКОВЫЕ! Потом прописываем клиентов - (Разных!)и разносим.. с ГК идут проводки с ОДИНАКОВЫМ номером. Во как. Это бага или фича такая? С Уважением, Георгий. |
|
15.04.2005, 11:46 | #9 |
NavAx
|
Смое прикольное - что эта шняга там болтается, по видимому, уже давно, еще с 2.5...
By design - это не глюк, это фича. )) Есть мысль не давать просто сохранять строку, пока не проставят сумму и счет, тогда для предыдущей записи проверка сработает, как надо. Есть еще вариант тупо возвращать true. |
|
15.04.2005, 12:13 | #10 |
Administrator
|
В общем, это действительно так By Design
Все время возвращать true из takeNewVoucher() я бы не стал. Лучше сделать так: 1. Во время create() в LedgerJournalTrans_ds сделать forceWrite(true), чтобы пустые записи не плодились, а записывались все время. 2. В validateWrite() сделать проверку, чтобы пользователь не мог создавать строки журнала с пустым AccountNum. 3. Для красоты можно еще выставить свойство Mandatory для AccountNum в форме LedgerJournalTransCustPaym.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
15.04.2005, 12:18 | #11 |
NavAx
|
Ну, если реализовать п.2, то п.1 уже, в принципе, и не нужен.
|
|
15.04.2005, 12:28 | #12 |
Administrator
|
А вот и нет.
Если не сделать п.1, то записи не будут отправлены в базу данных после нажатия Ctrl+N еще раз. Соответственно не будет вызываться и validateWrite(). Попробуйте
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
15.04.2005, 12:30 | #13 |
NavAx
|
Ладно, уболтал. )
Еще вот что смущает - (точнее, не еще, а, собственно, одна из причин проблемы) if (!oldAccountNum && oldVoucher) return false; Для чего-то это, может быть, и нужно..... |
|
15.04.2005, 16:50 | #14 |
Участник
|
Это не баг, это фича и удобная
Например, если надо перекинуть задоженность по клиенту из краткосрочной в долгосрочную, или рисовать проводки по векселям. В одной строке система не даст сделать проводку, если счет и корсчет совпадают. А если сделать многострочную проводку, документ ГК будет одинаковый, счет и корсчет одинаковые, а профили разноски - разные. |
|
15.04.2005, 17:15 | #15 |
NavAx
|
Короче, сделали так: добавили параметр в настройки журнала, если он стоит в положении "Всегда новый" - ставится всегда новый ГК (всегда takeNewVoucher - true). Иначе - работает, как в стандарте.
|
|
15.04.2005, 18:09 | #16 |
Moderator
|
2 Maximin:
Цитата:
Смое прикольное - что эта шняга там болтается, по видимому, уже давно, еще с 2.5...
если в том - так там и решение этой фичи было |
|
15.04.2005, 18:21 | #17 |
Модератор
|
Не, заново напоролись на старые грабли.
Хотя слова Ани заставили нас задуматься С Уважением, Георгий. |
|
15.04.2005, 18:54 | #18 |
Moderator
|
Аня права
Но в свое время решал эту проблему пунктами 2 и 3 описанными Максимом Горбуновым так как такой функциональности нам тогда не нужно было. |
|
|
|