Что делать, если после обновления 1С:УТ 11 поехали остатки в регистре "Распределение запасов"?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Рассмотрим частую и критичную для работы ситуацию: после значительного обновления конфигурации 1С:Управление торговлей (например, с версии 10.5 на 11.5) система начинает показывать хаотичные и неверные остатки товаров. При этом прямые запросы к регистру накопления ТоварыНаСкладах показывают корректные данные, а отчеты, построенные на регистре сведений РаспределениеЗапасов (например, "Остатки и доступность товаров"), выдают полную чепуху — для диагностики причин неверных данных есть отчет сравнения остатков и доступности товаров. Как следствие, система не дает проводить документы реализации, ссылаясь на нехватку товара, и работа компании останавливается. Чтобы быстро возобновить продажи, можно использовать проведение документов без контроля остатков, пока технические специалисты занимаются диагностикой. Разберем по шагам, как исправить эту проблему.

Шаг 1: Первичная проверка системы

Прежде чем приступать к глубокому анализу, убедимся, что само обновление прошло корректно и нет очевидных блокировок, мешающих системе работать.

  1. Проверяем результаты обновления. Система 1С ведет журнал процедур, выполненных после обновления. Посмотрим его. Перейдите в раздел НСИ и администрированиеИнтернет-поддержка и сервисыРезультаты обновления и версии. Убедитесь, что все процедуры выполнены успешно и отмечены зелеными галочками. Если есть ошибки, их нужно исправить в первую очередь.
  2. Проверяем фоновые задания. Механизм распределения запасов активно использует регламентные и фоновые задания для актуализации данных. Проверьте их состояние в разделе АдминистрированиеОбслуживаниеРегламентные и фоновые задания. Убедитесь, что задания, связанные с расчетом и распределением запасов, выполняются без ошибок.
  3. Снимаем дату запрета редактирования. Если в базе установлена дата запрета, она могла помешать корректному выполнению процедур обновления. Временно снимите ее на время исправления проблемы (НСИ и администрированиеНастройки пользователей и правДаты запрета изменения данных).

Шаг 2: Глубокая диагностика расхождений в регистрах

Проблема почти наверняка кроется в рассинхронизации данных между регистрами. Регистр сведений РаспределениеЗапасов — это не первичный источник данных, а своего рода кэш, оптимизированный срез данных для быстрого получения информации о доступности товаров. Его данные строятся на основе других регистров, в первую очередь — регистра накопления Запасы и потребности.

Именно в сравнении этих регистров и кроется ключ к разгадке. Проанализируем их взаимосвязь. В упрощенном виде, формула для проверки должна выглядеть так:

Конечный остаток по РН Запасы и потребности ≈ Остаток РН Товары на складах - Остаток РН Товары к отгрузке

Чтобы найти расхождение, нужно сравнить данные по одной проблемной номенклатуре в этих трех регистрах. Для детального анализа незаменим отчет для сравнения товаров на складах и себестоимости, который позволяет быстро найти ошибки в учете. Как показывает практика, часто возникает ситуация, когда в регистре Запасы и потребности корректно отражаются "потребности", но не отражаются "запасы" (фактическое наличие товара). В итоге система видит только списания и резервы.

Для анализа можно использовать консоль запросов или запустить автоматическое выравнивание остатков по регистру товаров организаций, чтобы выявить отрицательные остатки по складам и организациям, мешающие верному распределению.

Шаг 3: Методы исправления данных

После того как мы убедились, что проблема именно в рассинхронизации регистров, можно приступать к исправлению. Рассмотрим методы от простого к сложному.

  1. Запуск стандартных обработок. Первым делом стоит попробовать штатные инструменты и специализированные решения:

    • Обработка Исправление ошибок в регистре сведений "Распределение запасов".
    • Специализированное выравнивание складских остатков по излишкам и недостачам для устранения расхождений одним запуском.
    • Автоматическое исправление видов запасов, так как ошибки в аналитике учета часто являются первопричиной неверного распределения — для этого подойдет обработка автоматического исправления видов запасов и ГТД.
    • Полный пересчет итогов (АдминистрированиеОбслуживаниеРегламентные операцииПересчет итогов).
  2. Полное перепроведение документов. Это радикальный, но иногда действенный метод. Он заключается в том, чтобы отменить проведение всех документов за проблемный период, а затем провести их заново в хронологической последовательности. Метод очень трудоемкий, но заставляет систему полностью перестроить движения во всех регистрах.

  3. Программная очистка и перезаполнение регистра (Рекомендуемый метод). Это наиболее технически грамотный и безопасный способ, который не затрагивает сами документы. Суть метода — принудительно очистить "неправильный кэш" и заставить систему перестроить его заново на основе первичных данных. Если же требуется внести изменения непосредственно в первичные движения, может потребоваться универсальная корректировка остатков регистра накопления.

    Внимание! Этот метод требует квалификации программиста 1С и должен выполняться только на резервной копии базы данных.

    Алгоритм действий:

    1. Сделайте резервную копию базы данных. Это самый важный шаг.
    2. С помощью внешней обработки программно очистите все записи в регистре сведений РаспределениеЗапасов. Код может выглядеть так:
      
      НаборЗаписей = РегистрыСведений.РаспределениеЗапасов.СоздатьНаборЗаписей();
      НаборЗаписей.Прочитать();
      НаборЗаписей.Очистить();
      НаборЗаписей.Записать();
      
    3. После очистки необходимо запустить механизм, который заново заполнит этот регистр. Обычно за это отвечают регламентные задания или процедуры, выполняемые при проведении документов. Можно запустить полное перепроведение документов или найти и запустить штатную процедуру, отвечающую за актуализацию распределения запасов.

    Этот подход позволяет точечно исправить проблемный регистр, не затрагивая корректные данные в других частях системы, что делает его самым быстрым и надежным решением в сложных случаях.

← На главную