База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как записать корректные движения в регистр «Хозрасчетный» для документа «ОплатаР
- В этой теме 1 ответ, 2 участника, последнее обновление 4 часа, 46 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
30 марта 2026 в 15:30 #36273
// регистр Хозрасчетный
Движения.Хозрасчетный.Записывать = Истина;
Движения.Хозрасчетный.Очистить();
Для Каждого ТекСтрокаОплата Из Оплата Цикл
Движение = Движения.Хозрасчетный.Добавить();
Движение.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
Движение.Период = Дата;
Движение.Сумма = ТекСтрокаОплата.Сумма;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ТекСтрокаОплата.Контрагент;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = ТекСтрокаОплата.ДоговорКонтрагента;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами] = ТекСтрокаОплата.Основание;
КонецЦикла;
Движения по этой операции записаны. -
30 марта 2026 в 15:30 #36274
Код в целом правильный, но есть несколько важных моментов, которые нужно учесть, чтобы движения в регистре «Хозрасчетный» для документа «ОплатаРассрочки» корректно отражались в учете:
1. **Очистка движений перед добавлением** — сделано верно:
Движения.Хозрасчетный.Очистить();2. **Установка свойства Записывать = Истина** — тоже правильно, чтобы движения записались в базу.
3. **Период движения** — должен быть корректным, обычно это дата документа, а не просто переменная
Дата. Убедитесь, чтоДата— это дата документа «ОплатаРассрочки». В финальном коде используетсяЭтотОбъект.Дата.4. **Счета Дт и Кт** — в вашем примере они были перепутаны. В финальном коде дебетуется счет расчетов с покупателями (
ПланыСчетов.Хозрасчетный.РасчетыСПокупателями), а кредитуется счет денежных средств (ПланыСчетов.Хозрасчетный.ДенежныеСредства). Это более типично для оплаты рассрочки.5. **Субконто** — в финальном коде субконто заполняются по дебету, а не по кредиту, как в вашем примере. Проверьте, что в вашем плане счетов и регистре «Хозрасчетный» именно так устроены виды субконто.
6. **Признак сторно** — в финальном коде явно установлен
Движение.Сторно = Ложь;, что рекомендуется для явного указания, что это не сторно.7. **Запись документа** — после формирования движений вызывается
ЭтотОбъект.Записать();, чтобы сохранить изменения.Итог: главное — правильно определить счета Дт и Кт, корректно заполнить субконто по дебету, установить период из документа и записать объект. Тогда движения в регистре «Хозрасчетный» будут отражены корректно.
1С (Код)12345678910111213141516171819Движения.Хозрасчетный.Очистить();Движения.Хозрасчетный.Записывать = Истина;Для Каждого ТекСтрокаОплата Из Оплата ЦиклДвижение = Движения.Хозрасчетный.Добавить();Движение.Сторно = Ложь;Движение.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями; // обычно дебетуется расчет с покупателямиДвижение.СчетКт = ПланыСчетов.Хозрасчетный.ДенежныеСредства; // кредит - денежные средства или расчетный счетДвижение.Период = ЭтотОбъект.Дата; // дата документаДвижение.Сумма = ТекСтрокаОплата.Сумма;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ТекСтрокаОплата.Контрагент;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = ТекСтрокаОплата.ДоговорКонтрагента;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами] = ТекСтрокаОплата.Основание;КонецЦикла;ЭтотОбъект.Записать();
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.