В процессе эксплуатации 1С:Управление торговлей 11 пользователи часто сталкиваются с ситуацией, когда данные в отчетах по взаиморасчетам перестают соответствовать реальности. В регистре накопления РасчетыСКлиентами появляются "хвосты", незакрытые авансы при наличии долга или пустые строки с нулевыми суммами, но заполненной аналитикой. Ситуация осложняется, если периоды уже закрыты, и прямое перепроведение документов запрещено политикой учета. Разберем детально, как восстановить порядок в регистрах, используя штатные и программные механизмы.
Прежде чем приступать к исправлениям, проанализируем, как устроена система хранения данных в современных версиях УТ 11. Взаиморасчеты фиксируются не в одном, а сразу в трех ключевых регистрах накопления:
Чаще всего "расползание" данных связано с рассинхронизацией этих регистров. Например, сумма по РасчетыСКлиентами закрыта, а в РасчетыСКлиентамиПоДокументам висит незачтенный аванс. Для диагностики мы рекомендуем использовать отчет Ведомость расчетов с клиентами с расширенной настройкой группировок по "Объекту расчетов" и "Расчетному документу".
Если в системе используется режим офлайн-взаиморасчетов, то движения по детальным регистрам (по документам и срокам) делает не сам документ при проведении, а фоновое задание или обработка Выполнение отложенных движений по расчетам с клиентами. Если данные "поплыли", мы можем инициировать принудительный пересчет.
Рассмотрим по шагам, как это сделать:
ЗаданияКРаспределениюРасчетовСКлиентами.
// Пример программного добавления заданий к пересчету
МенеджерЗаписи = РегистрыСведений.ЗаданияКРаспределениюРасчетовСКлиентами.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ОбъектРасчетов = СсылкаНаПроблемныйЗаказИлиДоговор;
МенеджерЗаписи.Месяц = НачалоМесяца(ДатаНачалаОшибок);
МенеджерЗаписи.Записать(Истина);
После записи заданий запустим обработку Закрытие месяца или регламентное задание по распределению расчетов. Система заново проанализирует "цепочку" документов и попытается схлопнуть остатки. Важный нюанс: если в самой структуре документов есть логические ошибки (например, оплата указана по одному договору, а отгрузка по другому), этот метод не поможет — потребуется ручная корректировка.
Вместо опасного использования технического документа КорректировкаРегистров, мы рекомендуем применять специализированный инструмент — Корректировка задолженности. Это позволяет сохранить целостность данных сразу во всех трех регистрах.
Выясним, как правильно работать с этим документом:
Если база данных старая и ошибок накопилось слишком много, наиболее эффективным решением будет переход на новый режим работы — Онлайн-взаиморасчеты. В современных релизах УТ 11 это является стандартом.
Рассмотрим преимущества этого метода:
РасчетыСКлиентами и РасчетыСКлиентамиПоДокументам.Если нам необходимо точечно исправить регистры, не затрагивая документы, мы можем создать документ КорректировкаРегистров. Однако, чтобы не сделать хуже, нужно соблюдать правило: корректировка должна производиться по всем измерениям регистра.
Проанализируем пример логики для написания обработки исправления:
РасчетыСКлиентами с помощью запроса, сгруппировав данные по всем измерениям (АналитикаУчетаПоПартнерам, ОбъектРасчетов, Валюта и т.д.).КорректировкаРегистров две записи на одну и ту же сумму: одну со знаком "минус" для ошибочного измерения, вторую со знаком "плюс" для корректного (или просто сторнирующую запись).Внимание: при использовании этого метода крайне важно синхронно править и регистр РасчетыСКлиентамиПоДокументам, иначе отчеты продолжат показывать некорректные данные, а при первом же распределении расчетов система попытается восстановить ошибочное состояние.
Подводя итог, мы рекомендуем следующий алгоритм действий:
Помните, что любые манипуляции с регистрами взаиморасчетов следует сначала проводить на копии базы данных и тщательно проверять результат отчетом Ведомость расчетов с клиентами с максимальной детализацией.