23.06.2006, 07:32 | #1 |
Гость
|
Как построить запрос?
Подскажите решение!!
Есть задача сформировать отчет в Excel такого типа: 1 колонка - код клиента 2 колонка - сальдо Дебет 62.01 3 колонка - сальдо Кредит 62.02 4 колонка - оборот за период Дебет 62.01 5 колонка - оборот за период (Дебет 50 Кредит 62 ) + (Дебет 51 Кредит 62) Можно ли в данном случае воспользоваться какими-то стандартными средствами для формирования такого отчета. Если нет, то как можно в одном query сформировать такое?? Заранее спасибо за любые советы. |
|
23.06.2006, 08:55 | #2 |
Участник
|
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. Мы никогда не используем зачеты, оплаты в валюте, а также мы не..." |
|
23.06.2006, 09:25 | #3 |
Участник
|
Цитата:
А теперь возвращаемся к счетам. Если ваши бухглатеры таки настаивают на том, что их интересует только 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 |
Участник
|
Цитата:
Сообщение от petr
Получается, что единственное правильное решение, это то которое применили локализаторы, в ОСВ по клиенту.
Дело в том, что счет в профиле разноски может впоследствии изменится. Правильное решение - не допускайте появления нескольких клиентов/поставщиков/банковских счетов/касс и т.п. в пределах одного ваучера. Нужно дописать проверку при разноске (или при записи, если вам пока сложно разобраться с разноской). Проверки вы все равно будете дописывать, чтобы учесть бизнес-правила вашей компании. |
|
23.06.2006, 09:48 | #5 |
Участник
|
Может лучше дописать проверку, чтобы профиль разноски по клиенту не менялся. Ведь, насколько я понимаю, стандартный отчет ГК - Отчеты - Выверка - Клиент тоже будет работать некорректно при изменении счетов в профилях разноски.
По-моему, если необходимо изменить счет, на который должна разноситься задолженность клиента, необходимо создавать новый профиль, а не менять старый. Или я опять неправ? |
|
23.06.2006, 09:57 | #6 |
Участник
|
Цитата:
Сообщение от petr
Может лучше дописать проверку, чтобы профиль разноски по клиенту не менялся.
Хотя в этом есть резон. Цитата:
Сообщение от petr
По-моему, если необходимо изменить счет, на который должна разноситься задолженность клиента, необходимо создавать новый профиль, а не менять старый.
С точки зрения пользователя каждый профиль означает определенную суть операции. Например: = Любимые/нелюбимые клиенты. = Внуренние/внешние продажи. = Основные и "прочие" продажи и/или оплаты. = и т.п. Создавать новый профиль - на практике означает - переучивать пользователей и переписывать инструкции. Думаю, что в первый раз вы с легкостью пойдете на это. Уверен на 100%, что во второй раз вы не захотите повторять процедуру переучивания пользователей. А ваучер для наших пользователей ничего не означает. Пользователи не следят и не контролируют ваучер. К сожалению. (если бы контролировали, то и дописывать ничего не надо было бы) |
|
23.06.2006, 10:03 | #7 |
Участник
|
Кроме того, рассмотрим ситуацию, когда одним журналом заносим оплату нескольких клиентов. По-моему для такого журнала можно установить один номер документа ГК, чтобы не плодить в LedgerTrans множество дублирующих проводок (одниаковых по смыслу и по дате и отличающихся только документом ГК и суммой).
Насколько я понимаю, для бухг. учета важна только общая сумма прошедшая по счетам ГК, а если необходимо разрезать эту сумму по клиентам, то можно обратиться в модуль "Расчеты с клиентами" и из custTrans + custLedger + custLedgerAccounts узнать сколько по какому клиенту прошло денег и по какому бухг. счету. Я пока считаю это наиболее правитьной точкой зрения. Или в мои рассуждения вкралась какая-нибудь ошибка. Т.к. я не бухгалтер и может не принимаю что-то во внимание. |
|
23.06.2006, 10:09 | #8 |
Участник
|
абсолютно правильный.
буржуи так и делают. ваше рассуждение приведет к трудностям только в одном: наши бухгалтера будут постоянно ставить задачи в терминах оборот 62.01 по клиентам. Со временем, конечно, они станут ставить нормальные задачи. Но поначалу будут часто задавать вопросы в 1Совском стиле. Ответить на их "хотелку" будет намного проще, если в ГК обороты не будут сворачиваться. Это единственный логический довод в пользу отдельных ваучеров для каждого клиента. Если ваши бухгалтера работают по-западному, то вполне можно применить и ваш подход. (В этом случае Аксапта начнет играть красками и начнет советовать суммы) Единственное теническое затруднение при вашем подходе - custLedgerAccounts могут меняться со временем. Будьте внимательны и осторожны. |
|
23.06.2006, 10:15 | #9 |
Участник
|
Извините, когда писал свое сообщение не видел Ваше.
Цитата:
С точки зрения пользователя каждый профиль означает определенную суть операции. Например:
= Любимые/нелюбимые клиенты. = Внуренние/внешние продажи. = Основные и "прочие" продажи и/или оплаты. = и т.п. = Любимые/нелюбимые клиенты (до даты Х) = Любимые/нелюбимые клиенты (с даты Х) = Внуренние/внешние продажи. (до даты Х) = Внуренние/внешние продажи. (с даты Х) и т.д. Притом, можно же поменять профиль используемый по умолчанию. И по-моему мой главный аргумент: Если менять счета в профилях разноски, то не работает "Сверка клиента с ГК". А это очень важный отчет. Во всяком случае для нас когда ОСВ по клиентам не идет а ОСВ в ГК. Или вы ее переписываете при внедрении? P.S. когда уже написал, прочитал Ваш ответ. Просто пока у нас профиля не менялись(т.к. не было необходимости) и интересно как поступить правильно если такая необходимость возникнет? |
|
23.06.2006, 10:15 | #10 |
Участник
|
Цитата:
Сообщение от petr
Насколько я понимаю, для бухг. учета важна только общая сумма прошедшая по счетам ГК, а если необходимо разрезать эту сумму по клиентам, то можно обратиться в модуль "Расчеты с клиентами".
|
|
23.06.2006, 10:20 | #11 |
Участник
|
Цитата:
Сообщение от petr
Может сделать так:
= Любимые/нелюбимые клиенты (до даты Х) = Любимые/нелюбимые клиенты (с даты Х) У вас достаточно грамотные пользователи, если вы не боитесь, что они перепутают такие профили. В общем, попробуйте. Может действительно это я дую на воду? Цитата:
Сообщение от petr
И по-моему мой главный аргумент: Если менять счета в профилях разноски, то не работает "Сверка клиента с ГК". А это очень важный отчет. Во всяком случае для нас когда ОСВ по клиентам не идет а ОСВ в ГК.
Или вы ее переписываете при внедрении? Но насколько я помню, его дописывать придется и в том случае, если в одном ваучере несколько клиентов. Но это надо уточнять - Давно это было. |
|
23.06.2006, 10:22 | #12 |
Участник
|
Цитата:
Если финансист вменяемый, то совершенно верно. Видимо вам повезло, что вас финотдел поддерживает в таком подходе. У нас, к сожалению, пришлось дописывать разноску таким образом, чтобы строку в custTrans можно было однозначно отразить на запись в ГК.
Я же пишу Цитата:
Насколько я понимаю
Никто меня в таком подходе не поддерживает. Так что у нас те же грабли, как и у Всех. |
|