Ситуация, когда после использования обработки «Поиск и замена дублей» в документах 1С:ERP 2.5 пропадают характеристики или возникают ошибки при перепроведении, является довольно распространенной. Это связано с тем, что в сложных учетных системах данные хранятся не только в «шапке» и табличных частях документов, но и в многочисленных регистрах накопления и сведений, которые не всегда корректно обновляются при простой программной замене ссылок. Разберем подробно, как выйти из этой ситуации и восстановить корректный учет.
Проанализируем, почему после замены дублей характеристики в документах могут отображаться корректно, а движения по регистрам остаются «пустыми». В 1С:ERP при записи документа часто не происходит автоматического обновления движений, если не вызван метод Записать(РежимЗаписиДокумента.Проведение). Если же вы использовали Универсальный подбор и замену объектов, система могла обновить ссылку в табличной части, но не инициировала пересчет партий, остатков и аналитик в регистрах.
Вторая серьезная проблема — разрыв связи в цепочке документов. Производственный процесс в ERP 2.5 жестко структурирован. Если вы изменили характеристику в Заказе на производство или Этапе производства, то связанные документы Передача материалов в производство и Передача продукции из производства начинают «ссылаться» на данные, которых нет в остатках (так как остатки числятся за старой характеристикой или за «пустой»).
Рассмотрим ситуацию, когда при попытке распровести или перепровести Передачу материалов в производство система выдает ошибку о нехватке остатков. Выясним причину этого парадокса: остатки на складе есть, но документ их «не видит». Это происходит по нескольким причинам:
Этап производства находится в статусе Завершен, он блокирует любые изменения в связанных документах движения.Для исправления ситуации необходимо действовать строго последовательно. Разберем по шагам правильную цепочку действий по «разматыванию» производственного узла:
Шаг 1. Снятие статусов завершения. Найдите Этап производства, в котором возникла проблема. Если он завершен, переведите его в статус К выполнению. Это откроет возможность редактирования связанных цепочек. Аналогично поступите с документами Выработка сотрудников — если они проведены, их нужно отменить, так как они фиксируют трудозатраты по конкретному этапу.
Шаг 2. Обратное распроведение цепочки. Выполните отмену проведения документов в следующем порядке (от последнего к первому):
Передача продукции из производства (этот документ фиксирует выпуск готового изделия);Передача материалов в производство (движение материалов со склада/кладовой);Этап производства.Шаг 3. Корректировка данных. Теперь, когда документы не создают движений, убедитесь, что в Этапе производства на вкладке Расход указана верная характеристика. Рекомендуется полностью очистить строку с проблемным материалом, записать документ, а затем добавить материал заново из справочника. Это принудительно обновит все скрытые идентификаторы строк.
Шаг 4. Обратное проведение. Проводите документы в хронологическом порядке: сначала Этап, затем Передачу материалов, и в конце Передачу продукции.
Если документов сотни, ручное перепроведение невозможно. В таких случаях программисты используют обработку Групповое изменение реквизитов. Но важно учитывать нюанс: при изменении реквизита в настройках (кнопка «Дополнительно») необходимо установить флаг Выполнять в транзакции и Вызывать правила при записи. Это заставит систему вызвать стандартные механизмы проведения.
Пример программной обработки для принудительного перепроведения движений без контроля остатков (использовать с осторожностью!):
// Пример кода для перепроведения документа с отключением проверок
ДокументОбъект = СсылкаНаЭтап.ПолучитьОбъект();
ДокументОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаРедактирования", Истина);
// Отключаем контроль остатков на время проведения для исправления пересортицы
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
В ходе обсуждения было предложено решение: временно отключить контроль остатков в настройках склада или прав пользователя, чтобы «протолкнуть» документы. Важно понимать последствия:
Если вы проведете Передачу материалов по «новой» характеристике, когда на остатках числится «пустая», в системе образуется разрыв:
Проанализируем влияние на финансовый результат: при выполнении регламентной операции Расчет себестоимости в конце месяца система не сможет сопоставить затраты. Партионный учет «сломается», и стоимость материалов не перейдет на стоимость готовой продукции. В итоге вы получите нулевую или некорректную себестоимость, что приведет к искажению прибыли предприятия.
Если цепочки документов слишком длинные и охватывают прошлые периоды, безопаснее не перепроводить старые документы, а воспользоваться инструментом Корректировка регистров. Посмотрим, какие регистры нужно исправить в первую очередь:
Товары на складах — для восстановления физических остатков;Товары организаций — для целей бухгалтерского учета;Обеспечение заказов — если используется резервирование;Детализация партий товаров для распределения — критически важный регистр для ERP 2.5, отвечающий за связь материалов с этапами производства.Создайте документ Корректировка регистров, где одной строкой спишите остаток с пустой характеристики («Расход»), а другой строкой приходуйте на нужную характеристику («Приход»). Это позволит документам производства «увидеть» остатки без необходимости перепроводить всю цепочку за полгода.
Для предотвращения подобных ситуаций в будущем, при замене дублей номенклатуры в 1С:ERP 2.5 всегда предварительно проверяйте наличие движений по регистрам. Лучшим инструментом для этого является отчет «Ведомость по товарам на складах». После любых массовых замен обязательно запускайте Тестирование и исправление информационной базы (пункт «Пересчет итогов»), чтобы актуализировать внутренние индексы системы.