При работе в программе 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с ситуацией, когда в документе Счет на оплату покупателю при попытке составить калькуляцию расходов цены на комплектующие или материалы не подтягиваются автоматически. Несмотря на наличие остатков и созданные документы установки цен, колонки с ценами остаются пустыми. В этой статье мы подробно разберем, как устроена логика калькуляции, какие настройки необходимо проверить и как заставить программу автоматически рассчитывать себестоимость продукции в счете.
Для начала проанализируем, что именно представляет собой форма «Калькуляция расходов». Это инструмент, предназначенный для предварительного расчета себестоимости готовой продукции на основе ее состава (спецификации). Важно понимать фундаментальное различие между ценами продажи и ценами расходов:
Если в калькуляцию не подтягиваются данные, значит, программа не может найти связь между компонентами спецификации и тем типом цен, который она считает «базовым» для расчета затрат. Рассмотрим основные шаги для исправления ситуации.
Первым делом нам необходимо выяснить, какой именно тип цен программа считает плановым. В 1С:Бухгалтерии 3.0 это настраивается централизованно. Перейдем по пути: Главное — Настройки — Учетная политика. В открывшемся окне найдем раздел, отвечающий за выпуск продукции (затраты), и обратим внимание на поле Тип плановых цен.
Если это поле не заполнено, система будет иметь неопределенность при попытке получить цену компонента. Проанализируем ситуацию: для калькуляции расходов системе требуется знать «закупочную» стоимость материалов. Поэтому в этом поле рекомендуется выбрать тип цен, который соответствует вашей фактической или плановой себестоимости (например, «Закупочная» или «Плановая»).
Часто пользователи полагают, что достаточно указать цену в карточке номенклатуры или иметь приходные накладные. Однако для механизмов калькуляции критически важно наличие записей в регистре сведений Цены номенклатуры. Эти записи создаются только документом Установка цен номенклатуры.
Выясним причину возможной ошибки в этом документе, изучив отчёты по работе с ценами и историю их изменений:
Счет на оплату создан 16.12.2024 в 14:00, то документ Установка цен номенклатуры должен иметь дату и время СТРОГО ранее этого момента (например, 16.12.2024 00:00:00 или 15.12.2024). Если время установки цен совпадает с временем счета или идет позже, цена в документ не попадет.Чтобы окончательно убедиться, как программа ищет цены, проанализируем участок кода, который отвечает за заполнение калькуляции. В модуле формы калькуляции расходов можно встретить функцию СебестоимостьНоменклатуры. Посмотрим на пример алгоритма:
&НаСервере
Функция СебестоимостьНоменклатуры(Продукция)
ЦенаЗакупки = ЗакупочнаяЦена(Продукция);
// Если ЦенаЗакупки = 0, тогда возможны 2 сценария
// 1 сценарий: Это сырье, и цена закупки не указана.
// 2 сценарий: Продукция производится из компонентов, тогда цена будет состоять из цен компонент.
Если ЦенаЗакупки = 0 Тогда
КомпонентыСоставаПродукции = РегистрыСведений.КалькуляцияРасходовВСчетеНаОплатуПокупателю.ПолучитьКомпонентыСоставаПродукции(Продукция);
Для Каждого СтрокаКомпонент Из КомпонентыСоставаПродукции Цикл
ЦенаЗакупкиКомпоненты = ЗакупочнаяЦена(СтрокаКомпонент.Номенклатура);
ЦенаЗакупки = ЦенаЗакупки + ЦенаЗакупкиКомпоненты * СтрокаКомпонент.Количество;
КонецЦикла;
КонецЕсли;
Возврат ЦенаЗакупки;
КонецФункции
Из данного кода становится ясно, что ключевым методом является ЗакупочнаяЦена(). Этот метод ищет в базе данных тип цен, который в системе помечен как закупочный. Если вы создали тип цен с названием «Опт», для системы он не является «Закупочной ценой» по умолчанию.
Выполним следующие действия, чтобы цены начали подтягиваться автоматически:
Типы цен номенклатуры и создайте новый элемент с наименованием «Закупочная» (или «Плановая»). Убедитесь, что настройки налогов (включать НДС или нет) соответствуют вашей методике учета затрат.Установка цен номенклатуры. В табличную часть добавьте все материалы и комплектующие, которые входят в ваши спецификации. Выберите созданный тип цен «Закупочная» и укажите стоимость. Важно: установите дату документа на день раньше текущих операций.Учетную политику и выберите созданный тип цен в качестве планового (если это предусмотрено вашей версией конфигурации).Спецификации. Убедитесь, что для продукции установлена основная спецификация и в ней корректно указано количество материалов. На основе спецификаций также можно выполнять планирование производства по оплаченным счетам.Счет на оплату, нажмите кнопку «Печать» — «Калькуляция расходов» (или зайдите в калькуляцию через форму заполнения). Теперь, когда система видит установленные закупочные цены на материалы, итоговая стоимость продукции будет рассчитана автоматически.Рассмотрим ситуацию, когда пользователь заметил, что после ввода документа Счет от поставщика цены начали подтягиваться. В 1С:Бухгалтерии реализован механизм «Заполнение цен по умолчанию». Если в системе включена настройка «Из предыдущего документа» (Администрирование — Параметры учета — Заполнение цен продажи), программа может пытаться подставить цену из последнего документа поступления или счета поставщика. Однако это ненадежный метод для производства. Для стабильной работы всегда используйте именно Установку цен номенклатуры, так как калькуляция — это плановый инструмент, и он должен опираться на зафиксированные в регистре данные, а не на случайные закупки.
Резюмируем: Если калькуляция пустая — проверьте, есть ли у вас тип цен, отвечающий за себестоимость, создан ли по нему документ установки цен и не превышает ли время счета время установки этих цен в системе. Также полезно выполнить сравнение остатков и цен товаров между базами, если вы работаете в нескольких различных конфигурациях 1С.