Как перейти на учет по характеристикам в 1С:Розница, если уже были продажи?

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

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

Включив соответствующую настройку, вы обнаруживаете, что работа встала: номенклатура перестает отбиваться по кассе в рабочем месте кассира (РМК), так как программа требует ввести отсутствующие характеристики. Перепроведение поступлений с добавлением характеристик не решает проблему, потому что розничная цена была привязана к номенклатуре без характеристики (то есть с пустой характеристикой), а на новую характеристику цена не назначена. Кроме того, возникают проблемы с остатками, ведь ранее товары пробивались без их учета. Выясним причину такого поведения системы и разберем по шагам доступные варианты решения проблемы.

Почему система так работает? Ограничения архитектуры 1С

Прежде чем приступать к исправлению ситуации, давайте посмотрим на то, как устроено хранение данных в 1С. В системе аналитика по номенклатуре и аналитика по характеристике — это разные измерения в регистрах накопления (например, товары на складах) и регистрах сведений.

Если товар ранее продавался или приходовался без характеристики (подразумевается «пустая» характеристика), система физически не может автоматически связать старые остатки с новыми введенными значениями. Точно так же регистр сведений, хранящий розничные цены (обычно это ЦеныНоменклатуры), требует точного совпадения всех ключевых измерений. Цена, которая была назначена на карточку номенклатуры с пустой характеристикой, не будет применяться к той же самой карточке с заполненной характеристикой при пробитии чека на кассе. Автоматического «наследования» цен в момент продажи не предусмотрено архитектурой.

Решение 1: Метод пересортицы с созданием новой номенклатуры (Рекомендуемый)

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

  1. Создайте новый элемент в справочнике ВидыНоменклатуры и обязательно включите в нем использование характеристик.
  2. Заведите новые карточки товаров в справочнике Номенклатура, привязав их к новому виду номенклатуры.
  3. Перенесите остатки со старых позиций (которые были без характеристик) на новые (уже с характеристиками). Это можно сделать штатным документом Пересортица товаров. Альтернативный вариант — использовать пару документов: Списание товаров (для старых) и Оприходование товаров (для новых).
  4. Для новых позиций с характеристиками в обязательном порядке создайте новый документ Установка цен номенклатуры. В современных версиях программы (например, редакция 3.0) можно использовать помощники формирования цен или загрузку из внешних таблиц для массового переноса цен.

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

Решение 2: Перенос остатков в новую базу (Свертка)

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

  1. Проведите полную инвентаризацию остатков в текущей базе.
  2. Разверните чистую базу 1С:Розница и сразу включите в ней учет по характеристикам.
  3. Создайте документ ввода начальных остатков в новой базе, сразу указывая правильные номенклатурные позиции, их характеристики (серии, сроки годности) и цены.

Этот путь позволяет избежать накопления логических ошибок и «мусора» в регистрах.

Решение 3: Написание обработки для перезаполнения данных (Для программистов)

Если база большая и перенос невозможен, можно написать внешнюю обработку, которая модифицирует уже существующие документы. Внимание: изменение документов задним числом (особенно отчетов о розничных продажах) крайне не рекомендуется. Это может привести к рассинхронизации данных с фискальными накопителями, искажению себестоимости и проблемам при обмене с 1С:Бухгалтерия.

Если вы всё же решили пойти по этому пути, разберем алгоритм создания такой обработки:

  1. Создайте резервную копию базы данных! Включите в ней учет характеристик.
  2. Создайте обработку, которая с помощью запроса найдет все документы прихода, установки цен и продаж, где присутствует реквизит номенклатуры.
  3. Отсортируйте полученный список документов по моменту времени от самого раннего до самого позднего, чтобы сформировать единую последовательность для перепроведения.
  4. Проходите циклом по каждой табличной части каждого документа. Проверяйте, включен ли у номенклатуры (как у владельца) учет характеристик.
  5. Если для товара нужно вести характеристики, но в документе она не заполнена — программно создайте новую характеристику (например, с обобщенным наименованием "Основной товар" или на основе данных из других регистров), подставьте ее в табличную часть и выполните перепроведение документа.

Дополнительные возможности новых редакций

Если вы используете актуальные редакции конфигурации (например, 1С:Розница 3.0), обратите внимание на функционал характеристик категории. В таких системах существует возможность задавать характеристики не для каждой отдельной карточки товара, а сразу для целой КатегорииНоменклатуры. Это значительно ускоряет процесс первичного ввода данных и настройки, если у большой группы препаратов совпадают шаблоны формирования характеристик.

← На главную