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

Дебіторська заборгованість

Автор Андрейко, Грудень 22, 2008, 15:47:13

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

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

Андрейко

Привіт! Підкажіть будь-ласка що і куди потрібно занести в програмі щоб можна було б  визначити клієнта який має дебіторську заборгованість?

admin

А почему нельзя использовать кассовый или платежку?

Figa

Я завжди використовую Звут -> Взаєморозрахунки з контрангентами -> Взаєморозрахунки з клієнтами.
Виьбираєте період і маєте звіт. В кого залишок з "-" (мінусом) той і має борг.

phantom

Всем здравствуйте!
Нужна Ваша помощь в составлении отчета по дебиторской задолженности клиентов на основе (наверное) отчета "взаиморасчеты с клиентами" с детализацией по датам (и приход и расход) и привязкой клиентов к торговым агентам, каждый из которых обслуживает определенную часть клиентов (если это возможно).

admin

Цитата: phantom від Квітень 16, 2009, 14:02:48
Всем здравствуйте!
Нужна Ваша помощь в составлении отчета по дебиторской задолженности клиентов на основе (наверное) отчета "взаиморасчеты с клиентами" с детализацией по датам (и приход и расход) и привязкой клиентов к торговым агентам, каждый из которых обслуживает определенную часть клиентов (если это возможно).

Приведите пример такого отчета например в Excel.

phantom

#5
Цитата: Дмитрий Котельников від Квітень 16, 2009, 17:05:04
Цитата: phantom від Квітень 16, 2009, 14:02:48
Всем здравствуйте!
Нужна Ваша помощь в составлении отчета по дебиторской задолженности клиентов на основе (наверное) отчета "взаиморасчеты с клиентами" с детализацией по датам (и приход и расход) и привязкой клиентов к торговым агентам, каждый из которых обслуживает определенную часть клиентов (если это возможно).

Приведите пример такого отчета например в Excel.

Вот, что хотелось бы увидеть...

admin

1. Как поступать программе если указан больший период например год?
2. Или просто выбирать дату, а не период и брать последние 3 дня? Если да, почему период именно  3 дня?

phantom

Цитата: Дмитрий Котельников від Квітень 21, 2009, 12:51:11
1. Как поступать программе если указан больший период например год?
2. Или просто выбирать дату, а не период и брать последние 3 дня? Если да, почему период именно  3 дня?

1. Для такого периода вполне подходит существующий отчет "взаиморасчеты с клиентами", только "наученный" "привязывать" клиентов к сотрудникам (торговым агентам), т.е. как в примере первые два столбца, а дальше все как в "взаиморасчеты с клиентами".
2. 3 дня было указано просто для примера. Актуальный период - 5-6 дней (т.е. рабочая неделя).
Этот отчет нужен для выдачи на руки сотрудникам (торговым агентам) для контроля ими дебиторской задолженности своих клиентов.

admin

Цитата: phantom від Квітень 21, 2009, 14:45:20
1. Для такого периода вполне подходит существующий отчет "взаиморасчеты с клиентами", только "наученный" "привязывать" клиентов к сотрудникам (торговым агентам), т.е. как в примере первые два столбца, а дальше все как в "взаиморасчеты с клиентами".
2. 3 дня было указано просто для примера. Актуальный период - 5-6 дней (т.е. рабочая неделя).
Этот отчет нужен для выдачи на руки сотрудникам (торговым агентам) для контроля ими дебиторской задолженности своих клиентов.

У вас торговые агенты введены как пользователи в программе? Т.к. в версии 4.65 был введен параметр в отчеты Пользователи, теперь можно делать выборку по ним, для примера отчет "Реализация товара" можно выбирать по пользователям. Или вводит данные один человек просто за определенным клиентом закреплен определенный торговый агент? Или например просто торговые введены как группы контрагентов?

phantom

#9
Цитата: Дмитрий Котельников від Квітень 28, 2009, 11:18:10
У вас торговые агенты введены как пользователи в программе?
Нет, они введены как сотрудники и доступа к программе не имеют.
Цитата
Или вводит данные один человек просто за определенным клиентом закреплен определенный торговый агент?
Именно так.

admin

Цитата: phantom від Квітень 28, 2009, 13:22:53
Цитата: Дмитрий Котельников від Квітень 28, 2009, 11:18:10
У вас торговые агенты введены как пользователи в программе?
Нет, они введены как сотрудники и доступа к программе не имеют.
Цитата
Или вводит данные один человек просто за определенным клиентом закреплен определенный торговый агент?
Именно так.

Но в программе нет привязки сотрудника к клиенту, на данный момент есть 2 решения:
1. В поле дополнительно клиента вы введете имя сотрудника который за ним закреплен и в выборке мы попробуем сделать группировку по этому полю.
2. Либо вы всех клиентов разобьете по группам с названием вашего сотрудника.

PS: 1 вариант предпочтительней и проще решается.

phantom

#11
1. Согласен, хотя бы так.
2. Пробовал и такой вариант, в группе "Клиенты" создавал подгруппы (агенты №...), но при формировании отчета "взаиморасчеты с клиентами" все равно выдает весь список клиентов без учета подгрупп.

admin

Давайте попробуем:

Как делать отчет на основе другого?
1. Заходим в меню "Отчеты" и открываем нужный нам отчет.
2. Потом нажимаем на кнопку "В режим редактирования", и раскрываем окно на максимум (так будет удобней)
3. В открывшемся окне в полях "Название по-украински" и "Название по-русски", меняем или дописываем название для будущего отчета.
4. Далее меняем или правим в окне SQL запрос текст SQL запроса к базе данных.
5. Если надо включаем в "Выбор нужных параметров для отчета" галочки что надо выбирать перед формированием отчета, а что нет.
6. Нажимаем кнопку "Сохранить как новый", и закрываем окно.
7. Далее заходим обратно в меню "Отчеты" : "Отчеты пользователей" и ищем имя отчета которое вы задали.
8. Заходим в режим редактирования и смотрим название шаблона. Закрываем.
9. Сохраняем в папки /rep/ и /rep/rus/ прилагаемый файл и указываем имя как в п.8
10. Далее заходим обратно в меню "Отчеты" : "Отчеты пользователей" и ищем имя отчета которое вы задали в п.3 Открываем его и запускаем.

в.п.4 у вы должны написать след. скрипт:


SELECT
  c.dopoln,
  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     
  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,3
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,2


Сообщите о результатах.

PS: На практике отчет не проверял, пробуйте, должно так работать.

phantom

#13
Цитата
3. В открывшемся окне в полях "Название по-украински" и "Название по-русски", меняем или дописываем название для будущего отчета.
Не могу найти..., где эти поля находятся?