При переходе на новые версии конфигурации 1С:Управление нашей фирмой (УНФ), особенно начиная с версии 3.0 и выше, пользователи часто сталкиваются с неприятным визуальным багом. В карточке товара или в общем списке номенклатуры остатки начинают отображаться на некоем «складе без наименования». При этом реальные движения по документам проходят по корректным складам, а попытки исправить ситуацию ручными корректировками лишь удваивают остатки: одна часть числится на правильном складе, а «фантомная» часть продолжает висеть на пустом.
В этой статье мы подробно разберем, почему возникает эта ситуация, проанализируем механизмы работы программы и найдем самый быстрый способ вернуть корректное отображение данных.
Давайте разберем техническую подоплеку. В современных версиях УНФ для ускорения работы интерфейса используется механизм динамического считывания остатков. Чтобы список товаров с тысячами позиций открывался мгновенно, программа не всегда обращается напрямую к основным регистрам накопления (таким как Запасы или ЗапасыНаСкладах) в режиме реального времени. Вместо этого система формирует вспомогательные (кэшированные) таблицы данных.
Во время обновления конфигурации структура этих таблиц или алгоритм их заполнения могут измениться. Если фоновое задание, отвечающее за актуализацию этих данных, не отработало корректно или произошло прерывание процесса обновления, связь между реальным остатком на складе и его отображением в списке разрывается. Программа «знает», что товар есть в наличии (считывает количество), но не может сопоставить его с конкретной ссылкой на справочник Склады в интерфейсной форме. Так и появляется строка с пустым названием склада.
Рассмотрим самый простой и эффективный способ, который помогает в 90% случаев. Разработчики предусмотрели специальную команду для принудительной синхронизации экранных данных с данными регистров.
Важный момент: После нажатия этой кнопки система инициирует процедуру пересчета видимых остатков. Это не просто обновление экрана (как клавиша F5), а полноценная команда для перестроения временных таблиц отображения. После выполнения команды «фантомный» склад должен исчезнуть, а остатки — корректно распределиться по вашим реальным складам.
Если предыдущий шаг не помог, проанализируем ситуацию с точки зрения пользовательских настроек. Иногда проблема кроется в некорректном сохранении кэша настроек конкретного пользователя после обновления метаданных.
Попробуем выполнить следующие действия:
Это действие часто помогает, если «пустой склад» является следствием ошибки в группировках динамического списка, которые перестали корректно обрабатывать поле Склад после обновления.
Разберем ситуацию глубже. В УНФ за актуальность данных в списках отвечают специальные регламентные задания. Если они выключены или завершились с ошибкой, данные будут «висеть» в неактуальном состоянии.
Нам необходимо проверить состояние задания Обновление остатков товаров:
Пример программного кода, который выполняется внутри системы для обновления таких данных (упрощенно), выглядит так:
// Внутренний механизм системы по обновлению итогов
РегистрыНакопления.Запасы.УстановитьИспользованиеИтогов(Истина);
РегистрыНакопления.Запасы.ПересчитатьИтоги();
Проанализируем ситуацию, когда ошибка отображения является следствием расхождения итогов в самой базе данных. Это более серьезный случай, требующий монопольного доступа к базе.
Эта процедура заново пересчитает все остатки во всех регистрах накопления, опираясь на первичные документы. Если проблема была в «разъехавшихся» итогах, после этой операции «пустой склад» исчезнет навсегда.
Чтобы убедиться в достоверности данных, мы всегда рекомендуем использовать стандартные отчеты, которые обращаются напрямую к таблицам итогов, минуя механизмы оптимизации списков. Проверьте остатки с помощью отчета Остатки товаров или Запасы. Если в отчете склад указан верно и пустых строк нет, значит, база данных в порядке, и проблема была лишь визуальной.
Помните, что перепроведение документов, как это делал автор вопроса, часто оказывается бесполезным, так как оно не обновляет кэшированные таблицы динамических списков, а лишь перезаписывает движения в регистрах. Используйте кнопку Обновить остатки — это самый быстрый и правильный инструмент в данной ситуации.