В процессе работы с конфигурацией «1С:Управление торговлей 11» часто возникает необходимость наглядно видеть в списке те документы Реализация товаров и услуг, по которым на складе не хватает физического или свободного остатка. Рассмотрим подробнее, какими техническими и типовыми средствами можно решить эту задачу, а также проанализируем возможные проблемы с производительностью при доработке динамических списков.
Разберем вариант решения задачи через доработку формы списка документа с использованием механизма расширений. Для этого в произвольный запрос динамического списка добавляется признак дефицита номенклатуры, по которому затем настраивается условное оформление списка.
Проанализируем алгоритм выполнения доработки:
Реализация товаров и услуг.
ВЫБОР
КОГДА ТаблицаДокумента.Количество > ЕСТЬНУЛЛ(ТаблицаОстатков.КоличествоОстаток, 0)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ТоварВНаличии
После получения поля ТоварВНаличии в настройках условного оформления формы списка задаем правило: если ТоварВНаличии равно Истина, то устанавливаем цвет фона или текста строки в красный цвет.
Рассмотрим важные нюансы работы платформы 1С:Предприятие при модификации запроса динамического списка. Напрямую левое соединение с виртуальными таблицами остатков (например, ТоварыНаСкладах.Остатки или СвободныеОстатки.Остатки) в динамическом списке может привести к критическому падению скорости работы интерфейса.
Выделим ключевые причины замедления системы:
Если динамический расчет остатков приводит к зависаниям списка реализаций, проанализируем более оптимальные способы реализации подсветки:
1. Использование обработчика ПриПолученииДанныхНаСервере
Вместо усложнения запроса динамического списка расчёт остатков выполняется программно в обработчике формы ПриПолученииДанныхНаСервере. В этом случае платформой обрабатывается только порция строк, фактически выведенных на экран пользователя. На сервере собираются ссылки на видимые документы, одним точечным запросом проверяются остатки и оформляются ячейки списка.
2. Регистрация признака дефицита при проведении или регламентным заданием
В структуру конфигурации добавляется дополнительный реквизит документа или независимый регистр сведений. При проведении документа или по расписанию фоновым заданием рассчитывается остаток и фиксируется флаг ЕстьНехватка. В динамический список выводится готовое индексированное поле, по которому настраивается стандартное условное оформление без обращения к регистрам остатков в момент отображения списка.
Посмотрим на проблему с точки зрения типового функционала 1С:Управление торговлей 11. Чтобы избежать необходимости разрешать отгрузки в минус и городить технические «костыли», рекомендуется использовать штатные механизмы программы:
Реализация товаров и услуг при отсутствии товара.