Почему не формируется прайс-лист в 1С:Управление торговлей 11 и как это исправить

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

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

Разберем архитектуру хранения данных

Для начала важно понять фундаментальный принцип работы 1С: отчеты практически никогда не берут данные напрямую из документов. Документ УстановкаЦенНоменклатуры — это лишь регистратор события. Сами же цены хранятся в специальном объекте — регистре сведений. В данном случае это периодический регистр сведений ЦеныНоменклатуры.

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

Шаг 1. Проверка статуса и согласования документа

В конфигурации 1С:Управление торговлей 11 (и аналогичных, таких как ERP или КА) реализован механизм многоэтапной установки цен. Проанализируем настройки системы. Если в базе включена опция Согласование цен номенклатуры, то простого проведения документа недостаточно.

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

Шаг 2. Анализ настроек самого отчета "Прайс-лист"

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

Флаг "Только имеющиеся в наличии"

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

Отбор по видам цен

Выясним, какие виды цен выбраны для отображения. В форме отчета нажмем Настроить и перейдем на вкладку Колонки. Убедимся, что выбраны именно те виды цен (например, "Розничная" или "Оптовая"), по которым проводилась установка цен. Если в списке колонок пусто или выбраны не те типы, отчет не найдет данных для вывода.

Шаг 3. Проверка настроек в карточке "Вид цены"

Не каждый вид цены может быть выведен в прайс-лист. Проанализируем настройки справочника Виды цен:

  1. Перейдем в CRM и маркетинг — Настройки и справочники — Виды цен.
  2. Откроем нужный вид цены.
  3. Проверим наличие галочки Использовать при продаже или Разрешить использовать в прайс-листах (название может меняться в зависимости от версии релиза). Если этот флаг снят, 1С считает цену "служебной" и игнорирует её при формировании внешних печатных форм и отчетов.

Шаг 4. Временной фактор и дата актуальности

Цены в 1С имеют строгую привязку ко времени. Выясним, на какую дату и время формируется отчет. Если документ установки цен был создан "сегодня" в 12:00, а вы формируете прайс-лист на дату "сегодня", но система по умолчанию подставляет начало дня (00:00:00), то цены еще не "наступили".

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

Шаг 5. Сегментация и иерархия

Рассмотрим ситуацию, когда в отчете установлены жесткие фильтры по структуре предприятия или номенклатуры:

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

Подводя итог, можно сказать, что решение проблемы всегда кроется в цепочке: Статус документа -> Движения регистра -> Фильтры отчета. Мы рекомендуем всегда начинать проверку с кнопки Движения документа. Если в таблице Цены номенклатуры пусто — ищите причину в документе (статус, проведение, заполнение). Если записи в таблице есть — ищите причину в настройках отчета (складские остатки, выбранные виды цен, дата).

Для программистов, желающих программно проверить наличие цен, можно использовать запрос к виртуальной таблице СрезПоследних:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    |   ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
    |ИЗ
    |   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних";

Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("ВидЦены", НужныйВидЦены);
РезультатЗапроса = Запрос.Выполнить();

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

← На главную