Почему в 1С:Розница возникает ошибка «нет доступных видов цен для установки цен номенклатуры» и как ее исправить?

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

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

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

Причина 1. Некорректная настройка справочника «Виды цен»

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

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

  1. Закупочная цена (цена поставщика): для этого вида цены способ задания должен быть установлен строго в значение «Заполнять по данным ИБ при поступлении». В качестве схемы компоновки данных (СКД) необходимо указать предопределенную схему Цены поступления. Флаг «Использовать при продаже» для закупочной цены должен быть выключен.
  2. Розничная цена: для продажной цены способ задания обычно выбирается как «Рассчитывать по другим видам цен» с указанием формулы (например, [Закупочная] * 1.2). Для этого вида цены флаг «Использовать при продаже» обязательно должен быть включен.

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

Причина 2. Ошибки в правилах ценообразования и привязке к магазину

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

Проверим следующие настройки системы по шагам:

  1. Перейдем в справочник ПравилаЦенообразования и убедимся, что создано действующее правило. Статус правила должен быть установлен в значение «Действует», а в табличную часть включен используемый вид розничных цен.
  2. Откроем карточку магазина в справочнике Магазины, на склад которого оформляется поступление. Проверим, что в реквизите «Правило ценообразования» выбран именно созданный элемент. Если магазин не привязан к правилу, система не сможет определить доступность розничной цены для текущей торговой точки.

Причина 3. Ошибка в запросе функции обработки заполнения в коде релиза

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

Проанализируем поведение системы в отладчике. При вводе на основании поступления вызывается экспортная процедура или функция, формирующая структуру и дерево видов цен:


// В модуле менеджера или модуле объекта документа УстановкаЦенНоменклатуры
// вызывается логика заполнения видов цен
Функция ОбработкаЗаполненияУстановкиЦенНоменклатуры(ДокументОснование) Экспорт
    // Формируется запрос к справочнику ВидыЦен
    // с отбором по способу задания цен
КонецФункции

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

Способы устранения проблемы

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

  1. Обновление конфигурации (рекомендуемый вариант): разработчики 1С устранили данную ошибку в последующих сборках. Для базовых версий 1С:Розница обновление является единственным штатным способом решения, сохраняющим типовую поддержку программы.
  2. Использование расширения конфигурации (для версий ПРОФ и КОРП): чтобы не снимать конфигурацию с поддержки, создадим расширение, в котором переопределим метод заполнения с директивой &Вместо, исправив условие запроса к справочнику ВидыЦен по значению Перечисление.СпособыЗаданияЦен.ЗаполнятьПоДаннымИБПриПоступлении.
  3. Обходной вариант без изменения кода: если срочно требуется зарегистрировать цены, откроем журнал документов УстановкаЦенНоменклатуры напрямую из подсистемы маркетинга, создадим новый документ вручную, отметим нужные виды цен и воспользуемся сервисной командой заполнения табличной части товарами и ценами из документа поступления.
← На главную