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