Bankir.Ru
11 декабря, воскресенье 14:55

Объявление

Свернуть
Пока нет объявлений.

Diasoft5nt. Запрос по кассовым документам

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Diasoft5nt. Запрос по кассовым документам

    Подскажите как Diasoft5nt получить
    кассовые документы с разбивка кассовых документов по символам кассплана
    т.е. в результате должно получиться
    Дата проводки
    Номер документа
    Счет Дебет
    Счет Кредит
    Сумма кассового документа
    Символ кассового документа
    Сумма по символу

  • #2
    Это таблица tDocRelation

    Комментарий


    • #3
      господа. подскажите как быть
      нужно вывести аналогичный очтет
      счДт, счКт, сумма, касс.симв.
      вроде все получается, кроме одного момента, для одной проводки в таблице tDocRelation есть 2 записи с разными символами. в результате происходит дублирование проводки по каждому символу.
      как быть в такой ситуации?

      Комментарий


      • #4
        Сколько "разбивок" по символам касс. плана в документе, столько для этого документа и строк в таблице.
        Общая сумма = сумме документа

        Комментарий


        • #5
          Сообщение от bits Посмотреть сообщение
          Сколько "разбивок" по символам касс. плана в документе, столько для этого документа и строк в таблице.
          Общая сумма = сумме документа
          Плюс для документов, где счет кассы и в дебете и в кредите, в таблице присутствуют две записи на оба символа. Надо отбирать только нужные записи, но это вопрос скорее на sql.ru.

          Комментарий


          • #6
            может несколько не точно описал проблему..
            есть документ. по документу 2 проводки, с ид например 1 и 2.
            в таблице tDocRelation по этому документу 4 записи по 2 для каждой проводки, т.е.
            ид касс.симв
            1 1
            1 2
            2 1
            2 2
            по логике вещей мне нужно в отчете оборазить
            1 1
            2 2
            но как это получить из tDocRelation совершенно не понятно, т.к. записи в ней отличаются только символами, остальное один в один.
            в запросе фигурируют следующие таблицы
            FROM tOperPart p1
            inner join #t_res tr on tr.ResourceID=p1.resourceID
            left outer join tDocRelation d on p1.DealTransactID=d.DealTransactID
            inner join tResource r1 on r1.resourceId=p1.resourceID
            inner join tCashType c on (d.ChildID=c.CashTypeID)
            inner join tSecurity s on s.SecurityID = d.FundPsvID
            left outer join tDepartment e on e.DepartmentID=c.CashTypeID
            временная таблица - это счета кассы, для которых строится отчет

            Комментарий


            • #7
              Все равно не понятно что Вы хотели получить, плюс Ваш запрос не работает в принципе.
              Может имелось ввиду что-то в этом роде:

              select dt.Date, r.Brief, e.Brief, dr.Qty, case when #tr.ResourceID=dt.ResourceID then 'Приход' when #tr.ResourceID=dt.ResourcePsvID then 'Расход' else '' end
              from #tr
              inner join tDealTransact dt
              on #tr.ResourceID in (dt.ResourceID, dt.ResourcePsvID)
              and 1=1 -- всякие условия
              inner join tDocRelation dr
              on dt.DealTransactID = dr.DealTransactID
              and dr.RelType = 2
              inner join tCashType c
              on dr.ChildID=c.CashTypeID
              inner join tDepartment e
              on e.DepartmentID=c.CashTypeID
              inner join tResource r
              on r.ResourceId=#tr.ResourceID

              Комментарий


              • #8
                Сообщение от mikl2000 Посмотреть сообщение
                Все равно не понятно что Вы хотели получить, плюс Ваш запрос не работает в принципе.
                Может имелось ввиду что-то в этом роде:

                select dt.Date, r.Brief, e.Brief, dr.Qty, case when #tr.ResourceID=dt.ResourceID then 'Приход' when #tr.ResourceID=dt.ResourcePsvID then 'Расход' else '' end
                from #tr
                inner join tDealTransact dt
                on #tr.ResourceID in (dt.ResourceID, dt.ResourcePsvID)
                and 1=1 -- всякие условия
                inner join tDocRelation dr
                on dt.DealTransactID = dr.DealTransactID
                and dr.RelType = 2
                inner join tCashType c
                on dr.ChildID=c.CashTypeID
                inner join tDepartment e
                on e.DepartmentID=c.CashTypeID
                inner join tResource r
                on r.ResourceId=#tr.ResourceID
                если вы братили внимание, то это только секция from запроса. разумеется если его попытаться выполнить он не будет работать.
                меня интересует все связи (таблицы) тут учтены или нет.
                а получить нужно
                сч.дт, сч.кр. сумма. кас.симв.
                что именно не получается написал выше

                Комментарий


                • #9
                  Сообщение от dimds Посмотреть сообщение
                  если вы братили внимание, то это только секция from запроса. разумеется если его попытаться выполнить он не будет работать.
                  1) FROM тут ни при чем, речь была о join по несуществующим полям. Например d.FundPsvID.
                  2) Непонятно именно не то, что Вы хотите получить в результате, а то как вы это хотите получить таким образом.

                  Комментарий


                  • #10
                    Сообщение от mikl2000 Посмотреть сообщение
                    1) FROM тут ни при чем, речь была о join по несуществующим полям. Например d.FundPsvID.
                    2) Непонятно именно не то, что Вы хотите получить в результате, а то как вы это хотите получить таким образом.
                    1 да, с полем ошибка, не из тоблицы оно.
                    2 вот в том и вопрос, как мне получить то, что я хочу))) если бы я это знал, то не задал бы вопросов. вот и спрашиваю, КАК это полчить, для примера привел запрос, с помощью которого пытаюсь это получить

                    Комментарий


                    • #11
                      Вариант где и сч. по дебету и сч. по кредиту.
                      Оба варианта не проверял, могут быть детские ошибки, но думаю они оба рабочие.

                      select dt.Date, rd.Brief, rc.Brief, e.Brief, dr.Qty, case when #tr.ResourceID=dt.ResourceID then 'Приход' when #tr.ResourceID=dt.ResourcePsvID then 'Расход' else '' end
                      from #tr
                      inner join tDealTransact dt
                      on #tr.ResourceID in (dt.ResourceID, dt.ResourcePsvID)
                      inner join tDocRelation dr
                      on dt.DealTransactID = dr.DealTransactID
                      and dr.RelType = 2
                      inner join tCashType c
                      on dr.ChildID=c.CashTypeID
                      inner join tDepartment e
                      on e.DepartmentID=c.CashTypeID
                      inner join tResource r
                      on r.ResourceID=#tr.ResourceID
                      inner join tResource rd
                      on dt.ResourceID=rd.ResourceID
                      inner join tResource rc
                      on dt.ResourcePsvID=rc.ResourceID

                      Комментарий


                      • #12
                        -- inner join tResource r
                        -- on r.ResourceID=#tr.ResourceID
                        Это конечно лишнее

                        Комментарий


                        • #13
                          В мыслях не было критиковать чей-то код, было непонятно каким образом и зачем Вы хотели увязать проводки по счету с документом и разбивкой документа.
                          В tDocRelation хранится разбивка "документа", даже если у него нет проводок. Это в чем-то похоже на набор проводок, но совсем не тоже самое.
                          Данные можно получить и прямо из проводок (те самые "лишние" проводки), но это опять другая история.

                          Комментарий


                          • #14
                            я и пытаюсь получить эти данные из проводок.
                            если я правильно понял. то выйти на символа можно только через tDocRelation.
                            вот если можно, то хотелось бы пример "другой истории")))

                            Комментарий


                            • #15
                              Сообщение от dimds Посмотреть сообщение
                              я и пытаюсь получить эти данные из проводок.
                              если я правильно понял. то выйти на символа можно только через tDocRelation.
                              вот если можно, то хотелось бы пример "другой истории")))
                              ))) ждал, что такой вопрос возникнет и успел подготовиться.

                              Сразу на ум пришел вот такой вот "Нанайский" способ:
                              Вроде работает, но особо не проверил

                              --create table #tr(ResourceID DSIDENTIFIER)
                              --insert into #tr (ResourceID) values (10000024244)

                              select
                              ops.OperDate
                              ,case when ops.CharType=1 then r.Brief
                              when ops.CharType=-1 then r2.Brief
                              else '' end DebAcc
                              ,case when ops.CharType=-1 then r.Brief
                              when ops.CharType=1 then r2.Brief
                              else '' end CreAcc
                              ,ops.QtyBs
                              ,d.Brief
                              from #tr
                              inner join tOperPart op
                              on #tr.ResourceID = op.ResourceID
                              -- and условия по дате или что-то еще
                              inner join tOperPart ops
                              on ops.OperationID = op.OperationID
                              and ops.CharType = op.CharType
                              and ops.ResourceID <> op.ResourceID
                              inner join tSubcontoAccount sa
                              on ops.ResourceID = sa.ResourceID
                              inner join tSubcontoSet ss
                              on sa.SubcontoSetID = ss.SubcontoSetID
                              inner join tDepartment d
                              on d.DepHash = '%'+ss.DepHash+'%'
                              inner join tOperPart op2
                              on op2.OperationID = op.OperationID
                              and op2.CharType <> op.CharType
                              inner join tResource r
                              on r.ResourceID = op.ResourceID
                              inner join tResource r2
                              on r2.ResourceID = op2.ResourceID

                              Комментарий


                              • #16
                                вот это полет мысли))))
                                а пояснить можно. зачем тут столько раз используется таблица проводок?

                                Комментарий


                                • #17
                                  Сообщение от dimds Посмотреть сообщение
                                  вот это полет мысли))))
                                  а пояснить можно. зачем тут столько раз используется таблица проводок?
                                  1) Даже без мыслей о субконто проводка состоит из 2-х записей
                                  2) Кроме просто двух половинок Дт и Кт которые связанны с tResource, генерируются еще куча проводок, это те что связанны с собственно субконто. По первым отбираются счета, по остальным та самая разбивка.

                                  Первый и второй пример запросов отличаются принципиально:

                                  Brief Brief Qty Brief
                                  -------------------- -------------------- --------- -----
                                  20202978903000008888 20202810900200008888 36980.00 53

                                  DebAcc CreAcc QtyBs Brief
                                  -------------------- -------------------- --------- -----
                                  20202978903000008888 20202810900200008888 36957.70 53
                                  61406810800000000022 20202810900200008888 22.30 53

                                  Как говорится почувствуйте разницу и определитесь что Вам в итоге надо. Журнал проводок или кассовый журнал. Это как видно из результатов вообще не одно и тоже.
                                  Куда "копать" дальше можно понять из примеров. Естественно перепроверив и придав им лоску.

                                  Комментарий


                                  • #18
                                    ну что нам надо)) что бухгалтерия захотела то и надо
                                    они захотели вытащить проводки по счетам кассы. с кассовыми символами
                                    спасибо, буду дальше разбираться, что же нам надо)))

                                    Комментарий


                                    • #19
                                      Ну то что это надо не лично Вам, а кому-то еще, это понятно
                                      Удивляет, что такая проблема вообще встала перед Вами. Если не ошибаюсь, то уж чего-чего, а всяких кассовых журналов в дистрибутиве было предостаточно. Если что, там можно и посмотреть примеры.
                                      P/S
                                      Мои примеры "с листа", написал дома, диасофта у меня нет, проверить не мог. Рассматривайте их только как указание на направление куда двигаться.
                                      Удачи.

                                      Комментарий


                                      • #20
                                        ну я не скажу что очень дружу с диасофтом )))
                                        просто по мере сил пытаюсь решать проблемы.
                                        а примеры, вроде самый близкий по смыслу 202 форма. но как то с наскоку разобраться в коде сложновато

                                        Комментарий

                                        Пользователи, просматривающие эту тему

                                        Свернуть

                                        Присутствует 1. Участников: 0, гостей: 1.

                                        Обработка...
                                        X