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