Каждый владелец розничного магазина или менеджер по продажам регулярно сталкивается с необходимостью распечатать актуальный прайс-лист для покупателей или контрагентов. В программе «1С:Розница» для этого предусмотрен удобный одноименный отчет. Однако нередко пользователи сталкиваются с неприятной ситуацией: при нажатии на кнопку «Сформировать» программа выдает абсолютно пустой бланк или сообщает об отсутствии данных. Давайте детально разберем, почему так происходит, проанализируем неочевидные тонкости настройки системы и вместе решим эту проблему раз и навсегда.
Выясним причину, которая чаще всего ставит в тупик начинающих пользователей. В конфигурациях на платформе 1С:Предприятие 8.3 справочник Номенклатура имеет иерархическую структуру — товары разложены по папкам (группам). При настройке отчета пользователи часто хотят вывести цены только по конкретной группе товаров (например, «Болты» или «Анкеры»).
Давайте проанализируем, как ведет себя система при разных настройках фильтра:
Номенклатура Равно Болты, система ищет конкретный элемент справочника, у которого в названии написано «Болты» и который при этом является непосредственно товаром, а не папкой. Так как «Болты» — это папка (группа), в которой лежат другие товары, система не находит ни одного подходящего конечного товара и формирует пустой отчет.В группе. Соответственно, правильная настройка должна выглядеть так: Номенклатура В группе Болты.Под капотом платформы этот механизм реализуется через специальный запрос к базе данных. Чтобы лучше понять логику работы программы, посмотрим на пример упрощенного запроса, который система выполняет при формировании прайс-листа:
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Товар,
ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаТовара,
ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
// Неверно: ЦеныНоменклатурыСрезПоследних.Номенклатура = &ГруппаТоваров
// Верно:
ЦеныНоменклатурыСрезПоследних.Номенклатура В ИЕРАРХИИ(&ГруппаТоваров)
Именно оператор В ИЕРАРХИИ в коде запроса (который в пользовательском интерфейсе называется В группе) позволяет обойти все вложенные элементы и извлечь их цены.
В процессе работы мы можем случайно перенастроить отчет так, что в него перестанут попадать нужные данные. Если вы долго экспериментировали с фильтрами, и прайс-лист перестал формироваться, давайте выполним простое действие — вернем настройки по умолчанию. Разберем по шагам, как это сделать:
После этого все скрытые и ошибочные отборы будут сброшены, и мы сможем настроить фильтрацию заново, уже не допуская старых ошибок.
Рассмотрим подробнее еще один неочевидный момент, связанный со временем проведения документов в системе. В 1С цены хранятся в так называемых периодических регистрах сведений. Каждая запись имеет точную дату и время с точностью до секунды.
Представим ситуацию: менеджер установил цены сегодня в 12:00 документом УстановкаЦенНоменклатуры. После этого он открывает отчет «Прайс-лист» и формирует его на сегодняшнюю дату. Но по умолчанию в поле «Дата» отчета может подставиться начало сегодняшнего дня — например, 21.09.2018 00:00:00. Программа анализирует базу данных на этот момент времени и «видит», что цен еще не было, так как документ будет проведен только через 12 часов. В результате прайс-лист получается пустым.
Решение задачи: при формировании отчета всегда обращайте внимание на дату. Если вы только что ввели цены, установите дату отчета на конец сегодняшнего дня (23:59:59) или на начало завтрашнего дня. Это гарантирует, что программа учтет самые свежие документы установки цен.
В конфигурации «1С:Розница» разработчики заложили двухэтапный процесс изменения цен для защиты от ошибок персонала. Зачастую простого проведения документа Установка цен номенклатуры недостаточно. Давайте выясним, активна ли в вашей базе функция контроля применения цен:
Если этот флажок установлен, то цепочка ваших действий должна быть следующей: сначала создается документ Установка цен номенклатуры (он рассчитывает и утверждает цены в офисе), а затем на его основании обязательно создается и проводится документ Применение цен номенклатуры (который фактически вводит эти цены в действие в конкретном магазине). Пока второй документ не проведен, прайс-лист для данного магазина будет формироваться без цен.
Часто в настройках прайс-листа по умолчанию включен флажок «Только товары в наличии» (или установлен отбор по остаткам больше нуля). Давайте проанализируем, к чему это приводит. Если вы только что завели новые карточки товаров в справочнике Номенклатура, назначили на них розничные цены, но фактического поступления товаров на склад еще не оформляли (остаток равен нулю), то при активном фильтре по остаткам эти товары вообще не попадут в отчет. Для проверки отключите этот фильтр в расширенных настройках прайс-листа и сформируйте его заново.
Программа «1С:Розница» должна четко понимать, по какому именно виду цен (розничная, оптовая, акционная) вы хотите сформировать прайс-лист. В системе эта связь настраивается жестко:
Если вы формируете прайс-лист с отбором по «Магазину №1», программа автоматически пытается прочитать цены того вида, который закреплен за этим магазином. Если вы по ошибке установили цены для другого вида цен (например, создали документ установки цен по типу «Оптовая»), то при формировании прайс-листа по розничному магазину программа выдаст пустые строки. Убедитесь, что вид цен в документе установки полностью совпадает с видом цен, заданным в правиле ценообразования вашего магазина.
В карточке номенклатуры (в свойствах конкретного товара) присутствует специальный реквизит-переключатель, который позволяет исключать определенные позиции из прайс-листов (например, услуги, тару или архивные товары). Если при импорте данных из внешних файлов (например, из Excel) у товаров массово проставился этот признак, они никогда не появятся в отчете. Откройте карточку любого проблемного товара и проверьте настройки видимости в прайс-листе на вкладке основных реквизитов.
Резюмируя все вышесказанное, при возникновении проблем с прайс-листом в «1С:Розница» мы рекомендуем действовать по следующему чек-листу: сбросьте настройки отчета к стандартным, проверьте корректность операторов сравнения в отборах, убедитесь в проведении документов применения цен и проверьте правильность выбора даты и времени отчета. Эти простые шаги помогут вам быстро выявить и устранить неполадку.