Переход с версии 1С:Бухгалтерия ПРОФ на КОРП — это не просто обновление конфигурации, а качественное изменение структуры учета. Одной из самых неприятных проблем, с которыми сталкиваются специалисты после такого перехода, является невозможность провести документы Корректировка реализации за периоды, созданные еще в версии ПРОФ. Система выдает критическую ошибку: «Документом было реализовано меньше, чем возвращается», хотя по факту количество товара в исходном документе совпадает или превышает возвращаемое.
В этой статье мы подробно разберем, почему возникает этот конфликт, как работает механизм проверки в версии КОРП и какие существуют способы решения этой проблемы — от быстрых «обходных» путей до методически корректного исправления данных.
Давайте проанализируем ситуацию с технической точки зрения. Основное различие между версиями ПРОФ и КОРП заключается в ведении сквозного учета по подразделениям. В КОРП-версии подразделение становится обязательным разрезом аналитики на многих счетах (например, 90, 60, 62) и во вспомогательных регистрах. Проблема кроется в специфике работы общего модуля УчетТоваров.
Когда мы проводим корректировку реализации, система обращается к регистру сведений ДанныеПервичныхДокументов. В версии КОРП алгоритм проверки остатков (функция ПодготовитьТаблицуВозвращенныеСписанныеТовары()) выполняет запрос к этому регистру с жестким фильтром по полю ПодразделениеОтгрузки. Рассмотрим механизм сбоя:
ДанныеПервичныхДокументов поле подразделения для этой записи осталось пустым (Null или Неопределено).Рассмотрим метод, предложенный пользователями на практике. Он позволяет «обмануть» систему на время проведения документов, не прибегая к программированию. Этот способ подходит, если вам нужно срочно закрыть период и провести небольшое количество документов.
Разберем этот метод по шагам:
Вести учет по подразделениям.Корректировка реализации и проведем его. Поскольку фильтрация по подразделениям в запросах отключена, система успешно увидит остатки по исходной реализации.Вести учет по подразделениям на место.Внимание: после возвращения константы обязательно проверьте отчеты (Оборотно-сальдовую ведомость, Анализ субконто), чтобы убедиться, что аналитика не «поплыла».
Если документов много, постоянное переключение константы становится рискованным и неудобным. Проанализируем более профессиональный подход — дозаполнение исторических данных в регистре. Нам нужно сделать так, чтобы старые записи «подружились» с новыми требованиями КОРП-версии.
Для реализации этого способа воспользуемся стандартной обработкой «Групповое изменение реквизитов»:
Подразделение не заполнено. Также можно сделать отбор по конкретному списку документов реализации, которые вы собираетесь корректировать.Подразделение и укажем то значение, которое теперь является основным для вашей организации.После этой манипуляции система начнет корректно сопоставлять данные реализации и корректировки, так как у них появится общая аналитика в разрезе подразделений.
Если вы обладаете навыками программирования, полезно изучить, где именно происходит сбой. В типовых конфигурациях 1С этот контроль часто зашит в процедурах проверки остатков при отмене проведения или сторнировании.
Посмотрим на примерный фрагмент кода, который отвечает за инициализацию параметров запроса в общем модуле УчетТоваров (названия могут меняться в зависимости от релиза, но логика сохраняется):
// Фрагмент логики формирования запроса к первичным данным
Запрос.Текст = "ВЫБРАТЬ
| Т.Количество КАК КоличествоПродано,
| Т.Подразделение КАК Подразделение
|ИЗ
| РегистрСведений.ДанныеПервичныхДокументов КАК Т
|ГДЕ
| Т.Документ = &ДокументОснование
| И Т.Подразделение = &ПодразделениеОтгрузки";
Запрос.УстановитьПараметр("ДокументОснование", СсылкаНаРеализацию);
Запрос.УстановитьПараметр("ПодразделениеОтгрузки", ТекущееПодразделение);
В случае перехода с ПРОФ, параметр &ПодразделениеОтгрузки имеет конкретное значение из нового документа, а в таблице регистра для старого документа в поле Подразделение записано NULL. В результате NULL = &Подразделение всегда дает ложь, и данные не попадают в выборку.
После того как вы применили одно из решений и провели документы корректировки, мы рекомендуем выполнить следующие действия:
Таким образом, корень проблемы — не в ошибке программного кода 1С как таковой, а в разрыве аналитических данных при миграции между версиями программы. Используя ручное заполнение регистра или временное отключение контроля подразделений, вы сможете успешно провести корректировки и продолжить работу в полнофункциональной версии КОРП.