Почему проводки нового документа не отображаются в ОСВ и карточке счета в 1С:Бухгалтерии?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При разработке собственных документов в конфигурации «1С:Бухгалтерия предприятия 3.0» разработчики нередко сталкиваются с ситуацией: документ проводится без ошибок, движения в регистре формируются, однако при формировании стандартных отчетов («Оборотно-сальдовая ведомость», «ОСВ по счету» или «Карточка счета») проводки либо отсутствуют вовсе, либо отображаются некорректно при попытке получить детализацию по аналитике.

Проанализируем основные причины такого поведения и разберем по шагам, как правильно формировать движения по регистру бухгалтерии программно.

1. Незаполненное измерение «Организация»

Самая распространенная причина, по которой отчеты не видят движений, — отсутствие значения в измерении Организация в наборе записей регистра бухгалтерии. В типовых конфигурациях 1С стандартные бухгалтерские отчеты практически всегда строятся с жестким отбором по текущей организации.

Если при формировании проводки в коде не присвоено значение свойству Проводка.Организация, запись попадает в регистр с пустой организацией. В результате при формировании общего журнала или отчетов без фильтрации обороты могут быть видны, но при выборе конкретной организации в шапке ОСВ эти данные полностью отсекаются системой компоновки данных.

2. Некорректная адресация и заполнение субконто

При переносе сумм между договорами или контрагентами (например, по счету 76.09 «Прочие расчеты с разными дебиторами и кредиторами») важно правильно заполнять виды субконто:

  1. Обращение по типам, а не по индексам: обращение к субконто вида Проводка.СубконтоДт[0] считается грубой ошибкой, так как при изменении состава или порядка субконто в плане счетов логика нарушится. Следует обращаться явно через предопределенные элементы: Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты].
  2. Заполнение третьего субконто расчетов: если на счете включен учет по расчетным документам (субконто Документы расчетов с контрагентом), пропуск этого субконто приведет к тому, что при детализации отчетов сальдо не схлопнется или не попадет в расшифровку карточки счета.

3. Активность записей и флаг записи движений

Проверим статус активности сформированных строк. Для того чтобы записи регистра бухгалтерии участвовали в расчете итогов и отображались в стандартных отчетах, они должны быть активными:

  1. У каждой созданной проводки свойство Активность должно принимать значение Истина (по умолчанию при проведении документа оно устанавливается автоматически, но при ручном управлении наборами записей его необходимо контролировать).
  2. В обработчике проведения обязательно должен быть установлен флаг Движения.Хозрасчетный.Записывать = Истина;.

4. Специфика формирования отчета «Карточка счета»

Когда «Карточка счета» формируется путем расшифровки (двойного клика) по строке ОСВ, платформа 1С передает в отчет полный набор установленных отборов. Если в созданной проводке какое-либо из субконто имеет значение Неопределено вместо ссылки на пустой элемент или не совпадает измерение (например, Подразделение, если включен учет по подразделениям), карточка счета вернет пустой результат, несмотря на наличие оборотов в общей ведомости.

Пример правильного формирования проводок в коде

Разберем пример корректного заполнения движений по счету расчетов в процедуре ОбработкаПроведения модуля документа:


Процедура ОбработкаПроведения(Отказ, Режим)

	// Указываем необходимость записи набора проводок
	Движения.Хозрасчетный.Записывать = Истина;
	
	// Создаем новую проводку
	Проводка = Движения.Хозрасчетный.Добавить();
	
	Проводка.Период      = Дата;
	Проводка.Организация = Организация; // Обязательное заполнение балансового измерения
	
	// Настройка счетов дебета и кредита
	Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
	Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
	
	// Заполнение аналитики Дебета
	Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Контрагент;
	Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]    = ДоговорНовый;
	
	// Заполнение аналитики Кредита
	Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Контрагент;
	Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]    = ДоговорСтарый;
	
	// Заполнение суммовых ресурсов
	Проводка.Сумма   = СуммаДокумента;
	Проводка.СуммаНУДт = СуммаДокумента;
	Проводка.СуммаНУКт = СуммаДокумента;

КонецПроцедуры

Альтернативные варианты реализации

Если задача заключается исключительно во взаимозачете или переносе задолженности между договорами и контрагентами, создание собственного документа не всегда оправдано:

  1. Типовой документ «Корректировка долга»: выполняет аналогичные проводки и одновременно формирует записи по регистрам накопления взаиморасчетов.
  2. Документ «Операция, введенная вручную»: если требуется нестандартная логика, зачастую безопаснее программно создавать документ ОперацияБух, что исключает необходимость добавления новых объектов метаданных в конфигураторе.
  3. Синхронизация с регистрами накопления: если разрабатывается уникальный документ, следует помнить, что подсистема взаиморасчетов в «1С:Бухгалтерии 3.0» опирается не только на регистр бухгалтерии, но и на специализированные регистры накопления. При их отсутствии типовые механизмы закрытия месяца и автозачета авансов могут работать некорректно.
← На главную