Понадобилось внести в эту процедуру кое какие изменения.
Сама процедура полностью устраивает, но в определенном случае на ее входе нужно изменить одну ТЧ, но что бы в исходном документе ничего не поменялось по завершению
---
Ничего. Более того - на первой же строчке выпадет ошибка.
---
Под процедурой "заполнить на основании" понимается обработчик события объекта ОбработкаЗаполнения? Тогда, если оно вызвано механизмом платформы ввода на основании, передается ссылка на документ. Если событие вызвано методом объекта Заполнить, тогда в ДанныеЗаполнения попадёт то, что передали в качестве параметра метода.
---
Да ОбработкаЗапонения.
Нужно что бы и так и так работало.
Вы не поняли, беда в том, что в процедуре объекта я хочу поменять перед выполнением уже имеющегося кода табличную часть ДанныхЗаполнения, н что бы после создания нового документа исходный не поменялся
Так возможно?
---
В принципе да, вы можете переопределить переменную ДанныеЗаполнения в ОбработкаЗаполнения как вам угодно. Вместо ссылки можете передать, например, прикладной объект с измененной ТЧ или даже просто структуру, с ключами, соответствующими именам реквизитов и табличной части объекта.
---
Хотя, обмануть типовое заполнение, скорее всего не получится. Наверняка, типовой код содержит проверку типа для ДанныеЗаполнения. Я бы сделал подписку, которая дорабатывает или заменяет типовое заполнение.
---
Я не хочу обмануть типовое заполнение, то что я хочу должно работать и интерактивно.
Вы суть не поняли, типовое остается, исходные данные по окончанию создания не должны измениться.
Ладно пример:

```1c
    Процедура ОбработкаЗаполнения()

    //например добовляю
    Для Каждого СтрокаТЧ Из ДанныеЗаполнения.ТЧ Цикл
    СтрокаТЧ.КолВо = 0
    КонецЦикла

    //а потом стандартный код
    КонецПроцедуры
```

Что будет по завершению в исходном документе?
---
Ничего. Более того - на первой же строчке выпадет ошибка.
---
Возможно получится это сделать через расширение. Конечное, многое зависит от содержания оригинальной процедуры, есть ли там условия по типу передаваемого значения...

```1c
    &Вместо("ОбработкаЗаполнения")
    Процедура Расш1_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

    ДанныеЗаполненияСтруктура = Новый Структура;

    ТЧ = ДанныеЗаполнения.ТЧ.Выгрузить();
    Для Каждого СтрокаТЧ Из ТЧ Цикл
    СтрокаТЧ.КолВо = 0
    КонецЦикла;

    ДанныеЗаполненияСтруктура.Вставить("ТЧ", ТЧ);

    ПродолжитьВызов(ДанныеЗаполненияСтруктура, СтандартнаяОбработка);

    КонецПроцедуры
```
---
Можно даже проще... не нужно ничего копировать

```1c
    &Вместо("ОбработкаЗаполнения")
    Процедура Расш1_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

    ДанныеЗаполнения = ДанныеЗаполнения.ПолучитьОбъект();

    Для Каждого СтрокаТЧ Из ДанныеЗаполнения.ТЧ Цикл
    СтрокаТЧ.КолВо = 0
    КонецЦикла;

    ПродолжитьВызов(ДанныеЗаполнения, СтандартнаяОбработка);

    КонецПроцедуры
```
---
Процедура ОбработкаЗаполнения(ДанныеЗаполнения)
Исходный документ при этом не поменяется, ошибок не будет.
---
"Мне надо что-то там заполнить не понятно откуда и из чего, вот видел есть процедура кажется обработка заполнения, там уже кто-то, что-то написал, я пожалуй трогать не буду, хочу тоже через такую процедуру заполнять, но чтоб данные не менялись. Будьте так любезны, как можно реализовать?" (с) АФФФФТОР