Как работает и заполняется регистр Цены номенклатуры документов в 1С:Бухгалтерия 3.0?

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

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

Назначение и архитектура регистра сведений

В конфигурации «1С:Бухгалтерия предприятия 3.0» предусмотрено два параллельных механизма хранения цен:

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

Ключевыми измерениями регистра ЦеныНоменклатурыДокументов являются Номенклатура и СпособЗаполненияЦены (элемент перечисления, определяющий назначение: по закупочным ценам, по продажным ценам, по плановым ценам и др.). В ресурсах регистра сохраняются значения Цена, Валюта и признак НДСВключенВСтоимость.

Программный механизм автоматической записи цен

Выясним, как именно плановые, закупочные и продажные цены попадают в регистр. В типовых документах (например, «Поступление (акты, накладные)», «Реализация (акты, накладные)», «Отчет производства за смену») при проведении или сохранении формы вызывается процедура обновления цен.

Посмотрим на пример логики обработчика ПослеЗаписиНаСервере в модуле формы документа:


Процедура ПослеЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    Если Не ЗначениеЗаполнено(Объект.ТипЦен) Тогда
        Ценообразование.ОбновитьЦеныНоменклатуры(
            Объект.Ссылка, 
            Перечисления.СпособыЗаполненияЦен.ПоЗакупочнымЦенам,
            Объект.ВалютаДокумента,
            Объект.СуммаВключаетНДС
        );
    КонецЕсли;

КонецПроцедуры

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

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


Функция ПодготовитьСоответствиеНоменклатураЦенаДокументов(СтруктураПараметров) Экспорт
    
    Период               = СтруктураПараметров.Период;
    Валюта               = СтруктураПараметров.Валюта;
    Курс                 = СтруктураПараметров.Курс;
    Кратность            = СтруктураПараметров.Кратность;
    Номенклатура         = СтруктураПараметров.Номенклатура;
    СпособЗаполненияЦены = СтруктураПараметров.СпособЗаполненияЦены;
    
    // Формирование запроса к регистру ЦеныНоменклатурыДокументов
    // и возврат соответствия цен для автоподстановки в табличную часть
    ...
КонецФункции

Интерактивный ввод через карточку номенклатуры

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

Варианты заполнения регистра в новой информационной базе

Если учет начинается в новой базе и регистр ЦеныНоменклатурыДокументов пуст, существует несколько вариантов организации работы:

  1. Переход на ведение типов цен (рекомендуемый вариант для производства):

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

  2. Ручное заполнение через карточки номенклатуры:

    Открываем карточки производимой продукции или товаров и указываем цену вручную. При сохранении элемента данные запишутся в ЦеныНоменклатурыДокументов.

  3. Программное заполнение из внешних источников:

    Если позиций много, пишем обработку для загрузки прайс-листа из файла Excel напрямую в регистр сведений ЦеныНоменклатурыДокументов через МенеджерЗаписи с указанием нужного значения перечисления СпособыЗаполненияЦен.

  4. Естественное накопление данных:

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

Ограничения механизма упрощенного учета

Главным ограничением регистра ЦеныНоменклатурыДокументов является его непериодичность. Регистр не сохраняет историю изменений: каждое новое проведение документа затирает предыдущую цену. Если для корректного учета производственных операций требуется жесткий контроль плановой себестоимости с привязкой к датам, следует использовать полноценный механизм через справочник ТипыЦенНоменклатуры и документ Установка цен номенклатуры.

← На главную