Всем привет ребята, столкнулся с такой проблемой:
Есть конфигурация 1с ка 1.1
есть самописный документ: прочие затраты
хочу при введении документа прочие затраты на на основании ППИ, заполнять табличную часть документа прочие затраты следующим: контрагент, сумма, договор, и проставлять дату документа из документа основание

название табличной части "затраты"
рекизиты для автозаполнения .Аналитика, ДоговорКонтрагента, Сумма

использовал конструктор ввода, добился заполнения стандартных реквизитов, но с табличной частью - беда

```1c
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
    // Заполнение шапки
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
    // Заполнение шапки
    Комментарий = ДанныеЗаполнения.НазначениеПлатежа;
    Организация = ДанныеЗаполнения.Организация;
    Подразделение = ДанныеЗаполнения.Подразделение;
    ДокументОснование = ДанныеЗаполнения.Ссылка;
    // Заполнение табличной части
    Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента; - выдает ошибку, что естественно
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств") Тогда
    // Заполнение шапки
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры
```

буду признателен за любую помощь.
---
Перед заполнением табличной части Затраты, нужно же добавить строку табличной части...

```1c
    ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
    ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
```
---
Тогда надо сделать так, если вы используете конструктор ввода на основании, у вас на первом документе появится кнопка, создать на основании.

В модуле объекта второго документа, который создается надо прописать процедуру ОбработкаЗаполнения(), она у вас есть уже как бы

```1c
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
    // Заполнение шапки
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
    // Заполнение шапки
    Комментарий = ДанныеЗаполнения.НазначениеПлатежа;
    Организация = ДанныеЗаполнения.Организация;
    Подразделение = ДанныеЗаполнения.Подразделение;
    ДокументОснование = ДанныеЗаполнения.Ссылка;
    // Заполнение табличной части ////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­///
    ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
    ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств") Тогда
    // Заполнение шапки
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры
```

Тч будет заполняться.
---
запросом выгружаете из ТЧ ППИ с полями как у ТЧ затраты, и загружаете в ТЧ Затраты. Колонку Дата загружаете значением дата. Все.
---
Нет в ппи - таблиной части)) если можете сделать пример я бы постарался разобраться)
---
Если ТЧ в первом Документе нет, то какие данные должны быть в тч?

Я заполнял ТЧ так:

```1c
    НоваяСтрока = Затраты.Добавить();
    НоваяСтрока.Аналитика = ДанныеЗаполнения.Контрагент;
```

КАК то так, было б намного легче если б в ппи была тч;
---
КАК то так, было б намного легче если б в ппи была тч;
в платежном поручении бывает табличная часть, но не в моем случае, в моем случае я просто плачу поставщикам услуг и с тараюсь начислять затраты прочим документом, минуя документ птиу оставив его только для товаров
---
Значит в ТЧ затраты будет только одна строка содержащая данные ППИ
---
Вопрос: Зачем тогда вообще нужна ТЧ?)
---
Не знаю, предыдущий программист делал, наверное хотел разные статьи затрат вводить
---
Этот вопрос надо задать тому кто программировал документ. НО ведь можно собрать в затраты не одну ППИ а несколько, тогда без ТЧ не обойтись
---
Да. можно несколько, но в данном случае если создавать на основании, то будет только одна строка))
---
Перед заполнением табличной части Затраты, нужно же добавить строку табличной части...

```1c
    ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
    ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
```
---
ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;

обязательно попробую конечно)
Спасибо!
---
Да вы абсолютно правы! У вас тоже правильное решение, оно подойдет тем кто понимает такой ответ, в моем случае мне было понятно когда я смог сравнить два модуля с предлагаемым решением. И только после этого смог разобраться. Теперь мне понятно и то что вы предлагаете спасибо и Вам!
Мой опыт конфигурирования заканчивается там где начинается синтаксис и программирование модулей языком 1с
(23)
---
Нашел процедуру

```1c
    Процедура ЗатратыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

    Если НоваяСтрока Тогда

    Если НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.Проект) Тогда
    Элемент.ТекущиеДанные.Проект = Проект;
    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры // ЗатратыПриНачалеРедактирования()
```

могу ли я сюда добавить

```1c
    ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
    ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
```
---
Смотря зачем туда добавлять? Что ты хочешь сделать этим?
---
Я хочу что бы определенные колонки в табличной части заполнились определенными реквизитами из документа основания
---
Тогда надо сделать так, если вы используете конструктор ввода на основании, у вас на первом документе появится кнопка, создать на основании.

В модуле объекта второго документа, который создается надо прописать процедуру ОбработкаЗаполнения(), она у вас есть уже как бы

```1c
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    //{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
    // Заполнение шапки
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
    // Заполнение шапки
    Комментарий = ДанныеЗаполнения.НазначениеПлатежа;
    Организация = ДанныеЗаполнения.Организация;
    Подразделение = ДанныеЗаполнения.Подразделение;
    ДокументОснование = ДанныеЗаполнения.Ссылка;
    // Заполнение табличной части ////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­///
    ТЧ_Затраты=ЭтотОбъект.Затраты.Добавить();
    ТЧ_Затраты.Аналитика = ДанныеЗаполнения.Контрагент ;
    ТЧ_Затраты.ДоговорКонтрагента = ДанныеЗаполнения.ДоговорКонтрагента;
    ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПлатежныйОрдерСписаниеДенежныхСредств") Тогда
    // Заполнение шапки
    КонецЕсли;
    //}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
    КонецПроцедуры
```

Тч будет заполняться.
---
Спасибо, большое! Все работает!
---
Если надо заполнять сумму, то тоже напишите:
ТЧ_Затраты.Сумма = ДанныеЗаполнения.Сумма ;
Ну или вы уже это сделали наверное)
---
Вообще-то, у ППИ в большинстве типовых конфигураций есть ТЧ. И если нажать на переключатель Редактировать: Списком (на вашем же скрине), то ее даже можно увидеть. В УПП, например, называется РасшифровкаПлатежа.
Для заполнения нужно вставить свой код в процедуру обработчик ОбработкаЗаполнения() или ту, которая вызывается из нее.

Например:

```1c
    тзТЧ = ДанныеЗаполнения.РасшифровкаПлатежа.Выгрузить();
    тзТЧ.Колонки.СуммаПлатежа.Имя = "Сумма";

    тзТЧ.Колонки.Добавить("Аналитика");
    тзТЧ.ЗаполнитьЗначения(ДанныеЗаполнения.Контрагент, "Аналитика");

    ТЧ_Затраты.Загрузить(тзТЧ);
```
---
да, именно это я и написал, "в платежном поручении бывает табличная часть"
(16) Для заполнения нужно вставить свой код в процедуру обработчик ОбработкаЗаполнения() или ту, которая вызывается из нее.
хорошо бы знать что именно, вставлять и куда, тогда бы я вставил и у меня появилось решение )
---
посмотрите (16), я добавил код
---
Спасибо! я заполнил обработчик по методу Arsenbot и все заработало! Ура! Спасибо большое!
---
Просто Arsenbot понял мой намек а вы пропустили мимо ушей правильное решение....