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