При переходе с устаревших конфигураций, таких как Торговля и Склад 9.2 (7.7), на современные системы на базе 1С:Предприятие 8.3, например Управление торговлей 11.4, пользователи часто сталкиваются с проблемой: в документах «Оприходование излишков» цены указаны, документ «Установка цен номенклатуры» создан, но при продаже через Рабочее место кассира (РМК) или в чеках ККМ поле «Цена» остается пустым. Проанализируем эту ситуацию и разберем по шагам все возможные причины, основываясь на архитектуре современных систем 1С. Подобрать варианты переноса остатков и справочников из устаревшей базы можно через раздел решений для перехода с 1С 7.7.
Первое, что нам необходимо понять: в 1С:УТ 11.4 цена, указанная в документе Оприходование излишков товаров, является учетной ценой (себестоимостью), по которой товар принимается на баланс предприятия. Она не имеет прямого отношения к розничной цене продажи.
В отличие от старых версий 7.7, где цена могла «подтягиваться» напрямую из партий или последних закупок, в УТ 11 используется механизм регистров сведений. Цена для продажи должна быть зафиксирована в регистре ЦеныНоменклатуры специальным документом. Даже если вы создали Установку цен номенклатуры, этого может быть недостаточно, если не соблюдены условия привязки цены к конкретной торговой точке. Для автоматического формирования документов установки цен при миграции из других баз можно использовать обработку для сквозного переноса цен номенклатуры в УТ 11.
Выясним причину, связанную с настройками склада. Это самая частая ошибка. В УТ 11.4 для каждого склада (особенно если он имеет тип «Розничный магазин») должен быть четко определен алгоритм выбора цен. Если система не знает, какой именно «Вид цены» (Прайс-лист) использовать для конкретной кассы, она не выведет цену в чек.
Рассмотрим, как это проверить:
Установка цен номенклатуры.В современных конфигурациях внедрена система согласования документов. Проанализируем состояние вашего документа установки цен. Если в настройках раздела CRM и маркетинг включено использование статусов, то документ в статусе «Не согласован» или «В подготовке» не делает движений по регистру действующих цен.
Убедимся, что документ Установка цен номенклатуры находится в статусе Согласован. Только в этом случае записи попадают в актуальный срез цен, который видит программа при подборе.
Цены в 1С имеют периодический характер и действуют с точностью до секунды. Посмотрим на пример: если чек ККМ создается 15.10.2023 в 09:00, а документ Установка цен номенклатуры проведен той же датой, но временем 12:00, то на момент открытия чека цена в системе еще «не наступила». При массовой загрузке данных из внешних таблиц документы часто записываются на «начало дня» (00:00:00). Проверьте, чтобы время установки цен было строго меньше времени начала торговой смены.
Разберем ситуацию с настройками самого объекта Вид цены. В карточке вида цены должны быть установлены следующие флаги:
Если при подборе в прайс-лист номенклатура не попадает по фильтрам, это сигнализирует о том, что при загрузке из 7.7 не были заполнены критически важные реквизиты:
Ценовые группы: Если в правилах вида цены настроены уточнения по ценовым группам, а у перенесенного товара это поле пустое, расчет цены не произойдет.
Товарные категории: В УТ 11 механизмы подбора и автоматического заполнения часто опираются на категории. Проверьте, назначены ли они вашим товарам.
Иногда после загрузки тысяч позиций через «Загрузку из табличного документа» поисковые индексы базы данных не успевают обновиться. В результате в РМК товар может находиться, но его свойства (включая цены) отображаются некорректно. Рекомендуется выполнить обновление индекса:
Администрирование — Поддержка и обслуживание — Полнотекстовый поиск — Обновить индекс.
Для программиста будет полезно проверить, зафиксировалась ли цена в базе данных физически. Рассмотрим пример кода, который можно использовать во внешней обработке для проверки актуальной цены по регистру:
// Пример получения цены номенклатуры на текущую дату
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", СсылкаНаТовар);
ПараметрыОтбора.Вставить("ВидЦены", СсылкаНаВидЦены);
АктуальныеЦены = РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(ТекущаяДата(), ПараметрыОтбора);
Если АктуальныеЦены.Количество() > 0 Тогда
Сообщить("Цена найдена: " + АктуальныеЦены[0].Цена);
Иначе
Сообщить("Цена в регистре отсутствует! Проверьте проведение документа Установка цен.");
КонецЕсли;
Если после оприходования и установки цен в чеке ККМ пусто, ваша последовательность действий должна быть следующей: проверить привязку Вида цены в карточке Склада, убедиться в статусе Согласован для документа установки цен и проверить время документа (сдвинуть на 00:00:01). В большинстве случаев проблема кроется именно в отсутствии жесткой связи между розничной точкой и конкретным прайс-листом в настройках склада. В качестве временного решения для ручной корректировки стоимости на кассе можно применить расширение для редактирования цен в чеках ККМ.