Почему не выводится срок годности «Годен до» в отчете СКД для 1С:УТ 11 и как это исправить?

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

При разработке отчетов в системе компоновки данных (СКД) для конфигурации «Управление торговлей 11» программисты часто сталкиваются с ситуацией, когда поле ГоденДо (срок годности), выбранное через реквизит серии, оказывается пустым в результате выполнения запроса. Рассмотрим причины возникновения этой проблемы, проанализируем архитектуру учета серий и разберем по шагам способы получения корректных данных.

Выясняем причину: Почему поле «Серия» в регистрах остатков может быть пустым?

Первым делом проанализируем ситуацию, с которой сталкивается разработчик. При написании запроса к виртуальной таблице ТоварыНаСкладах.ОстаткиИОбороты мы ожидаем увидеть заполненное поле Серия.ГоденДо. Однако на практике поле часто остается пустым, даже если в документах поступления серии были указаны. Основная причина кроется в Политике учета серий, настроенной в программе.

В «1С:Управление торговлей 11» учет серий может быть организован несколькими способами, и далеко не каждый из них предполагает запись серии в регистры накопления (остатков):

  1. Справочное указание серий: Серии фиксируются только в документах для формирования печатных форм. В регистры остатков (такие как ТоварыНаСкладах) информация о сериях в этом случае не записывается. Система не ведет количественный учет в разрезе серий, поэтому поле Серия в регистре всегда будет содержать пустое значение.
  2. Учет остатков серий: Только при этой настройке серия становится полноценным измерением регистра. Система начинает контролировать наличие каждой серии на складе, и тогда данные можно извлечь напрямую из таблиц остатков.

Если в вашей базе настроено «Справочное указание серий», запрос к регистру остатков не даст результата. Выясним, как получить данные в этом случае.

Решение 1: Использование регистра «Движения серий товаров»

Рассмотрим альтернативный источник данных. Если серии не записываются в регистры накопления, они в любом случае фиксируются в специальном информационном регистре — ДвиженияСерийТоваров. Этот регистр предназначен для хранения информации о том, какие серии были указаны в конкретных документах (поступлениях, реализациях и т.д.), независимо от политики учета остатков.

Проанализируем пример запроса, который позволит вытащить срок годности через этот регистр:


ВЫБРАТЬ
    ДвиженияСерийТоваров.Серия КАК Серия,
    ДвиженияСерийТоваров.Серия.ГоденДо КАК СрокГодности,
    ДвиженияСерийТоваров.Номенклатура КАК Номенклатура,
    ДвиженияСерийТоваров.Регистратор КАК ДокументДвижения
ИЗ
    РегистрСведений.ДвиженияСерийТоваров КАК ДвиженияСерийТоваров
ГДЕ
    ДвиженияСерийТоваров.Номенклатура = &Номенклатура

Этот способ эффективен, если нам нужно увидеть, какие сроки годности «проходили» через склад по документам. Однако помните, что этот регистр — информационный, он не хранит текущий остаток. Для получения остатка со сроком годности при справочном учете придется соединять данные регистра остатков и регистра движений серий по сложной логике (что не всегда оправдано технически).

Решение 2: Проверка настроек Вида номенклатуры

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

  1. Перейдем в карточку Вида номенклатуры.
  2. Найдем раздел настройки серий. Убедимся, что флаг «Использовать серии» установлен.
  3. Проверим поле «Серия идентифицирует». Для учета сроков годности обычно выбирается вариант «Партию товаров».
  4. Самый важный пункт — Политика учета серий. Если вы хотите видеть серии в регистре ТоварыНаСкладах, политика должна иметь тип «Учет себестоимости по сериям» или «Учет остатков серий».

Важно: Изменение политики учета серий на уже работающей базе — процедура сложная, требующая перепроведения документов и понимания того, как это повлияет на производительность системы. Если политика изменена, данные в регистре появятся только после перепроведения документов поступления.

Особенности настройки СКД для вывода срока годности

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

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

Выполним следующие шаги в конструкторе СКД:

Пример запроса с явным соединением справочника серий для надежности:


ВЫБРАТЬ
    ТоварыНаСкладах.Номенклатура КАК Номенклатура,
    ТоварыНаСкладах.ВНаличииОстаток КАК Остаток,
    СерииНоменклатуры.ГоденДо КАК СрокГодности
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
        ПО ТоварыНаСкладах.Серия = СерииНоменклатуры.Ссылка

Проверка функциональных опций и складских настроек

Проанализируем еще одну возможную причину. В «1С:Управлении торговлей 11» возможность работы с сериями регулируется глобально. Если поле ГоденДо не заполняется или отсутствует, проверим общие настройки системы:

  1. Зайдем в раздел «НСИ и администрирование» — «Настройка НСИ и разделов» — «Номенклатура».
  2. Убедимся, что включена опция «Серии товаров».
  3. Проверим настройки конкретного склада. В УТ 11 использование серий настраивается для каждого склада индивидуально. Даже если в виде номенклатуры серии включены, на конкретном складе политика может быть установлена как «Не использовать».

Итоги и рекомендации

Подведем итог нашему разбору. Если вы не видите срок годности в отчете:

  1. Проверьте Политику учета серий. Если она «Справочная», серии в регистре остатков не будет — используйте регистр сведений ДвиженияСерийТоваров.
  2. Если политика подразумевает учет остатков, убедитесь, что документы перепроведены и серия в регистре ТоварыНаСкладах действительно заполнена (проверьте через Консоль запросов).
  3. Убедитесь, что в самой карточке Серии поле Годен до заполнено вручную или при загрузке данных.

Использование правильного регистра и понимание настроек складского учета в УТ 11 позволяют корректно выводить информацию о сроках годности в любых пользовательских отчетах.

← На главную