Как отобразить остатки и цены в форме списка номенклатуры 1С:Управление торговлей 11

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

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

Почему данные скрыты из основного списка: технические причины

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

Проанализируем, что происходит, если мы добавим колонку «Остаток» напрямую в такой список:

  1. Нагрузка на СУБД: Чтобы рассчитать актуальный остаток для каждой видимой строки, системе нужно выполнить соединение таблиц товаров с регистром накопления ТоварыНаСкладах и рассчитать итоги на текущий момент. Если в списке тысячи позиций, а складов десятки, производительность резко падает.
  2. Сложность расчета цен: В современных конфигурациях цена — это не просто значение в справочнике. Она зависит от вида цены, соглашения с клиентом, действующих скидок и характеристик товара. Расчет этих данных «на лету» для всего списка товаров в реальном времени практически невозможен без значительных задержек.

Именно поэтому фирма 1С вынесла эти данные в специализированные инструменты. Рассмотрим их по порядку.

Решение 1: Использование формы подбора товаров

Выясним, где же теперь находятся те самые остатки и цены, к которым привыкли менеджеры. Основным инструментом для оперативной работы является обработка ПодборТоваровВДокументПродажи (или аналогичная для закупок) — для этого подойдёт вывод остатков и цен в формы списка и выбора. Она вызывается непосредственно из документов (например, из Заказа клиента).

В форме подбора реализованы:

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

Решение 2: Правая панель «Информация о товаре»

Если нам все же необходимо просматривать остатки, находясь в общем справочнике «Номенклатура», разберем штатную возможность использования контекстной информации. В правой части формы списка часто располагается панель (которую можно включить в настройках формы), отображающая данные по одной выделенной строке.

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

Решение 3: Специализированные отчеты

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

Система сформирует отчет с фильтром по текущей позиции или группе товаров. В нем будут видны не только физические остатки, но и:

Решение 4: Доработка формы (для программистов)

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

Метод А: Добавление вычисляемых полей в динамический список

Мы можем изменить запрос динамического списка, добавив левое соединение с регистром сведений ЦеныНоменклатуры (срез последних) или регистром накопления ТоварыНаСкладах (остатки).

Рассмотрим пример упрощенного запроса для динамического списка:


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

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

Метод Б: Использование вспомогательных регистров

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

Рекомендации по оптимизации

Если вы решили дорабатывать форму, следуйте этим правилам:

  1. Выводите данные только по основному складу компании.
  2. Используйте механизм расширений, чтобы не снимать конфигурацию с поддержки.
  3. Для вывода нескольких значений в одной ячейке (например, цена и остаток вместе) можно использовать строковое представление в запросе, но помните, что это исключит возможность сортировки по числовым значениям.
  4. Рассмотрите возможность использования функционала «Данные для выбора», который позволяет оптимизировать подтягивание связанных значений.

Таким образом, отсутствие колонок остатков в УТ 11 — это не ошибка, а особенность архитектуры, направленная на стабильность работы системы. Оптимальным решением будет использование штатной Формы подбора или настройка Панели дополнительной информации — удобнее через колонки остатков и цен в стиле УТ 10.3.

← На главную