При разработке дополнительных печатных форм для документа Возврат материалов из эксплуатации в конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0) программисты часто сталкиваются с задачей вывода «исторической» цены. Это та цена, по которой товар или материал был изначально закуплен у поставщика, включая сведения о налогах (НДС). Сложность заключается в том, что на момент возврата материал может уже не иметь балансовой стоимости или числиться на забалансовых счетах по совокупной оценке.
В этой статье мы подробно разберем, где искать данные о стоимости, как связать документ возврата с документом покупки и какие программные методы лучше использовать для получения корректных цифр.
Прежде чем приступать к написанию запроса, проанализируем, как система хранит данные. В современных версиях БП 3.0, учитывающих требования ФСБУ 5/2019, малоценное оборудование и инвентарь при передаче в эксплуатацию списываются на расходы. При этом количественный учет продолжается на забалансовых счетах группы МЦ (например, МЦ.04 «Инвентарь и хозяйственные принадлежности в эксплуатации»).
Рассмотрим ключевые моменты, влияющие на поиск цены:
Номенклатура, Партии материалов в эксплуатации (документ передачи) и Физ. лицо.МЦ.04 хранится первоначальная стоимость материала. Однако она фиксируется без НДС (если организация является плательщиком НДС и налог был принят к вычету).Выясним причину, по которой нам нужен именно документ передачи. В документе Возврат материалов из эксплуатации в табличной части Номенклатура присутствует реквизит ДокументПередачи (в интерфейсе может называться «Партия»). Именно этот документ связывает текущую операцию с моментом, когда материал покинул склад.
Проанализируем программный доступ к этим данным. Для построения печатной формы нам необходимо выгрузить табличную часть документа и для каждой строки определить исходную стоимость. Если реквизит Партия заполнен, мы можем двигаться дальше по цепочке документов.
Разберем по шагам, как найти первичную цену с НДС. Сама «Партия материалов в эксплуатации» (документ Передача материалов в эксплуатации) не содержит данных о цене поставщика напрямую. Нам нужно найти Поступление (акт, накладная, УПД).
Для этого лучше всего использовать запрос к регистру накопления МатериалыВЭксплуатации или проанализировать движения документа передачи. Рассмотрим пример логики поиска:
Передача материалов в эксплуатации.Поступление).Посмотрим на пример запроса, который позволяет получить данные об остатках и первоначальной стоимости с забалансового счета МЦ.04:
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
ХозрасчетныйОстатки.Субконто2 КАК Партия,
ХозрасчетныйОстатки.СуммаОстаток КАК ИсходнаяСтоимость,
ХозрасчетныйОстатки.КоличествоОстаток КАК Количество
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаСреза, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.МЦ04), ,
Субконто1 В (&МассивНоменклатуры) И Субконто3 = (&ФизическоеЛицо)) КАК ХозрасчетныйОстатки
Важно помнить: СуммаОстаток здесь — это стоимость без НДС, которая была зафиксирована при списании со счета 10.
Ситуация усложняется, если в печатной форме требуется вывести именно ту цену, которую «заплатили», то есть с учетом НДС. Поскольку в регистрах бухгалтерии сумма НДС отделена, нам придется программно вычислить её или достать из первичного документа.
Рассмотрим подробнее алгоритм вычисления:
ДокументПоступления из аналитики партии.НДСВключенВСтоимость в этом документе.ЦенаСНДС = Цена + (Цена * СтавкаНДС / 100).Номенклатура на текущую дату.Для более точного определения данных в БП 3.0 рекомендуется обращаться к регистру накопления МатериалыВЭксплуатации. Этот регистр хранит информацию в разрезе организаций, физических лиц и номенклатуры. Выясним причину его использования: он позволяет избежать сложных соединений с планом счетов и работает быстрее при больших объемах данных.
Пример обращения к регистру для получения первоначальных данных:
ВЫБРАТЬ
МатериалыВЭксплуатации.Номенклатура,
МатериалыВЭксплуатации.ФизЛицо,
МатериалыВЭксплуатации.Партия,
МатериалыВЭксплуатации.Сумма КАК ПервоначальнаяСумма,
МатериалыВЭксплуатации.Количество КАК ПервоначальноеКоличество
ИЗ
РегистрНакопления.МатериалыВЭксплуатации КАК МатериалыВЭксплуатации
ГДЕ
МатериалыВЭксплуатации.Регистратор = &ДокументПередачи
И МатериалыВЭксплуатации.Номенклатура = &ВыбраннаяНоменклатура
Проанализируем ситуацию, упомянутую в обсуждении: что делать, если объект амортизируется? Если возвращается спецоснастка, стоимость которой погашалась линейно, то в системе на балансовых счетах (например, 10.11) может оставаться остаточная стоимость.
Однако для печатных форм возврата (аналогов М-11) чаще всего требуется именно первоначальная стоимость передачи. Если же заказчик требует указать текущую стоимость с учетом износа, необходимо вычитать накопленную амортизацию из первоначальной суммы. Данные об износе спецодежды и спецоснастки в БП 3.0 можно найти в регистре накопления ВыработкаМатериалов или через остатки по субсчетам счета 10, предназначенным для износа.
Чтобы ваша печатная форма работала корректно и быстро, придерживайтесь следующих правил:
МенеджерВременныхТаблиц в запросах. Сначала соберите все ДокументыПередачи из ТЧ документа возврата, а затем одним запросом получите суммы по ним из регистра или проводок.Партия в строке возврата.Таким образом, задача нахождения цены сводится к последовательному «разматыванию» цепочки документов: Возврат -> Передача -> Поступление. Используя комбинацию данных из забалансового учета и первичных документов, вы сможете вывести в печатную форму как чистую стоимость, так и цену с учетом НДС на момент покупки.