Разберем типичную задачу разработчика: как программно узнать себестоимость номенклатуры в конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0). Программисты, ранее работавшие с конфигурациями 1С:Управление торговлей (УТ) или 1С:Управление торговым предприятием (УТП), часто ищут специализированные регистры накопления (например, РеализацияТМЗ или Продажи). Однако в 1С:Бухгалтерии стоимость товаров учитывается по другим принципам.
В конфигурации 1С:Бухгалтерия 3.0 основным источником данных о себестоимости товарно-материальных ценностей (ТМЦ) является регистр бухгалтерии Хозрасчетный. Учет товаров ведет на счете 41.01 (или других субсчетах счета 41, а также на счетах 10 для материалов и 43 для готовой продукции).
Рассмотрим важные нюансы, которые необходимо учитывать при написании запроса к остаткам:
Корректировка стоимости номенклатуры в рамках процедуры закрытия месяца.Партии).Склады вернет нулевую сумму, поэтому расчет стоимости единицы производят без детализации по складам.Для расчета средней себестоимости номенклатуры на определенный момент времени обратимся к виртуальной таблице остатков РегистрБухгалтерии.Хозрасчетный.Остатки. Формула расчета сводится к делению дебетового остатка по сумме на дебетовый остаток по количеству.
Проанализируем пример запроса, получающего себестоимость единицы товара:
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
ВЫБОР
КОГДА ХозрасчетныйОстатки.КоличествоОстатокДт = 0
ТОГДА 0
ИНАЧЕ ХозрасчетныйОстатки.СуммаОстатокДт / ХозрасчетныйОстатки.КоличествоОстатокДт
КОНЕЦ КАК Себестоимость
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
&ГраницаМоментВремениИЛИДата,
Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах),
ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура),
Субконто1 = &Номенклатура
) КАК ХозрасчетныйОстатки
Выясним ключевые особенности данного запроса:
ПланСчетов.Хозрасчетный.ТоварыНаСкладах (счет 41.01). При необходимости можно указать список счетов (например, счета учета материалов 10 или продукции 43).&Номенклатура.ВЫБОР защищает от ошибки деления на ноль, если дебетовый количественный остаток равен нулю.Посмотрим на другие решения, применяемые при разработке собственных механизмов:
ИнвентаризацияТоваровНаСкладе. Процедура ЗаполнитьПоОстаткам() демонстрирует типовой пример заполнения учетного количества и учетных цен номенклатуры.УчетНоменклатурыСервер. Это позволяет учитывать действующие настройки учетной политики организации.