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