Почему не регистрируются цены при оприходовании излишков товаров в 1С и как это исправить?

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

При проведении инвентаризации на складах торговых предприятий часто возникает необходимость зафиксировать излишки товаров. В программах линейки 1С (таких как «1С:Управление торговлей», «1С:Комплексная автоматизация» или «1С:ERP») для этой цели используется документ Оприходование излишков товаров. Однако многие пользователи сталкиваются с неожиданной проблемой: несмотря на то, что в самом документе оприходования указаны цены и даже выбран конкретный вид цены, при последующем формировании прайс-листа или выписке розничных документов эти цены не отображаются и не рассчитываются автоматически.

В рамках этой статьи мы подробно разберем, почему так происходит, изучим внутреннюю логику работы системы 1С и рассмотрим по шагам несколько эффективных способов решения этой проблемы — от простых ручных действий до автоматизации процесса с помощью СКД и программных доработок.

Выясняем причину: почему реквизит «Вид цены» в оприходовании не записывает цены в регистр

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

Документ Оприходование излишков товаров — это чисто складской и финансовый документ. Его главная задача — зафиксировать физическое появление товара на складе и отразить его стоимость в контуре себестоимости. При проведении он делает записи в такие регистры, как Товары на складах и Стоимость товаров (или аналогичные регистры себестоимости в зависимости от настроек вашей базы).

Реквизит Вид цены в данном документе предназначен исключительно для чтения информации, но не для её записи. Рассмотрим подробнее, как это функционирует:

  1. Когда вы создаете документ оприходования и выбираете вид цены (например, «Закупочная»), программа обращается к регистру сведений Цены номенклатуры.
  2. Если по выбранному виду цен в системе уже зарегистрированы какие-то значения, программа автоматически подставляет их в табличную часть документа, чтобы избавить вас от ручного ввода.
  3. Если цены в системе ранее не регистрировались, колонка останется пустой, и вам придется ввести цену вручную. Но даже если вы введете её руками, при проведении оприходования эта цена не запишется обратно в регистр Цены номенклатуры, поскольку у документа оприходования просто нет таких прав и механизмов проведения по данному регистру.

Регистрацией цен в системе 1С занимается строго специализированный документ — Установка цен номенклатуры. Именно он делает записи в регистр сведений, данные из которого затем считываются обработкой «Прайс-лист» и используются при продажах.

Решение №1: Ручной ввод цен через обработку «Прайс-лист»

Если оприходование излишков у вас происходит редко, и объем номенклатуры невелик, самым простым и надежным решением будет ручная фиксация цен. Рассмотрим этот процесс по шагам:

  1. Перейдите в раздел CRM и маркетинг, далее выберите пункт Цены (прайс-лист).
  2. В открывшемся окне установите дату, на которую вы хотите зафиксировать цены.
  3. Нажмите кнопку Настройки и перейдите на закладку Колонки прайс-листа.
  4. Установите флажок напротив интересующего вас вида цены (например, «Закупочная цена» или «Цена поступления») и нажмите ОК.
  5. Чтобы не просматривать весь ассортимент, настройте отбор по номенклатуре, выбрав только те позиции, которые были оприходованы.
  6. Нажмите кнопку Сформировать. В сформированной таблице колонка с ценой для новых товаров будет пустой.
  7. Введите вручную те цены, по которым вы приходовали товары в документе оприходования.
  8. Нажмите кнопку Применить измененные цены. Система автоматически создаст и проведет документ Установка цен номенклатуры в фоновом режиме.

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

Решение №2: Настройка автоматического расчета цен через СКД (без программирования)

Если вы хотите, чтобы система автоматически «подтягивала» цены из документов оприходования излишков при обновлении прайс-листа, можно настроить специальный способ расчета цен с использованием Схемы компоновки данных (СКД). Этот метод не требует изменения конфигурации и отлично подходит для типовых баз.

Разберем, как настроить такую схему:

  1. Перейдите в справочник Виды цен (раздел «CRM и маркетинг» -> «Настройки и справочники»).
  2. Создайте новый вид цены или откройте существующий (например, «Цена оприходования»).
  3. В поле Способ задания цены выберите значение Заполнять по данным ИБ при поступлении или Произвольный запрос к данным ИБ.
  4. В появившемся поле выбора схемы выберите стандартную схему или нажмите «Редактировать схему компоновки».
  5. Нам необходимо составить запрос, который будет выбирать цены из табличной части документа оприходования излишков. Посмотрим на пример такого запроса:

ВЫБРАТЬ
    ОприходованиеТовары.Номенклатура КАК Номенклатура,
    ОприходованиеТовары.Характеристика КАК Характеристика,
    ОприходованиеТовары.Цена КАК Цена,
    ОприходованиеТовары.Ссылка.Валюта КАК Валюта
ИЗ
    Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеТовары
ГДЕ
    ОприходованиеТовары.Ссылка.Проведен = ИСТИНА
    И ОприходованиеТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

После сохранения этой настройки при формировании прайс-листа вам достаточно будет выбрать этот вид цены и нажать кнопку Изменить цены -> Рассчитать по данным ИБ. Система сама обратится к проведенным документам оприходования, найдет цены и заполнит их в прайс-листе, после чего останется только нажать кнопку «Применить».

Решение №3: Разработка внешней обработки заполнения или расширения

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

Поскольку в типовом функционале отсутствует возможность ввести документ Установка цен номенклатуры непосредственно на основании документа Оприходование излишков товаров, мы можем решить эту задачу следующими путями:

  1. Создание внешней обработки заполнения табличных частей: Пользователь создает пустой документ установки цен, нажимает кнопку «Заполнить» -> «Из оприходования излишков», выбирает документ-источник, и обработка переносит всю номенклатуру и цены.
  2. Расширение конфигурации «Ввести на основании»: Добавление стандартной команды ввода на основании для документа оприходования. Проанализируем пример программного кода, который можно поместить в модуль управления создаваемого расширения для автоматического заполнения новой установки цен:

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

Такой подход полностью исключает человеческий фактор и предотвращает ошибки ручного ввода при переносе больших спецификаций.

Методологические нюансы: Бухгалтерский и налоговый учет излишков

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

Таким образом, своевременная и корректная регистрация цен при оприходовании излишков товаров — это не просто удобство для менеджеров, но и залог отсутствия расхождений в учете и претензий со стороны контролирующих органов. Выберите наиболее подходящий для вашей компании метод (ручной ввод, настройка СКД или автоматическая обработка) и поддерживайте порядок в вашей базе данных 1С!

← На главную