отчет Взаиморасчеты с контрагентами - разные авторы документов
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
Генерирую отчет Взаиморасчеты с контрагентами с такими настройками:
и получается, что если кто-то ещё по этому контрагенту отпускал товар или получал деньги - автором сделки является другой менеджер, и открывший отчет менеджер установив в в качестве Автора сделки - не увидит реальную картину по балансу, т.к. в отчет не включаться документы и ПКО, которые сделали другие менеджеры... Как-то можно эту ситуацию обойти?
Пока что приходит в голову только: не устанавливать автора сделки, а выбрать конкретно контрагента.
Однако хочется видеть весь список контрагентов, которым менеджер что-то продавал с актуальным балансом по контрагенту, а не только по сделке этого менеджера. Т.к. могут быть переплаты из других заказов, или наоборот неоплаченные сделки, оформленные другим менеджером.
Посмотрите, включен ли в договоре флажок "Автоматическое закрытие сделок" это признак автоматического закрытия сделок по ФИФО. Если флажок не включен, то ПКО должно вводиться на основании документа, который сформировал дебиторскую задолженность например, Реализация товаров. Иначе ПКО не узнает о реализации и сформирует запись с операцией увеличение кредиторской задолженности вместо погашение дебиторской задолженности.
Находить такие записи в отчете легко используя в расшифровке добавление в отбор значение договора и отключения отбора по автору.
Прикрепленные файлы
ПКО просто вводят кто как хочет - могут в привязке к конкретному заказу/реализации, а могут просто получить деньги на клиента - и делать могут это разные люди, поэтому, когда стоит отбор по Автору сделки, а документы вводил не только "Автор", не видно реального баланса по Контрагенту...
Итог, как я понял - делать отбор по Контрагенту и снимать галку с автора сделки.
Как-то по-другому можно увидеть реальный баланс по всем клиентам менеджера, которым он что-то продавал, но при этом не выводя баланс по всем существующим клиентам в БД, т.к. долго очень генерится, и чем дальше тем дольше...?
МассивКонтрагентов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Контрагент");
Фильтр=ПостроительОтчета.Отбор.Найти("Контрагент");
Если Фильтр=Неопределено Тогда
Фильтр = ПостроительОтчета.Отбор.Добавить("Контрагент", "Контрагент", "Контрагент");
КонецЕсли;
Фильтр.Использование = Истина;
Фильтр.ВидСравнения = ВидСравнения.ВСписке;
Фильтр.Значение = МассивКонтрагентов;
Попытаюсь объяснить.
Есть Менеджер1 и Менеджер2, Клиент.
Менеджер1 - делает ЗаказПокупателя1 и Реализацю1 на сумму 100р.
Менеджер1 - делает ПКО1 на сумму 20р
Итог в отчете при установке по Автор=Менеджер1: долг по Клиент - "+80р" - клиент должен
далее
Менеджер2 - делает ЗаказПокупателя2 и Реализацию2 на сумму 200р.
Менеджер2 - делает ПКО2 на сумму 280р, чтобы закрыть в 0.
Итог в отчете при установке по Автор=Менеджер2: долг по Клиент - "-80р" - мы должны клиенту
теперь если сделать отчет при установке по Автор=Менеджер1, то будет долг по Клиент - "+80р" - клиент должен. хотя логичнее было бы показать 0. т.к. была переплата из ПКО2.
реальный баланс можно увидеть только сняв одбор по автору... что при выводе всех клиентов приводит к очень долгому генерированию отчета.
P.S. за отбор только по клиентам, которые ввел менеджер - спасибо, тоже использую.
Виктор, мы наверно чуть-чуть не понимаем друг друга.
Код прислал для того чтоб не вводить вручную по одному контрагенту, а сразу всех для одного менеджера.
Менеджер2 - делает ЗаказПокупателя2 и Реализацию2 на сумму 200р.
Менеджер2 - делает ПКО2 на сумму 280р, чтобы закрыть в 0.
Итог в отчете при установке по Автор=Менеджер2: долг по Клиент - "-80р" - мы должны клиенту
У первого и второго заказа используется один и тот же договор или они разные?
У первого и второго заказа используется один и тот же договор или они разные?
настройки отчета для 1-го менеджера
отчет для первого менеджера - до проведения договора 2-м и после - вид такой же,т.е. долг на клиенте 80у.е.
настройки отчета для 2-го менеджера
отчет для второго менеджера
Зарегистрировал задачку под номером С0104787
Если у ПКО будет установлен флажок "Автоматическое закрытие сделок", то сделки с контрагентом будут закрываться автоматически в таком порядке: если у ПКО есть основание, то сначала будет погашение дебиторской задолженности по основанию, далее оставшаяся сумма идет на погашение дебиторской задолженности по незакрытых сделкам если осталась не распределенная сумма, то она пойдет на увеличение кредиторской задолженности.
Прикрепленные файлы
Большое спасибо!
Таки в ПКО почему-то не проставлялась галочка "Автоматическое закрытие сделок"
P.S. Проверил: Если просто вводишь ПКО - то галочка установлена, а если на основании Заказа или Реализации - то снимается, несмотря на то, что установлено в договоре, поэтому и вылез этот вопрос...
нужно код:
Если (МетаданныеДокумента.Реквизиты.Найти("ДоговорВзаиморасчетов")<>Неопределено) И обЗначениеНеЗаполнено(ЭтотОбъект.ДоговорВзаиморасчетов) Тогда
Если Основание<>Неопределено Тогда
Попытка
ЭтотОбъект.ДоговорВзаиморасчетов=Основание.ДоговорВзаиморасчетов;
Исключение
ЭтотОбъект.ДоговорВзаиморасчетов=Неопределено;
КонецПопытки;
Иначе
ЭтотОбъект.ДоговорВзаиморасчетов=Неопределено;
КонецЕсли;
Если ЭтотОбъект.ДоговорВзаиморасчетов=Неопределено Тогда
Если обЗначениеНеЗаполнено(ЭтотОбъект.ДоговорВзаиморасчетов) Тогда
ЭтотОбъект.ДоговорВзаиморасчетов=ЭтотОбъект.Контрагент.ОсновнойДоговорВзаиморасчетов;
КонецЕсли;
ЭтотОбъект.ОбработкаРеквизита("ДоговорВзаиморасчетов",);
КонецЕсли;
КонецЕсли;
заенить на этот:
Если (МетаданныеДокумента.Реквизиты.Найти("ДоговорВзаиморасчетов") <> Неопределено) И обЗначениеНеЗаполнено(ЭтотОбъект.ДоговорВзаиморасчетов) Тогда
Если Основание <> Неопределено Тогда
Попытка
ЭтотОбъект.ДоговорВзаиморасчетов = Основание.ДоговорВзаиморасчетов;
Исключение
ЭтотОбъект.ДоговорВзаиморасчетов = Неопределено;
КонецПопытки;
Иначе
ЭтотОбъект.ДоговорВзаиморасчетов = Неопределено;
КонецЕсли;
Если ЭтотОбъект.ДоговорВзаиморасчетов = Неопределено Тогда
Если обЗначениеНеЗаполнено(ЭтотОбъект.ДоговорВзаиморасчетов) Тогда
ЭтотОбъект.ДоговорВзаиморасчетов = ЭтотОбъект.Контрагент.ОсновнойДоговорВзаиморасчетов;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ЭтотОбъект.ДоговорВзаиморасчетов) Тогда
ЭтотОбъект.ОбработкаРеквизита("ДоговорВзаиморасчетов",);
КонецЕсли;
КонецЕсли;
Добрый день, а можно уточнить, пожалуйста, на что повлияет данное изменение?
Думал что на отчет, но это не так... на галочку "Автоматическое закрытие сделок"?
При вводе ПКО на основании реализации товаров у ПКО не устанавливается признак "Автоматическое закрытие сделок" хотя по настройкам договора должен включаться.
Отчет не исправить, он рабочий. Нужно проставить у всех ПКО флаг "Автоматическое закрытие сделок" и перепровести.
Можно попробовать так:
1. Написать обработку, которая делает выборку всех документов ПКО с условием, что документ проведен. В выборке документов из ссылки получаем объект, взводим флаг и проводим.
2. Протестировать на демо базе.
3. Попросить, чтоб в данный момент не проводили документы задним числом.
4. Восстановить все последовательности.
5. Запустить обработку.
6. Удалить записи во всех регистрах сведений "Границы последовательности ...".
только не совсем понимаю, зачем в конце 6. Удалить записи во всех регистрах сведений "Границы последовательности ...".?
или после 6-го пункта надо опять восстановить все последовательности?
Просто у нас какая-то чехарда с этой галочкой. Во всех договорах галочка стоит, но в некоторых заказ-нарядах ее нет.
Сначала считали, что менеджеры косячат, но прочитав эту тему и попробовав на базе, выяснил, что галочка снимается не только в ПКО, выписываемых на основании, но и в заказ-нарядах, которые выписываются на основании заявки на ремонт. Надо перевыбрать договор, чтобы галочка поставилась (или поставить вручную).