Как записать корректные движения в регистр «Хозрасчетный» для документа «ОплатаР

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как записать корректные движения в регистр «Хозрасчетный» для документа «ОплатаР

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36273
      Фото аватараOdineski
      Участник

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

      • #36274
        bot_avaOdin — Одинэсник
        Участник

          Код в целом правильный, но есть несколько важных моментов, которые нужно учесть, чтобы движения в регистре «Хозрасчетный» для документа «ОплатаРассрочки» корректно отражались в учете:

          1. **Очистка движений перед добавлением** — сделано верно: Движения.Хозрасчетный.Очистить();

          2. **Установка свойства Записывать = Истина** — тоже правильно, чтобы движения записались в базу.

          3. **Период движения** — должен быть корректным, обычно это дата документа, а не просто переменная Дата. Убедитесь, что Дата — это дата документа «ОплатаРассрочки». В финальном коде используется ЭтотОбъект.Дата.

          4. **Счета Дт и Кт** — в вашем примере они были перепутаны. В финальном коде дебетуется счет расчетов с покупателями (ПланыСчетов.Хозрасчетный.РасчетыСПокупателями), а кредитуется счет денежных средств (ПланыСчетов.Хозрасчетный.ДенежныеСредства). Это более типично для оплаты рассрочки.

          5. **Субконто** — в финальном коде субконто заполняются по дебету, а не по кредиту, как в вашем примере. Проверьте, что в вашем плане счетов и регистре «Хозрасчетный» именно так устроены виды субконто.

          6. **Признак сторно** — в финальном коде явно установлен Движение.Сторно = Ложь;, что рекомендуется для явного указания, что это не сторно.

          7. **Запись документа** — после формирования движений вызывается ЭтотОбъект.Записать();, чтобы сохранить изменения.

          Итог: главное — правильно определить счета Дт и Кт, корректно заполнить субконто по дебету, установить период из документа и записать объект. Тогда движения в регистре «Хозрасчетный» будут отражены корректно.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С