В процессе работы с конфигурацией 1С:Комплексная автоматизация 2 (релиз 2.4.7.109 и аналогичные) пользователи часто сталкиваются с неприятной ситуацией: документ Поступление безналичных денежных средств проводится успешно, однако при просмотре проводок выясняется, что сумма по счету 51 и корреспондирующему счету 62 (или 60) не соответствует итоговой сумме документа. Давайте подробно разберем, почему это происходит, как выявить причину и какими способами можно решить данную проблему.
Для начала нам необходимо понять фундаментальное отличие 1С:КА 2 и 1С:ERP от более простых конфигураций (например, 1С:Бухгалтерия). В современных системах на базе «1С:Предприятие 8.3» проводки в регламентированном учете практически никогда не формируются напрямую из табличных частей документа. Процесс выглядит следующим образом:
Расчеты с клиентами, Детализация расчетов и Движения Денежные средства - Контрагент.Вывод: если сумма в проводках некорректна, значит, документ неверно сформировал движения по регистрам оперативного учета. Ошибка кроется именно в распределении сумм внутри регистров.
Рассмотрим ситуацию, которую выявили пользователи в ходе обсуждения. Проблема чаще всего проявляется в документах, где в табличной части Расшифровка платежа указано более одной строки. Проанализируем конкретный пример:
Допустим, общая сумма документа составляет 100 рублей. В расшифровке указаны две строки:
В нормальной ситуации система должна была закрыть долг в 40 рублей, отправить 10 рублей на аванс по первому контрагенту и полностью отразить 50 рублей по второму. Однако из-за ошибки в алгоритмах релиза 2.4.7 происходит сбой. Как только система видит, что по первой строке сумма распределения (50 руб.) больше суммы фактического долга (40 руб.), она корректно обрабатывает этот «перехлест», но зачастую игнорирует последующие строки расшифровки при формировании проводок по регламентированному учету.
В результате мы видим проводку только на 50 рублей (сумма первой строки), а остальные 50 рублей «повисают» в оперативном учете, но не попадают в бухгалтерский.
Чтобы подтвердить эту теорию, проанализируем движения документа. Нам нужно обратить внимание на регистр накопления Движения Денежные средства - Контрагент. Именно этот регистр является «мостиком» между денежными средствами и взаиморасчетами для целей бухгалтерии.
Если вы обнаружите, что в этом регистре сумма по одной из строк совпадает с общей суммой документа, а по остальным строкам движения отсутствуют или задублированы, вы столкнулись с программной ошибкой (багом) конфигурации. В частности, в багборде 1С зафиксирована ошибка 000052894, описание которой гласит, что при наличии нескольких строк в документе поступления движения по регистру могут формироваться некорректно.
Существует несколько вариантов решения, от оперативных «костылей» до системного исправления.
Как показала практика, если изменить суммы в расшифровке таким образом, чтобы распределение не превышало текущий долг в первой строке, проводки формируются корректно.
Вернемся к нашему примеру: если мы укажем в первой строке 40 рублей (ровно сумму долга), а во второй — 60 рублей, то система увидит полную сумму 100 рублей и сформирует проводки правильно. Это временное решение, которое помогает «протолкнуть» документ в бухгалтерию без изменения кода.
Если взаиморасчеты сложные и подстроить суммы под долг невозможно, рекомендуется не оформлять многострочные документы. Вместо одного документа на 100 рублей с двумя строками расшифровки, создайте два отдельных документа «Поступление безналичных ДС» по 50 рублей каждый. Это гарантирует правильное отражение в регистрах и отсутствие конфликтов при формировании проводок.
Если документов много и переделывать их нет возможности, можно воспользоваться документом Корректировка регистров. Нам необходимо вручную привести в соответствие остатки в регистрах Расчеты с клиентами и Движения Денежные средства - Контрагент. Однако это крайне трудоемкий процесс, который может привести к ошибкам в будущем при зачете авансов.
Поскольку проблема признана разработчиками 1С (ошибка зафиксирована в ветке 2.4.7), наиболее правильным решением будет обновление конфигурации. В более поздних релизах (начиная с 2.4.11 и выше) логика работы общего модуля ДенежныеСредстваСервер была пересмотрена.
Разберем, какой код отвечает за распределение (упрощенно):
// В процедурах формирования движений 1С:КА/ERP
// Происходит обход таблицы расшифровки платежа
Для Каждого СтрокаРасшифровки Из ТаблицаРасшифровки Цикл
// Если алгоритм ошибочно берет итоговую сумму документа
// вместо суммы текущей строки расшифровки
Движение = Движения.ДенежныеСредстваКонтрагент.Добавить();
Движение.Сумма = ?(ОшибкаРелиза, Объект.СуммаДокумента, СтрокаРасшифровки.Сумма);
КонецЦикла;
Исправление в коде типовой конфигурации в новых релизах исключает использование общей суммы документа там, где должна использоваться сумма конкретной строки расшифровки.
Если вы столкнулись с расхождением сумм, выполните следующие шаги:
ОбъектРасчетов (Договор, Заказ или Накладная).Отражение документов в регламентированном учете и повторное проведение.НСИ и администрирование -> Настройка НСИ и разделов -> Взаиморасчеты. Посмотрите, включен ли режим «Онлайн». Если да, система распределяет взаиморасчеты мгновенно, и любая ошибка в ТЧ сразу портит регистры.Важный совет: В 1С:КА 2.4 всегда следите за тем, чтобы Партнер и Контрагент в шапке документа соответствовали тем, что указаны в расшифровке. Смешивание разных контрагентов в рамках одного документа при наличии авансов — это «слабое место» старых релизов ERP-систем.