После обновления конфигурации 1С:ERP с версии 2.5.12 до 2.5.16 многие пользователи сталкиваются с критическими проблемами в учете взаиморасчетов с клиентами и поставщиками. Эти сложности затрагивают ключевые регистры накопления, такие как РасчетыСКлиентами и РасчетыСПоставщиками, и могут приводить к серьезным искажениям данных.
Давайте подробно разберем, какие симптомы указывают на наличие этой проблемы, как можно провести диагностику и какие решения были предложены для ее устранения.
Первоочередные признаки, на которые следует обратить внимание после обновления до версии 2.5.16 (или промежуточных подрелизов этой ветки), включают:
РасчетыСКлиентами и РасчетыСПоставщиками появляются лишние записи, которые ранее отсутствовали и не соответствуют реальным операциям.хоз.операцию ПереносАванса, после обновления и перепроведения документа может измениться на Реализация, что кардинально искажает смысл движения.Эти симптомы свидетельствуют о глубоких нарушениях в механизмах формирования движений по регистрам взаиморасчетов.
Чтобы убедиться, что вы столкнулись именно с этой проблемой, и понять ее природу, мы рекомендуем провести следующую диагностическую процедуру для одного из документов, по которому наблюдаются некорректные движения:
Реализация товаров и услуг или Поступление товаров и услуг), который, по вашим наблюдениям, создает проблемы во взаиморасчетах после обновления.Отчеты – Движения документа. В этом окне внимательно изучите записи по регистрам РасчетыСКлиентами, РасчетыСПоставщиками и связанным с ними регистрам взаиморасчетов (например, РасчетыСКлиентамиПоСрокам). Зафиксируйте количество записей и их содержание.Отчеты – Движения документа и сравните новые записи с тем, что вы видели до отмены и повторного проведения.Что мы можем увидеть в результате?
При повторном проведении документа часто наблюдается следующее: записи, которые были некорректно добавлены обработчиком обновления, удаляются. Количество записей в регистрах возвращается к тому, которое было до возникновения проблемы. Однако, при более внимательном рассмотрении, мы можем обнаружить, что в одной из старых, уже существующих записей, меняется хоз.операция. Например, движение с хоз.операцией ПереносАванса может стать движением с хоз.операцией Реализация. Это изменение является критическим, поскольку оно напрямую влияет на корректность распределения авансов и отражение задолженности.
Важным контекстом для этой проблемы является использование режима онлайн-взаиморасчетов. В 1С:ERP 2.5.16 были внесены значительные изменения в механизмы онлайн-расчета, и ошибки в их работе могут приводить к таким искажениям.
Для полного понимания сути проблемы, рассмотрим ключевые изменения, произошедшие в версии 2.5.16, и как они могли привести к описанным ошибкам.
Одним из основных источников проблемы стало изменение структуры оперативных регистров взаиморасчетов. Начиная с версии 2.5.16.61 (и в последующих подрелизах), в такие регистры, как РасчетыСКлиентами, РасчетыСПоставщиками, РасчетыСКлиентамиПоСрокам и РасчетыСПоставщикамиПоСрокам, были добавлены новые реквизиты. Мы можем увидеть следующие дополнения:
Объект расчетов приемник – ссылка на справочник ОбъектыРасчетов.Аналитика учета по партнерам приемник – ссылка на справочник КлючиАналитикиУчетаПоПартнерам.Сумма приемник – определяемый тип ДенежнаяСуммаЛюбогоЗнака.Валюта приемник – ссылка на справочник Валюты.Эти новые реквизиты были введены для более детального учета и обеспечения двойной записи в регистрах расчетов по срокам. Они позволяют системе более точно отслеживать взаимосвязи между объектами расчетов и аналитикой, что критично для сложных сценариев зачета авансов и погашения задолженности. Однако, как это часто бывает при масштабных изменениях, обработчик обновления, отвечающий за корректное заполнение этих новых полей и перестройку существующих данных, мог отработать некорректно.
Основная причина описываемых проблем кроется в некорректной работе обработчика обновления, который запускается при переходе с предыдущих версий (например, с 2.5.12 на 2.5.16). По нашим наблюдениям и анализу, этот обработчик:
Однако, в нашем случае, обработчик ошибочно добавлял новые записи или некорректно изменял существующие. Выяснилось, что проблема заключалась в его логике: обработчик не видел записи типа "Расход" по полю "КОплате" с хоз.операцией "ПереносАванса". Из-за этого "слепого пятна" он считал, что определенных движений не существует или они некорректны, и самостоятельно генерировал новые, ошибочные записи, либо изменял тип существующих. Это приводило к задваиванию сумм, неверным остаткам и, как следствие, к невозможности корректного закрытия регистров.
Подобные проблемы с задваиванием проводок или их полным отсутствием, а также движением в регистрах РасчетыПоСрокам будущим периодом, характерны для обновлений на версию 2.5.16, что часто связано с некорректной работой правил получения фактических данных или с поврежденными данными балансовых регистров.
К счастью, проблема оказалась известной и была адресована разработчиками 1С. Давайте рассмотрим, как она была решена и какие шаги мы можем предпринять для минимизации рисков.
По результатам обращений пользователей и внутренних проверок, 1С признала наличие данной ошибки в обработчике обновления. Это критически важное подтверждение, так как оно указывает на системный характер проблемы, а не на специфику конкретной базы данных.
В последующих подрелизах версии 2.5.16 (например, начиная с 2.5.16.101 и далее в 2.5.16.115) и в следующих мажорных версиях (например, 2.5.17), разработчики внесли изменения в код обработчика. Ключевое изменение заключалось в том, что Перенос авансов исключен из обработки. Это означает, что логика, которая ранее ошибочно обрабатывала и изменяла записи с хоз.операцией "ПереносАванса", была модифицирована таким образом, чтобы больше не создавать конфликты или некорректные движения.
Таким образом, для решения проблемы на уровне платформы необходимо обновиться до актуального подрелиза 1С:ERP 2.5.16 или до более поздней версии, где данное исправление уже включено.
Помимо обновления до исправленной версии, существуют и другие шаги, которые мы можем предпринять для диагностики, временного решения и предотвращения подобных проблем в будущем:
способ погашения задолженности в документах оплаты и способ зачета аванса в документах поступления и реализации. Их некорректная настройка может приводить к дисбалансу и "зависанию" сальдо на авансовых счетах, даже если сама логика обработчика обновления уже исправлена.
chkdbsql (для SQL-версий) или стандартных средств 1С. Поврежденные данные могут усугублять проблемы после обновлений.
В заключение, проблема с расчетами после обновления 1С:ERP до версии 2.5.16 является серьезной, но решаемой. Ее природа кроется в изменениях структуры регистров и ошибках в обработчике обновления, который некорректно обрабатывал переносы авансов. Благодаря своевременной диагностике и исправлению со стороны 1С, а также применению системных подходов к тестированию и актуализации данных, мы можем обеспечить стабильную и корректную работу системы взаиморасчетов.