Добрый день
Есть необходимость поменять проводку при проведении документа в расширении конфигурации... Платформа 1С8.3 (8.3.18). Конфигурация БП 3.0
Добавил в расширение:

```1c
    &После("ОбработкаПроведения")
    Процедура Расш_ОбработкаПроведения(Отказ, РежимПроведения)

    ДвиженияХозрасчетный = ЭтотОбъект.Движения.Хозрасчетный;
    ДвиженияХозрасчетный.Записывать = Истина;

    Для каждого Движение Из ДвиженияХозрасчетный Цикл

    Если Движение.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.СебестоимостьПродаж) И Движение.СчетКт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция Тогда
    Движение.СчетДт = ПланыСчетов.Хозрасчетный.НераспределеннаяПрибыльВОбращении;
    Движение.СубконтоДт.Очистить();
    ВидСубконто = Движение.СчетДт.ВидыСубконто.Получить(0).ВидСубконто;
    Движение.СубконтоДт.Вставить(ВидСубконто, СубконтоБлаготворительность);
    Движение.Сумма = 0;
    Движение.СуммаНУДт = 0;
    Движение.СуммаНУКт = 0;
    Движение.Содержание = "Благотворительность";
    КонецЕсли;

    КонецЦикла;
```

Так вот, строка "Движение.СубконтоДт.Очистить()" не очищает Субконто, а очищает только значения Субконто и соответственно документ не проводится...
Подскажите, что делаю не так... или может каким другим способом можно поправить проводку?
---
Сделал через ТаблицуЗначений... Вроде работает...

```1c
    &После("ОбработкаПроведения")
    Процедура Расш_ОбработкаПроведения(Отказ, РежимПроведения)

    ДвиженияХозрасчетный = ЭтотОбъект.Движения.Хозрасчетный;
    ДвиженияХозрасчетный.Записывать = Истина;

    ТЗПроводок = ДвиженияХозрасчетный.Выгрузить();

    Для каждого Движение Из ТЗПроводок Цикл

    Если Движение.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.СебестоимостьПродаж) И Движение.СчетКт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция Тогда
    Движение.СчетДт = ПланыСчетов.Хозрасчетный.НераспределеннаяПрибыльВОбращении;
    ВидСубконто = Движение.СчетДт.ВидыСубконто.Получить(0).ВидСубконто;
    Движение.ВидСубконтоДт1 = ВидСубконто;
    Движение.ВидСубконтоДт2 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка();
    Движение.ВидСубконтоДт3 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка();
    Движение.Сумма = 0;
    Движение.СуммаНУДт = 0;
    Движение.СуммаНУКт = 0;
    Движение.Содержание = "Благотворительность";
    КонецЕсли;

    КонецЦикла;

    ДвиженияХозрасчетный.Загрузить(ТЗПроводок);
```
---
Так вот, строка "Движение.СубконтоДт.Очистить()" не очищает Субконто, а очищает только значения Субконто и соответственно документ не проводится...
Это ведь коллекция значений субконто. Что значит "не очищает субконто"? Ошибка какая?
---
При очищении коллекции ошибки никакой, при этом очищаются значения субконто, а сами виды субконто не очищаются...
Ошибка потом в конце проведения, что субконто не соответствует данному счету...
---
А зачем руками это все делать, если есть БухгалтерскийУчет.УстановитьСубконто()?
---
БухгалтерскийУчет.УстановитьСубконто()
А что это меняет... в этой процедуре тоже самое делается: Субконто.Вставить(ВидСубконто, ЗначениеСубконто)
что не очищает от старых субконт и добавляет новое...
---
Эмм, я правильно понимаю, что вы хотите на счет, у которого нет субконто, например, Номенклатура, в проводку добавить именно субконто Номенклатура и значение тоже из Номенклатуры? Вообще так не должно работать, список субконто фиксирован и настраивается у счета, не может быть изменен при формировании проводки.
---
нет. Я хочу заменить Счет дебета с 90.02.1 на 84.03, например
Счет меняется, но субконто от прежнего счета не могу удалить... Получается, что счет 84.03 и к нему два субконтно: НоменклатурныеГруппы и НаправлениеИспользованияПрибыли. А должно быть одно...
---
А, понятно.
С партнерского, смотрите на скрине.
Возможно ошибка, возможно задуманное поведение, 1С не ответили.

Попробуйте через ВидыСубконто.Выгрузить()/ВидыСубконто.Загрузить(), может сработает.
---
Я тоже заметил, что с изменением релиза платформы поведение поменялось...
но как тогда изменить проводку?
---
Вам, релиз платформы не поменять, правильно понимаю ?
---
Пока не можем... релиз 8.3.18.1208
---
Добрый день!
Вопрос актуален ? Проверила на платформе 1С:Предприятие 8.3 (8.3.20.1674), всё работает, с небольшим нюансом
---
Что за нюанс?
---
Движение.КоличествоДт = 0;
---
Движение.КоличествоДт = 0
Сначала было обрадовался... увидел нужные проводки, но повторное проведение выдало ту же ошибку...
---
Сделал через ТаблицуЗначений... Вроде работает...

```1c
    &После("ОбработкаПроведения")
    Процедура Расш_ОбработкаПроведения(Отказ, РежимПроведения)

    ДвиженияХозрасчетный = ЭтотОбъект.Движения.Хозрасчетный;
    ДвиженияХозрасчетный.Записывать = Истина;

    ТЗПроводок = ДвиженияХозрасчетный.Выгрузить();

    Для каждого Движение Из ТЗПроводок Цикл

    Если Движение.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.СебестоимостьПродаж) И Движение.СчетКт = ПланыСчетов.Хозрасчетный.ГотоваяПродукция Тогда
    Движение.СчетДт = ПланыСчетов.Хозрасчетный.НераспределеннаяПрибыльВОбращении;
    ВидСубконто = Движение.СчетДт.ВидыСубконто.Получить(0).ВидСубконто;
    Движение.ВидСубконтоДт1 = ВидСубконто;
    Движение.ВидСубконтоДт2 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка();
    Движение.ВидСубконтоДт3 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка();
    Движение.Сумма = 0;
    Движение.СуммаНУДт = 0;
    Движение.СуммаНУКт = 0;
    Движение.Содержание = "Благотворительность";
    КонецЕсли;

    КонецЦикла;

    ДвиженияХозрасчетный.Загрузить(ТЗПроводок);
```