Пытаюсь свернуть проводки по дебету по счету 19.07. То есть создаю записи и переношу на кредит.

Правильно ли я делаю?:

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ
    | ХозрасчетныйОстатки.Организация,
    | ХозрасчетныйОстатки.Счет КАК Счет,
    | ХозрасчетныйОстатки.Субконто2 КАК Поступление,
    | ХозрасчетныйОстатки.Субконто3 КАК Реализация,
    | ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В (&СписокСчетовБУ), , ) КАК ХозрасчетныйОстатки
    |ГДЕ
    | ХозрасчетныйОстатки.КоличествоОстатокДт = 0
    | И ХозрасчетныйОстатки.СуммаОстатокДт <> 0");

    Запрос.УстановитьПараметр("Период", КонецДня(ДатаКон));
    Запрос.УстановитьПараметр("СписокСчетовБУ", СписокСчетовБУ);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Если СписокСчетовБУ.Количество() > 0 И РезультатЗапроса.Количество() = 0 Тогда
    Сообщить("Нет остатков на указанную дату");
    Возврат;
    КонецЕсли;

    Если РезультатЗапроса <> Неопределено И РезультатЗапроса.Количество() > 0 Тогда
    Пока РезультатЗапроса.Следующий() Цикл
    НовоеДвижение = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Движение = НовоеДвижение.Добавить();
    Движение.Период = РезультатЗапроса.Реализация.Дата;
    Движение.Организация = РезультатЗапроса.организация;

    Движение.СчетКт = РезультатЗапроса.Счет;
    Движение.СубконтоКт.СфПолученные = РезультатЗапроса.Поступление;
    Движение.СубконтоКт.ДокументыРеализации = РезультатЗапроса.Реализация;
    Движение.Сумма = РезультатЗапроса.СуммаОстатокДт;

    КонецЦикла;
    КонецЕсли;
```
---
Вот и сделайте это новым документом, иначе вы все сломаете.
Точнее не вы, а любое перепроведение документа заново сформирует движения, и ваши добавленные проводки затрутся.
---
Регистратор где?
Чем вы записывать эти движения будете?
---
А какой регистратор можно передать ? Сделал так, но думаю это не верно:
   НовоеДвижение.Отбор.регистратор.установить(РезультатЗапроса.реализация);
---
Создать новый документ.
Какой нибудь Операция бухгалтерская или подобный, который делает произвольные движения по регистру бухгалтерии.
---
посмотрите в (12) пожалуйста. Мне не надо создавать новые документы,а добавить у существующих движения.
---
документы там за какой период? вы хотите текущей датой в те документы добавить движения? или будете на дату документа добавлять движение?
второй способ вообще убийство для учета. Первый вариант не даст перепроводить исходные документы.
---
За весь период,лет 5 )
Ну в общем я понял, буду копать в сторону документа "операция".
---
Есть или нет результат после выполнения запроса надо проверять методом "Пустой()" и делать выборку из результата после проверки.

```1c
    РезультатЗапроса = Запрос.Выполнить().Выбрать();
```

Заменить на:
 РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
 Выборка = РезультатЗапроса.Выбрать();
КонецЕсли

Убрать:
 Если РезультатЗапроса <> Неопределено И РезультатЗапроса.Количество() > 0 Тогда
---
Это всё понятно. Меня интересует больше сам момент свёртывания остатков. Именно этот момент. Просто перекинуть данные с дебета на кредит и сумма станет нулевой ?
---
Если счет 19.07 не забалансовый, то надо счет дт и субконто дт указывать эти же самые значения.
---
Есть или нет результат после выполнения запроса надо проверять методом "Пустой()" и делать выборку из результата после проверки.

Если выборку все равно надо делать, смысла проверять, что выборка пустая - нет.
---
Смысл тогда этой строки?
 Если РезультатЗапроса <> Неопределено И РезультатЗапроса.Количество() > 0 Тогда
---
Его нет.
---
Если выборку все равно надо делать
Если вы уверены что там есть результат то можно не проверять. А если нет то лучше проверить, для этого и метод специальный есть.
---
В качестве даты для получения остатка надо передавать границу, а не конец дня.

У счета могут быть субсчета добавленные пользователем.

```1c
    Счет В ИЕРАРХИИ (&СписокСчетовБУ)
```

В наборе движений нет регистратора.
---
Счёт по сути один. А именно 19.07. В связи с изменением законодательства (откладывать НДС для экспорта больше не требуется), в дальнейшем 19.07 использоваться не будет.
Отсюда и задача свернуть остатки.
---
Вот и сделайте это новым документом, иначе вы все сломаете.
Точнее не вы, а любое перепроведение документа заново сформирует движения, и ваши добавленные проводки затрутся.
---
Правильно я понял, что необходимо программно создать документ операция, заполнить его всеми движениями которые мне нужно свернуть и так же программно провести его ?
---
Да. Если документ может проводиться, то провести и записать движения. Но обычно Операция не может проводится.
---
Но даже при записи она сделает же движения ?

И интересует момент как переносить мои 3 субконта с Дт на Кт ? Просто присваивать Дт = кт по соответствию ?
---
Да, на оба вопроса.
---
В итоге сделал так:

```1c
    СписокСчетовБУ = ТаблицаСчетовБУ.ВыгрузитьКолонку("СчетКТ");

    Запрос = Новый Запрос("ВЫБРАТЬ
    | ХозрасчетныйОстатки.Организация,
    | ХозрасчетныйОстатки.Счет КАК Счет,
    | ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент,
    | ХозрасчетныйОстатки.Субконто2 КАК Поступление,
    | ХозрасчетныйОстатки.Субконто3 КАК Реализация,
    | ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В (&СписокСчетовБУ), , ) КАК ХозрасчетныйОстатки
    |ГДЕ
    | ХозрасчетныйОстатки.СуммаОстатокДт <> 0");

    Запрос.УстановитьПараметр("Период", КонецДня(ДатаКон));
    Запрос.УстановитьПараметр("СписокСчетовБУ", СписокСчетовБУ);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Документ = Документы.ОперацияБух.СоздатьДокумент();
    ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Документ, глЗначениеПеременной("глТекущийПользователь"));

    Пока РезультатЗапроса.Следующий() Цикл
    ДвиженияДокумента = Документ.Движения.Хозрасчетный;
    Движение = ДвиженияДокумента.Добавить();

    Движение.СчетКт = ПланыСчетов.Хозрасчетный.ПрочиеРасходыНеОблагаемыеЕНВД;
    Движение.СчетДт = РезультатЗапроса.Счет;
    Движение.СубконтоКт.Контрагенты = РезультатЗапроса.Контрагент;
    Движение.СубконтоКт.СФПолученные = РезультатЗапроса.Поступление;
    Движение.СубконтоКт.ДокументыРеализации = РезультатЗапроса.Реализация;
    Движение.Сумма = РезультатЗапроса.Сумма;
    КонецЦикла;

    Документ.ПолучитьФорму().Открыть();
```

Но не могу передать значение СубконтоДт.ПрочиеДоходыИРасходы. Оно имеет тип ПланСчетовВидыСубконто.Хозрасчетный. Как это сделать ? Делать новый запрос и передавать этот счёт туда ?
---
Не понял о чем речь.
---
Мне надо Движение.СубконтоДТ присвоить значение СубконтоДт.ПрочиеДоходыИРасходы. Но не пойму как. Если обращаться напрямую через ПланаВидовХарактеристик... То ругается мол СубконтоДт недоступно для записи.Я так полагаю что дело в типе. Но не пойму как сделать корректно.
---
```1c
    Движение.СубконтоДт.ПрочиеДоходыИРасходы = НужноеЗначение;
```

Как и где брать нужное значение - тебе виднее.
---
Решил вопрос. Сделал так, но правильно ли это ? Движение.СубконтоДт.ПрочиеДоходыИРасходы=Справочники.ПрочиеДоходыИРасходы.НайтиПоКоду("000000018") ;
---
Если делаешь это в какой-то обработке, добавь на форму реквизит для выбора нужной ссылки, а значение этого реквизита используй.
---
А разница? я же всё равно буду искать по коду, или как то по-другому можно ?

И что то я сделал эти проводки(дт прировнял к Кт),а сумма не поменялась(
---
Если на форме обработки будет реквизит, его можно будет заполнить интерактивно нужным значением. Для универсальности.
Хотите искать по коду - ищите по коду, ваше дело.
---
На первом скрине приложил, что на данный момент.Есть остаток по этому счету.
Сделал операцию и поменял местами ДТ и КТ с той же суммой(Скрин2). Ничего не поменялось. Почему ?
---
1 - в движениях надо по РБ надо заполнять организацию, и другие измерения, если они есть, у вас в коде их нет.
2 - заполнять период.

Вы остатки смотрите на какую дату? До даты документа ввода ваших корректировок или после?
---
Я имею ввиду. Я в ручную создал документ операцию и записал.В этом случае.

Вы остатки смотрите на какую дату? До даты документа ввода ваших корректировок или после?
В оборотно сальдовой ведомости указывают период до и после.
---
УПП нет под рукой. Поэтому не скажу, почему движений нет.
---
Ну у меня есть движения. Где остаток по дебету. Я перенёс все те же поля на Кредет и сумму(движения в регистре есть). А в отчёте всё то же самое,мол есть остаток.
---
По описанию, звучит все правильно.
"А в отчёте всё то же самое,мол есть остаток. "

Остаток формируется в разрезе измерений и субконто. Возможно, что какое то из измерений заполнено не так.

 Почему показывает остаток без базы не скажу.
---
1. Это проводка по балансу, т.е должен быть Счет Дт и Счет Кт. Сумма не может исчезнуть в никуда.
Поэтому нужна исходная проводка.
Документ регистратор обычно делают бух операцию. потом всегда смогут скорректировать движение и не мучать учет.