• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Помогите с отчетом Взаиморасчеты с клиентами/поставщиками

Автор дядя, Вересень 27, 2013, 01:11:59

Попередня тема - Наступна тема

0 Користувачі і 4 Гостей дивляться цю тему.

дядя

В Инструкции к программе (работа в Укрсклад. Особенности и советы) написано, что для учета дебиторской задолженности можно использовать стандартный отчет Взаиморасчеты с клиентами/поставщиками, который нужно немного изменить: "Как это сделать Вам легко подскажут на форуме" :)
Подскажите пожалуйста, что сделать нужно?

TheOK

Вы хотите, чтобы в отчете Взаиморасчеты с контрагентами (поставщики и клиенты) выводились только должники или вы хотите использовать данный отчет для определения задолженности по оплате с отсрочкой (как это написано в советах)?
Уточните пожалуйста.
Если для последнего случая, то вам необходимо:
1) Запустить отчет
2) В открывшемся отчете нажать кнопку Дизайнер -> Новый шаблон
3) В случае необходимости изменить внешний вид отчета (например, добавив еще одну ячейку, советую это делать копированием уже существующих ячеек, любых, кроме тех, у которых есть красненькая точечка слева)
4) Добавить в нужную ячейку текст [SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">)] (закладка Текст при редактировании ячейки)
5) В закладке Подсветка при редактировании ячейки можно "подсветить" текст (или всю ячейку) каким-то цветом для определенных условий. В данном случае это условие задается так: (SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">))<0


P.S. В "советах" имелось ввиду, что на форуме много кто знает как изменить отчет, используя простые арифметические операции над переменными...
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

дядя

Спасибо огромное! Именно это я и хотел!
Вот только один момент. У нас товар при первой поставке передается покупателям для выкладки на витрину (оптовая торговля). Поэтому первые одну-две накладные покупатель не должен оплачивать. Можно как-то предусмотреть в этом отчете, чтобы эти накладные не учитывались в качестве долга? Например ставить метку "1" в такой накладной и чтобы отчет накладные с такой меткой не учитывал?

TheOK



Мне кажется, что наиболее правильным было бы выписывать такие документы с ценой товара=0 .
Впрочем, если сильно нужно, то можно, ниже напишу как.
Однако, вам следует знать, что лучше не нарушать общего принципа расчета в программе (например, вы будете видеть неправильные данные в справочнике клиентов поля Баланс).


Чтобы не учитывать некоторые накладные (документы) в отчете, нужно выставить для них на закладке Общее статью (заведите какую-то специальную статью под такие случаи).
Итак:
1) Заведите специальную статью в программе  (Справочники->статьи прихода/расхода)
2) Узнайте ID статьи (в окне для ввода новых статей "засветите" колонку ID).
3) в текст для запроса (см. ниже) вставить вместо XXX ID статьи (см. П.4)
4) В SQL запросе отчета (в режиме редактирования) после текста WHERE нужно вставить текст
  tm.article_id=XXX and

Просто сохранить данный отчет (в стандартных) вы не сможете, нужно жать кнопку не Сохранить, а Сохранить как новый, после чего искать отчет в Отчеты->Отчеты пользователей

Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

дядя

Спасибо!
В Вашем коде стоит знак равно, а как написать не равно? Думаю мне как раз это нужно.
Уже нашел в  сети - знак "<>".

Остался только вопрос: что написать в редакторе шаблона, чтобы в ячейке высветило сумму всех накладных с нашей определенной статьей ххх ?

TheOK

Да, вы правы, нужно не равно (т.е. != )
В данном случае нельзя вывести в отдельной ячейке сумму по статье, которая не учитывается, т.к. эти данные отфильтровываются.
Если отзоветесь через недельку, на след. выходных мог бы посмотреть детальнее, в ближайшее время не смогу. Может быть еще кто-то внесет свою лепту...
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

дядя

Буду ждать! Спасибо!

Правда еще вопрос возник. Отчет показывает сумму долга, по которому настал срок платежа, с минусом. А сумму долга, по которой такой срок еще не настал -  с плюсом. При этом в последней нижней клетке все эти числа складываются.
Как сделать так, чтобы складывались только отрицательные числа, чтобы знать общую сумму всего просроченного долга? Иначе эта данные в этой клетке никакой практической ценности не имеют.
Формула сейчас, как ее выше написал TheOK:
[SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">)] 
Что изменить, чтобы в сложении участвовали только отрицательные числа? Или нужно sql запрос менять?

TheOK

Чтобы по несколько раз не переделывать, выложите сюда:
1) шаблон документа (при запущенном отчете, кнопка Дизайнер->изменить шаблон, в открывшемся редакторе: меню Файл->Сохранить как)
2) SQL запрос отчета (оформите его редактирование как код, как вы и сделали с предыдущем отрывком кода)
Заодно гляну, как вывести данные по статье
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

дядя

К стандартному отчету добавлены три колонки:
- К оплате (просроченный долг без учета товара на витрине),
- Витрина (товар статьи 1017, который не учитывается как долг),
- Всего (сумма колонок Остатки на конец периода+Витрина).
Для двух последних колонок не знаю какие формулы и как писать.
Также в нижней ячейке колонки "К оплате" нужно сложить только отрицательные числа, чтобы узнать общую сумму просроченного долга, но не знаю как. А еще правильнее в этой колонке все числа больше нуля не отображать, т.е. показать равными 0. Тогда и сумма внизу будет нормально считаться.

SELECT
  c.fio, 
  CASE       
    WHEN (tm.doc_type_id IN (1,4,5,6)) THEN tm.to_firma_id     
    ELSE tm.from_firma_id
  END AS client_id,     
  SUM(CASE
    WHEN (tm.doc_type_id IN (3,12,16) AND tm.mdate < '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    WHEN (tm.doc_type_id IN (1,4,5,6) AND tm.mdate < '#дата_с#') THEN (-1)*(tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv)
    ELSE 0 
  END) AS suma_zal,
  SUM(CASE     
    WHEN (tm.doc_type_id IN (1,4,5,6) AND tm.mdate >= '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    ELSE 0 
  END) AS suma_out,
  SUM(CASE     
    WHEN (tm.doc_type_id IN (3,12,16) AND tm.mdate >= '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    ELSE 0 
  END) AS suma_in
FROM       
  tovar_move tm, 
  client c       
WHERE     
  tm.article_id!=1017 and
  c.visible = 1 AND   
  c.main_pid = -10 AND
#if #валюта_№# = -1 #then
#else
  tm.curr_type = #валюта_№# AND
#endif
  tm.doc_type_id in (1,3,4,5,6,12,16) AND   
  tm.mdate <= '#дата_по#' AND
  CASE       
    WHEN (tm.doc_type_id = 1) THEN tm.from_firma_id   
    WHEN (tm.doc_type_id = 4) THEN tm.from_firma_id   
    WHEN (tm.doc_type_id = 5) THEN tm.from_firma_id   
    WHEN (tm.doc_type_id = 6) THEN tm.from_firma_id   
    ELSE tm.to_firma_id   
  END = #активная_фирма_№# AND
  CASE       
    WHEN (tm.doc_type_id = 1) THEN tm.to_firma_id   
    WHEN (tm.doc_type_id = 4) THEN tm.to_firma_id   
    WHEN (tm.doc_type_id = 5) THEN tm.to_firma_id   
    WHEN (tm.doc_type_id = 6) THEN tm.to_firma_id   
    ELSE tm.from_firma_id       
  END = c.num       
GROUP BY
  1,2
HAVING
  (udf_roundto(SUM(CASE
    WHEN (tm.doc_type_id IN (3,12,16) AND tm.mdate < '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    WHEN (tm.doc_type_id IN (1,4,5,6) AND tm.mdate < '#дата_с#') THEN (-1)*(tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv)
    ELSE 0 
  END),5) != 0 OR
  udf_roundto(SUM(CASE     
    WHEN (tm.doc_type_id IN (1,4,5,6) AND tm.mdate >= '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    ELSE 0 
  END),5) != 0 OR
  udf_roundto(SUM(CASE     
    WHEN (tm.doc_type_id IN (3,12,16) AND tm.mdate >= '#дата_с#') THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv
    ELSE 0 
  END),5) != 0 )
ORDER BY     
  1

Спасибо за Ваш такой полезный и нужный труд!

дядя

Не хочу быть назойливым...возможно есть какие-то хорошие новости для всех страждущих отчетов...? :-[

TheOK

Цитата: дядя від Жовтень 28, 2013, 22:46:09
Не хочу быть назойливым...возможно есть какие-то хорошие новости для всех страждущих отчетов...? :-[
К сожалению, времени помочь совершенно нет. Если у кого-то есть возможность, поспособствуйте решению пожалуйста.
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

Den

Дабы не плодить темы.
Вопрос по похожему отчету "Взаиморасчеты с клиентами" хотелось бы убрать клиентов с нулевым результатом в колонке "остаток на конец"
и подсветить разными цветами положительный и отрицательный результаты.
И еще один важный для нашей компании вопрос, как учитывать "Все" фирмы, а не только "Активную"
Заранее благодарен.

дядя

Читайте выше о подсветке:

5) В закладке Подсветка при редактировании ячейки можно "подсветить" текст (или всю ячейку) каким-то цветом для определенных условий. В данном случае это условие задается так:
Код: [Выделить]
(SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">))<0

Den

Читал, не работает, у меня отчет немного другой, [FORMATFLOAT(<формат_сумма_табл>,SUM(<DataRep."SUMA_ZAL">+<DataRep."SUMA_IN">-<DataRep."SUMA_OUT">))]

dmytro962

Цитата: TheOK від Вересень 27, 2013, 03:22:57
Вы хотите, чтобы в отчете Взаиморасчеты с контрагентами (поставщики и клиенты) выводились только должники или вы хотите использовать данный отчет для определения задолженности по оплате с отсрочкой (как это написано в советах)?
Уточните пожалуйста.
Если для последнего случая, то вам необходимо:
1) Запустить отчет
2) В открывшемся отчете нажать кнопку Дизайнер -> Новый шаблон
3) В случае необходимости изменить внешний вид отчета (например, добавив еще одну ячейку, советую это делать копированием уже существующих ячеек, любых, кроме тех, у которых есть красненькая точечка слева)
4) Добавить в нужную ячейку текст [SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">)] (закладка Текст при редактировании ячейки)
5) В закладке Подсветка при редактировании ячейки можно "подсветить" текст (или всю ячейку) каким-то цветом для определенных условий. В данном случае это условие задается так: (SUM(<DataRep."SUMA_ZAL">)+SUM(<DataRep."SUMA_IN">))<0


P.S. В "советах" имелось ввиду, что на форуме много кто знает как изменить отчет, используя простые арифметические операции над переменными...

Подскажите пожалуйста как сделать чтобы в Взаиморасчеты с контрагентами (поставщики и клиенты) выводились только должники?