Как массово изменить цены продажи и стоит ли добавлять цену в название товара в 1С:Бухгалтерия 2.0

Бухгалтер 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

В процессе ведения розничной и оптовой торговли часто возникает необходимость оперативно изменить цены на весь ассортимент товаров или на определенные группы номенклатуры. В конфигурации «Бухгалтерия предприятия 2.0» (на платформе 1С 8.2) этот процесс автоматизирован, но требует понимания работы встроенных обработок. Разберем по шагам, как правильно выполнить массовую переоценку, и проанализируем последствия популярной, но опасной «хотелки» пользователей — добавления цены в наименование товара.

Массовое изменение цен через документ «Установка цен номенклатуры»

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

  1. Перейдем в меню «Предприятие» — «Товары (названия могут отличаться в зависимости от интерфейса)» — «Установка цен номенклатуры». Также документ можно найти через полный интерфейс в меню «Операции» — «Документы».
  2. Создадим новый документ. В поле «Тип цен» выберем ту категорию цен, которую мы хотим изменить (например, «Розничная»).
  3. Для заполнения табличной части воспользуемся кнопкой «Заполнить». Здесь у нас есть несколько вариантов, которые критически важны для корректной работы:
    • «Заполнить по остаткам на складах» — это позволит нам не загружать в документ весь справочник, в котором может быть тысячи неактуальных позиций, а работать только с тем товаром, который физически есть в наличии.
    • «Заполнить по ценам номенклатуры» — выберет все товары, для которых ранее была установлена цена выбранного типа.
  4. После того как список товаров заполнен, нажмем кнопку «Изменить». Перед нами откроется вспомогательное окно обработки «Изменение цен».

Проанализируем возможности окна «Изменение цен». Это мощный инструмент, который позволяет выполнять групповые расчеты:

После завершения всех манипуляций в обработке нажимаем кнопку «ОК», данные переносятся в документ Установка цен номенклатуры. Не забудьте провести документ, чтобы новые цены вступили в силу.

Проблема добавления цены в наименование номенклатуры

Иногда пользователи просят добавить текущую цену прямо в название товара (например, было «Чайник Tefal», стало «Чайник Tefal 2500р»). Рассмотрим ситуацию, почему это решение является ошибочным с точки зрения архитектуры 1С и учета.

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

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

Риск 3: Трудоемкость. Цены меняются часто. Если вы будете переименовывать справочник при каждой переоценке, вы получите огромный объем лишней работы и «замусоренную» базу данных.

Как реализовать «хотелку» правильно

Если пользователям жизненно необходимо видеть цену рядом с названием, мы рекомендуем использовать штатные возможности интерфейса вместо изменения данных:

  1. Настройка формы подбора: В документе (например, «Реализация товаров и услуг») при нажатии кнопки «Подбор» открывается окно со списком товаров. В этом окне можно настроить вывод колонки «Цена». Это штатный функционал: достаточно зайти в «Настройку» окна подбора и установить флажок «Цена». Таким образом, менеджер будет видеть актуальную цену, не портя справочник.
  2. Редактирование печатных форм: Если цена в названии нужна только для определенных внутренних прайсов, правильнее заказать программисту внешнюю печатную форму или отчет. В этом случае код будет динамически «склеивать» название и цену только в момент формирования документа, не меняя данные в самом справочнике.

Техническая реализация массового изменения (для программистов)

Если решение о переименовании всё же принято (например, для разовой выгрузки на сайт), не стоит писать сложный код в конфигураторе. Можно воспользоваться типовой обработкой «Групповая обработка справочников и документов». Однако, она умеет только заменять значение на статичное.

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


// Пример логики для универсальной обработки
Для Каждого Строка Из ВыбранныеОбъекты Цикл
    ТоварОбъект = Строка.Ссылка.ПолучитьОбъект();
    АктуальнаяЦена = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнее(ТекущаяДата(), Новый Структура("Номенклатура, ТипЦен", ТоварОбъект.Ссылка, НужныйТипЦен)).Цена;
    ТоварОбъект.Наименование = СокрЛП(ТоварОбъект.Наименование) + " " + АктуальнаяЦена + " руб.";
    ТоварОбъект.Записать();
КонецЦикла;

Важно: Перед любыми массовыми действиями со справочниками обязательно создавайте архивную копию базы данных!

Подведем итог: массовое изменение цен в «Бухгалтерии 2.0» эффективно реализуется через документ Установка цен номенклатуры. А вот от идеи переименования элементов справочника ради вывода цены лучше отказаться в пользу настройки форм подбора или специализированных отчетов.

← На главную