При работе с типовой конфигурацией «1С:Бухгалтерия предприятия 3.0» разработчики и пользователи часто сталкиваются с ситуацией, когда цены в документах подставляются автоматически, хотя документы установки цен не создавались, а типы цен в программе не ведутся. Разберем, как устроен механизм упрощенного ценообразования, почему данные попадают в регистр сведений ЦеныНоменклатурыДокументов без явных действий пользователя и как правильно организовать первичное заполнение этого регистра в новой информационной базе.
В конфигурации «1С:Бухгалтерия предприятия 3.0» предусмотрено два параллельных механизма хранения цен:
ТипыЦенНоменклатуры, периодический регистр сведений ЦеныНоменклатуры и документ Установка цен номенклатуры. Этот механизм позволяет хранить историю изменения цен во времени в разрезе различных категорий (оптовые, розничные, плановая себестоимость).ЦеныНоменклатурыДокументов. Он предназначен для автоматического запоминания последней цены, по которой товар или готовая продукция проходили в документах, если расширенный учет по типам цен отключен или не используется в текущем документе.Ключевыми измерениями регистра ЦеныНоменклатурыДокументов являются Номенклатура и СпособЗаполненияЦены (элемент перечисления, определяющий назначение: по закупочным ценам, по продажным ценам, по плановым ценам и др.). В ресурсах регистра сохраняются значения Цена, Валюта и признак НДСВключенВСтоимость.
Выясним, как именно плановые, закупочные и продажные цены попадают в регистр. В типовых документах (например, «Поступление (акты, накладные)», «Реализация (акты, накладные)», «Отчет производства за смену») при проведении или сохранении формы вызывается процедура обновления цен.
Посмотрим на пример логики обработчика ПослеЗаписиНаСервере в модуле формы документа:
Процедура ПослеЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если Не ЗначениеЗаполнено(Объект.ТипЦен) Тогда
Ценообразование.ОбновитьЦеныНоменклатуры(
Объект.Ссылка,
Перечисления.СпособыЗаполненияЦен.ПоЗакупочнымЦенам,
Объект.ВалютаДокумента,
Объект.СуммаВключаетНДС
);
КонецЕсли;
КонецПроцедуры
Проанализируем этот участок кода. Если реквизит ТипЦен в документе не заполнен, система автоматически обращается к общему модулю Ценообразование и вызывает процедуру ОбновитьЦеныНоменклатуры. В результате в регистр ЦеныНоменклатурыДокументов перезаписывается последняя указанная цена по каждой строке табличной части.
Аналогичным образом для документа «Отчет производства за смену» фиксируются плановые цены выпуска с соответствующим способом заполнения. При создании последующих документов система извлекает эти значения с помощью специальной экспортной функции модуля ценообразования:
Функция ПодготовитьСоответствиеНоменклатураЦенаДокументов(СтруктураПараметров) Экспорт
Период = СтруктураПараметров.Период;
Валюта = СтруктураПараметров.Валюта;
Курс = СтруктураПараметров.Курс;
Кратность = СтруктураПараметров.Кратность;
Номенклатура = СтруктураПараметров.Номенклатура;
СпособЗаполненияЦены = СтруктураПараметров.СпособЗаполненияЦены;
// Формирование запроса к регистру ЦеныНоменклатурыДокументов
// и возврат соответствия цен для автоподстановки в табличную часть
...
КонецФункции
В карточке элемента справочника Номенклатура присутствует поле для ввода цены. Важно учитывать, что это поле не является собственным реквизитом справочника. При сохранении карточки номенклатуры значение программно транслируется и записывается напрямую в регистр ЦеныНоменклатурыДокументов.
Если учет начинается в новой базе и регистр ЦеныНоменклатурыДокументов пуст, существует несколько вариантов организации работы:
Включаем использование типов цен в функциональности программы. Создаем тип цен (например, «Плановая себестоимость»), указываем его в настройках учетной политики или параметров учета и вводим плановые цены документом Установка цен номенклатуры. В этом случае документы выпуска будут гарантированно брать плановые цены из периодического регистра ЦеныНоменклатуры на дату документа.
Открываем карточки производимой продукции или товаров и указываем цену вручную. При сохранении элемента данные запишутся в ЦеныНоменклатурыДокументов.
Если позиций много, пишем обработку для загрузки прайс-листа из файла Excel напрямую в регистр сведений ЦеныНоменклатурыДокументов через МенеджерЗаписи с указанием нужного значения перечисления СпособыЗаполненияЦен.
Вводим первые производственные и торговые документы с ручным указанием сумм и цен. После их проведения регистр заполнится автоматически и начнет подставлять цены в новые документы без дополнительного вмешательства.
Главным ограничением регистра ЦеныНоменклатурыДокументов является его непериодичность. Регистр не сохраняет историю изменений: каждое новое проведение документа затирает предыдущую цену. Если для корректного учета производственных операций требуется жесткий контроль плановой себестоимости с привязкой к датам, следует использовать полноценный механизм через справочник ТипыЦенНоменклатуры и документ Установка цен номенклатуры.