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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.10.2008, 00:02   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,915 / 3183 (114) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Почему CustInvoiceTable лишили Voucher -а ?
Собственно, сабж...
С удивлением обнаружил что там нет Voucher-а

Хотя везде в системе он в документах есть. Это вроде бы как основной идентификатор документа в системе. Даже в переносе, который не делает никаких проводок по ГК есть ваучер. И CustInvoiceJour который создается на основе CustInvoiceTable естественно тоже есть LedgerVoucher и он заполняется в момент разноски. Более того в момент разноски из CustInvoiceJour-а в CustInvoiceTable переносится InvoiceId - почему бы то же самое не сделать с документом ГК - (выделяются они в паре, а переносится только InvoiceId)?

Поковырял код - судя по коду роль ваучера играет InvoiceId
Даже уникальность его внутри даты проверятеся.
Непонятно зачем, правда

Ax 3.0 SP5

Последний раз редактировалось Logger; 28.10.2008 в 00:08.
Старый 28.10.2008, 08:02   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
В заказах и закупках нет ваучера тоже. И в производственых заказах.

Не во всех журналах есть ваучер.

Не разделяю вашего удивления.
__________________
С уважением,
glibs®
Старый 28.10.2008, 08:31   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Хотя везде в системе он в документах есть.
CustInvoiceTable - не документ, а черновик (журнал). Такой же как заказ и закупка, как правильно отметил glibs.

Цитата:
Сообщение от Logger Посмотреть сообщение
Поковырял код - судя по коду роль ваучера играет InvoiceId
Не совсем так.
InvoiceID играет роль кода заказа
В момент разноски в Voucher может копироваться этот invoiceID,
а может создаваться свой код.

Поведение зависит от галочки Наследование.
Название: 1.PNG
Просмотров: 927

Размер: 36.2 Кб

На скриншоте:
1. Номерная серия для нумерации Накладных на услуги (Free text invoice/Накладная с произвольным текстом)
2. Номерная серия для нумерации Voucher при разноске Накладных на услуги
3. Галочка "Наследование". Если включена, то Voucher принимает значение из номера накладной. Если выключена, то система генерит новый номер согласно номерной серии.

Обратите внимание, что в принципе у Накладных на услуги может быть своя номерная серия, отличная от Накладных, созданных по заказу продажи. Я обычно указываю одну и ту же номерную серию.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Logger (4).
Старый 28.10.2008, 10:43   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,915 / 3183 (114) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Спасибо за ответы.
Про черновики понятно.

Но все же я думаю что логика простановки ваучера тут другая. У заказов, закупок и производственных заказов - может быть несколько документов (накладных) сформировано - соответственно ваучеров может быть несколько. Несколько ваучеров в одно поле не вобьешь.

А вот для строк складских журналов всегда возможен только один ваучер - вот он и пробивается при разноске (если не был прописано при создании). При том что строки - это тоже черновик. Т.е. система смотрит не на то - является ли строка или шапка черновиком, а на однозначность соответствия.

В накладных на услуги мне не нравится именно неоднозначность из-за отсутствия ваучера. По идее если у нас есть накладная на услуги CustInvoiceTable, то по ней возможна лишь одна запись в CustInvoiceJour. (в отличие от заказов и закупок, где накладных может быть несколько) Поэтому в CustInvoiceTable напрашивается ваучер.

Без него по конкретной CustInvoiceJour метод
\Data Dictionary\Tables\CustInvoiceJour\Methods\custInvoiceTable
X++:
CustInvoiceTable custInvoiceTable(boolean _update = false)
{
    CustInvoiceTable custInvoiceTable;
    ;
    custInvoiceTable.selectForUpdate(_update);

    select custInvoiceTable
        where custInvoiceTable.invoiceId            == this.invoiceId            &&
              custInvoiceTable.invoiceDate          == this.invoiceDate          &&
              custInvoiceTable.numberSequenceGroup  == this.numberSequenceGroup;

    return custInvoiceTable;
}
может вернуть как правильный CustInvoiceTable - так и левый, у которого по несчастливой случайности номер совпал.
Старый 28.10.2008, 11:50   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
может вернуть как правильный CustInvoiceTable - так и левый, у которого по несчастливой случайности номер совпал.
у меня часто встречались случаи когда для двух разных поставщиков создавались накладные с одним и тем же номером, в одной и той же дате
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.10.2008, 13:16   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,915 / 3183 (114) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от lev Посмотреть сообщение
у меня часто встречались случаи когда для двух разных поставщиков создавались накладные с одним и тем же номером, в одной и той же дате
Ну мне бы было не до смеха
И как лечили ?
Старый 28.10.2008, 14:08   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Logger Посмотреть сообщение
Ну мне бы было не до смеха
И как лечили ?
Может добавить в этот метод условие на клиента?
Насколько я понимаю, они не могут поменятся по пути от custInvoiceTable до custInvoiceJour?
__________________
Zhirenkov Vitaly
Старый 28.10.2008, 14:25   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,915 / 3183 (114) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ZVV Посмотреть сообщение
Может добавить в этот метод условие на клиента?
Насколько я понимаю, они не могут поменятся по пути от custInvoiceTable до custInvoiceJour?
Не могут. Но не всегда и это спасет.
На одном проекте народ любил накладные на услуги сторнировать. и проводить снова с тем же InvoiceId.

В таком случае только Voucher спасет.
Старый 28.10.2008, 14:27   #9  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Logger Посмотреть сообщение
Не могут. Но не всегда и это спасет.
На одном проекте народ любил накладные на услуги сторнировать. и проводить снова с тем же InvoiceId.

В таком случае только Voucher спасет.
Да, действительно недоработка...
__________________
Zhirenkov Vitaly
Старый 28.10.2008, 14:59   #10  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Ну мне бы было не до смеха
И как лечили ?
Нужно на проблемы жизни смотреть с оптимизмом
Все поиски накладной делали в разрезе поставщика\клиента, даты накладной, номера накладной, и группы номерных серий.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.10.2008, 15:01   #11  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Попутно назрел такой вопрос. Вот интересно почему в таблицах VendInvoiceJour и CustInvoiceJour не сделали записи уникальными в разрезе Поставщика\Клиента, Номера накладной, Даты накладной, и Группы номерных серий?
Есть ли у кого какие соображения?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.10.2008, 15:08   #12  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
В параметрах РП есть контроль по Поставщик - Номер накладной - Дата накладной. Посмотрите там варианты.
__________________
С уважением,
glibs®
Старый 28.10.2008, 15:09   #13  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Logger
...
накладные на услуги сторнировать. и проводить снова с тем же InvoiceId.
...
А вы так не делайте.
__________________
С уважением,
glibs®
Старый 28.10.2008, 15:20   #14  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от glibs Посмотреть сообщение
В параметрах РП есть контроль по Поставщик - Номер накладной - Дата накладной. Посмотрите там варианты.
Ax 3.0 SP3 Не увидел такого...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.10.2008, 15:38   #15  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,915 / 3183 (114) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от glibs Посмотреть сообщение
А вы так не делайте.
Понимаю, что это не совсем правильно - с тем же номером проводить за ту же дату.
Не запланировано так было в системе.

Но по-моему, это искуственное ограничение, вызванное особенностями структуры данных в Аксапте. В реальной жизни ничего не должно препятствовать иметь второй документ за дату с тем же номером. Т.е. invoiceId + transdate не должно быть ключом.

Кстати, а как тогда правильно с точки зрения стандартной Аксапты сторнировать накладные на услуги ? Юзеры хотят чтоб номер у правильного документа сохранился.

Последний раз редактировалось Logger; 28.10.2008 в 15:41.
Старый 28.10.2008, 15:48   #16  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от lev Посмотреть сообщение
Ax 3.0 SP3 Не увидел такого...
Почему же...

Пареметры РП - Обновления - Проверка использования номера накладной
__________________
Zhirenkov Vitaly
Старый 28.10.2008, 16:08   #17  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Logger
...
Но по-моему, это ... ограничение, вызванное особенностями структуры данных в Аксапте.
...
Да. Просто ограничение.
Цитата:
Сообщение от Logger
...
Кстати, а как тогда правильно с точки зрения стандартной Аксапты сторнировать накладные на услуги ? Юзеры хотят чтоб номер у правильного документа сохранился.
...
Я решал такую задачу доработкой в виде ссылки накладной на другую накладную (неправильную). С печатью соответствующего номера. Но это для официальной первички. Не для реального учета.
__________________
С уважением,
glibs®
Старый 28.10.2008, 16:13   #18  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от ZVV Посмотреть сообщение
Почему же...

Пареметры РП - Обновления - Проверка использования номера накладной
Ну поле то есть, а в нем только параметры типа: "Разрешать дубликаты", "Запрещать дубликаты" и т.п. А по поводу в каком разрезе эта уникальность должна быть, ничего нету по идее конечно это рулиться индексом, но в стандарте на шапках накладных уникальных индексов нет, а сейчас добавлять их уже поздно.
Вот мне и интересно почему сделали такую структуру данных.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.10.2008, 18:52   #19  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от lev
...
А по поводу в каком разрезе эта уникальность должна быть, ничего нету
...
Читайте между строк. Либо в пределах финансового года и поставщика, либо в пределах поставщика.
Цитата:
Сообщение от lev
...
Вот мне и интересно почему сделали такую структуру данных.
...
Ну, не догадались, что она вам не понравится, и сделали.

Сравните поля, которые вы предлагаете в индекс с той проверкой, которая реализована в параметрах. Разницу видите?

Наверное, у них была цель сделать то, что они сделали, а не то, чего вам хочется.

Скажете, что стандартная проверка не логична? Ну или ваше логичнее ее? С прикладной точки зрения.
__________________
С уважением,
glibs®
Старый 29.10.2008, 10:45   #20  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от glibs Посмотреть сообщение
Читайте между строк. Либо в пределах финансового года и поставщика, либо в пределах поставщика.

Ну, не догадались, что она вам не понравится, и сделали.

Сравните поля, которые вы предлагаете в индекс с той проверкой, которая реализована в параметрах. Разницу видите?

Наверное, у них была цель сделать то, что они сделали, а не то, чего вам хочется.

Скажете, что стандартная проверка не логична? Ну или ваше логичнее ее? С прикладной точки зрения.
Никто не говорил о том нравиться или не нравиться. И никто никого не упрекал, что сделано так или не так. Просто возник данный вопрос, на который хотелось услышать ответ. Скорее всего сделали не просто так, а по какой то причине.
Если вам эта причина не известна, не надо переходить на личности. То что мне нравиться или нет это уже мои проблемы.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: How to create and post a financial voucher in Dynamics Ax Blog bot DAX Blogs 0 11.12.2008 22:05
Почему join запрос разбивается на подзапросы!? 3oppo DAX: Программирование 59 28.06.2007 11:52
InventJournalTrans DreamCreator DAX: Программирование 7 14.12.2004 14:48
Почему такое расхождение в скорости выполнения Владимир Максимов DAX: Программирование 28 11.09.2004 12:44
почему форма сразу закрывается ? puz DAX: Программирование 3 09.09.2003 11:56

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

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

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