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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2006, 07:32   #1  
Янка
Гость
 
n/a
Как построить запрос?
Подскажите решение!!
Есть задача сформировать отчет в Excel такого типа:
1 колонка - код клиента
2 колонка - сальдо Дебет 62.01
3 колонка - сальдо Кредит 62.02
4 колонка - оборот за период Дебет 62.01
5 колонка - оборот за период (Дебет 50 Кредит 62 ) + (Дебет 51 Кредит 62)

Можно ли в данном случае воспользоваться какими-то стандартными средствами для формирования такого отчета. Если нет, то как можно в одном query сформировать такое??
Заранее спасибо за любые советы.
Старый 23.06.2006, 08:55   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
cashFlow строите?
или акт сверки? если акт сверки, то вы забыли о зачетах

Что ж, начнем с того, что Аксапта - это не 1С.
Буду пользоваться терминами 1С.
В Аксапте суть операции и "субконто" определяет фин.счет, а не счет - "субконто". Как в 1С.

Поэтому постановка "код клиента" - "дебет 62.01" в Аксапте особого смысла не имеет. (Впрочем в 1С тоже особого не имеет, но это уже другая песня).
Дело в том, что:
1. один и тот же клиент может разносится как на 62.01, так и на 76... Может на 62.03 и т.п. В зависимости от того, что вы настроили в профилях разноски.
2. кроме того, Аксапта, в отличие от 1С, имеет механизм сопоставления. Сопоставление явно показывает какой платеж какой продаже (для данного случая) соответствует. С каким курсом, когда и кем было выполнено сопоставление... Сопоставление может быть частичным, один платеж может сопоставляться с разными продажами, и наоборот.

К чему это я говорю?
Пожалуйста, при работе с Аксаптой выкиньте из головы бухгалтерскую постановку вопроса. На время забудьте о счетах. Особенно кгда начинаете решать какую-нибудь задачу.

Итак, вам дали задачу сделать отчет по клиентам.
Вас интересует информация о продажах за период и оплатах за период.
По сути, у вас попросили акт сверки (но в постановке забыли о существовании зачетов)
Или же кто-то у вас строит cashFlow и на "всякий случай" попросил информацию и о продажах тоже.

Я правильно понял вашу задачу?

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

Вы должны идти в модуль клиенты. Смотреть проводки по клиентам. Показать в различных колонках суммы продаж и суммы оплат. Дополнительно вы можете учесть информацию из таблицы сопоставления по клиентам.

А теперь возвращаемся к счетам. Если ваши бухглатеры таки настаивают на том, что их интересует только 62.01, 62.02, 50, 51 (и никакие другие счета), то добавьте фильтр по бухгалтерским счетам (их надо вызять из бухгалтерских проводок ledgerTrans, связанных с уже найденными проводками по клиентам).

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

Что ж, теперь поищем, есть ли подобный отчет в Аксапте.
Есть. И даже несколько.
Акты сверки:
Главное меню \ Расчеты с клиентами \ Отчеты \ Внешний \ Выписка по клиенту (правда он оплаты показывает не в отдельной колонке, а в той же, что и продажи. Но модифицируйте, если это важное требование)
Главное меню \ Расчеты с клиентами \ Отчеты \ Проводки \ Клиент \ Внутренняя выписка по счету

только оплаты:
Главное меню \ Расчеты с клиентами \ Отчеты \ Проводки \ Клиент \ Проводки с фильтром (у оплат нет номера документа и не указан типа проводки).

Обратите внимание, что среди отчетов есть Оборотно-сальдовые ведомости.
Ими можно пользоваться. Только будьте предельно осторожны с этими отчетами. Оборотно-сальдовые ведомости сделаны людьми, которые такиже как и вы думали в терминах фин.счетов. В результате, эти отчеты работают правильно только в стерильных условиях, когда (цитирую ваш будущий ответ): "у нас продажи разносятся только на 62.01, а оплаты на 62.02. Мы никогда не используем зачеты, оплаты в валюте, а также мы не..."
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 09:25   #3  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
А теперь возвращаемся к счетам. Если ваши бухглатеры таки настаивают на том, что их интересует только 62.01, 62.02, 50, 51 (и никакие другие счета), то добавьте фильтр по бухгалтерским счетам (их надо вызять из бухгалтерских проводок ledgerTrans, связанных с уже найденными проводками по клиентам).
А у меня такие мысли по данному пункту. Что если будет так:

Есть журнал оплат, разносящийся одним документом ГК. Одному клиенту платим через 62.01 (он находится в группе "Основные клиенты" и профиль разноску указывает на 62.01) а другому через 62.02 (он находится в группе "Прочие" и профиль разноски указывает на 62.02). Затем журнал разносится. Создаются бухг. проводки в ledgerTrans и проводки по клиенту в CustTransю. Через связку Voucher + TransDate из таблицы CustTrans не видно какая проводка в LedgerTrans соответствует проводке в CustTrans и соответственно у какого клиента оплата прошла через 62.01, а у какого через 62.02.
Получается, что единственное правильное решение, это то которое применили локализаторы, в ОСВ по клиенту.

Или я в чем-то неправ?
Старый 23.06.2006, 09:30   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от petr
Получается, что единственное правильное решение, это то которое применили локализаторы, в ОСВ по клиенту.
Нет, это абсолютно неправильное решение.
Дело в том, что счет в профиле разноски может впоследствии изменится.

Правильное решение - не допускайте появления нескольких клиентов/поставщиков/банковских счетов/касс и т.п. в пределах одного ваучера.

Нужно дописать проверку при разноске (или при записи, если вам пока сложно разобраться с разноской). Проверки вы все равно будете дописывать, чтобы учесть бизнес-правила вашей компании.
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 09:48   #5  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Может лучше дописать проверку, чтобы профиль разноски по клиенту не менялся. Ведь, насколько я понимаю, стандартный отчет ГК - Отчеты - Выверка - Клиент тоже будет работать некорректно при изменении счетов в профилях разноски.

По-моему, если необходимо изменить счет, на который должна разноситься задолженность клиента, необходимо создавать новый профиль, а не менять старый.

Или я опять неправ?
Старый 23.06.2006, 09:57   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от petr
Может лучше дописать проверку, чтобы профиль разноски по клиенту не менялся.
Это достаточно жестоко в реальных условиях.
Хотя в этом есть резон.

Цитата:
Сообщение от petr
По-моему, если необходимо изменить счет, на который должна разноситься задолженность клиента, необходимо создавать новый профиль, а не менять старый.
Это с точки зрения программиста.

С точки зрения пользователя каждый профиль означает определенную суть операции. Например:
= Любимые/нелюбимые клиенты.
= Внуренние/внешние продажи.
= Основные и "прочие" продажи и/или оплаты.
= и т.п.

Создавать новый профиль - на практике означает - переучивать пользователей и переписывать инструкции. Думаю, что в первый раз вы с легкостью пойдете на это. Уверен на 100%, что во второй раз вы не захотите повторять процедуру переучивания пользователей.

А ваучер для наших пользователей ничего не означает. Пользователи не следят и не контролируют ваучер. К сожалению. (если бы контролировали, то и дописывать ничего не надо было бы)
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 10:03   #7  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Кроме того, рассмотрим ситуацию, когда одним журналом заносим оплату нескольких клиентов. По-моему для такого журнала можно установить один номер документа ГК, чтобы не плодить в LedgerTrans множество дублирующих проводок (одниаковых по смыслу и по дате и отличающихся только документом ГК и суммой).
Насколько я понимаю, для бухг. учета важна только общая сумма прошедшая по счетам ГК, а если необходимо разрезать эту сумму по клиентам, то можно обратиться в модуль "Расчеты с клиентами" и из custTrans + custLedger + custLedgerAccounts узнать сколько по какому клиенту прошло денег и по какому бухг. счету.

Я пока считаю это наиболее правитьной точкой зрения. Или в мои рассуждения вкралась какая-нибудь ошибка. Т.к. я не бухгалтер и может не принимаю что-то во внимание.
Старый 23.06.2006, 10:09   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
абсолютно правильный.
буржуи так и делают.

ваше рассуждение приведет к трудностям только в одном: наши бухгалтера будут постоянно ставить задачи в терминах оборот 62.01 по клиентам. Со временем, конечно, они станут ставить нормальные задачи. Но поначалу будут часто задавать вопросы в 1Совском стиле.

Ответить на их "хотелку" будет намного проще, если в ГК обороты не будут сворачиваться. Это единственный логический довод в пользу отдельных ваучеров для каждого клиента. Если ваши бухгалтера работают по-западному, то вполне можно применить и ваш подход. (В этом случае Аксапта начнет играть красками и начнет советовать суммы)

Единственное теническое затруднение при вашем подходе - custLedgerAccounts могут меняться со временем. Будьте внимательны и осторожны.
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 10:15   #9  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Извините, когда писал свое сообщение не видел Ваше.
Цитата:
С точки зрения пользователя каждый профиль означает определенную суть операции. Например:
= Любимые/нелюбимые клиенты.
= Внуренние/внешние продажи.
= Основные и "прочие" продажи и/или оплаты.
= и т.п.
Может сделать так:
= Любимые/нелюбимые клиенты (до даты Х)
= Любимые/нелюбимые клиенты (с даты Х)
= Внуренние/внешние продажи. (до даты Х)
= Внуренние/внешние продажи. (с даты Х)
и т.д.
Притом, можно же поменять профиль используемый по умолчанию.

И по-моему мой главный аргумент: Если менять счета в профилях разноски, то не работает "Сверка клиента с ГК". А это очень важный отчет. Во всяком случае для нас когда ОСВ по клиентам не идет а ОСВ в ГК.
Или вы ее переписываете при внедрении?

P.S. когда уже написал, прочитал Ваш ответ. Просто пока у нас профиля не менялись(т.к. не было необходимости) и интересно как поступить правильно если такая необходимость возникнет?
Старый 23.06.2006, 10:15   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от petr
Насколько я понимаю, для бухг. учета важна только общая сумма прошедшая по счетам ГК, а если необходимо разрезать эту сумму по клиентам, то можно обратиться в модуль "Расчеты с клиентами".
Если финансист вменяемый, то совершенно верно. Видимо вам повезло, что вас финотдел поддерживает в таком подходе. У нас, к сожалению, пришлось дописывать разноску таким образом, чтобы строку в custTrans можно было однозначно отразить на запись в ГК.
Старый 23.06.2006, 10:20   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от petr
Может сделать так:
= Любимые/нелюбимые клиенты (до даты Х)
= Любимые/нелюбимые клиенты (с даты Х)
Можно.
У вас достаточно грамотные пользователи, если вы не боитесь, что они перепутают такие профили. В общем, попробуйте. Может действительно это я дую на воду?

Цитата:
Сообщение от petr
И по-моему мой главный аргумент: Если менять счета в профилях разноски, то не работает "Сверка клиента с ГК". А это очень важный отчет. Во всяком случае для нас когда ОСВ по клиентам не идет а ОСВ в ГК.
Или вы ее переписываете при внедрении?
Ох... Дописываем. Может и зря...
Но насколько я помню, его дописывать придется и в том случае, если в одном ваучере несколько клиентов. Но это надо уточнять - Давно это было.
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 10:22   #12  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Если финансист вменяемый, то совершенно верно. Видимо вам повезло, что вас финотдел поддерживает в таком подходе. У нас, к сожалению, пришлось дописывать разноску таким образом, чтобы строку в custTrans можно было однозначно отразить на запись в ГК.
Мечтать не вредно (не мне, ни Вам).
Я же пишу
Цитата:
Насколько я понимаю
а не насколько понимает наша бухгалтерия.
Никто меня в таком подходе не поддерживает. Так что у нас те же грабли, как и у Всех.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не могу построить простейший запрос Prof DAX: Программирование 17 12.10.2007 23:37
Как собрать запрос? moid DAX: Программирование 11 02.07.2007 12:07
Почему join запрос разбивается на подзапросы!? 3oppo DAX: Программирование 59 28.06.2007 11:52
Долго отрабатывает запрос по таблице InventItemLocation AlexeyBP DAX: Администрирование 1 30.05.2007 17:33
Не работает запрос на нескольких компаниях Bega DAX: Программирование 3 16.09.2005 10:21

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

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

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