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

```1c
    &НаКлиенте
    Процедура СкопироватьСтроки(Команда)

    Если ПоЗапросу Тогда
    Возврат;
    КонецЕсли;

    Если Элементы.Товары.ВыделенныеСтроки.Количество() = 0 Тогда
    Возврат;
    КонецЕсли;

    СкопироватьСтрокиНаСервере();
    ПоказатьОповещениеПользователя(НСтр("ru = 'Копирование в буфер обмена'"), Окно.ПолучитьНавигационнуюСсылку(),
    СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Скопировано строк: %1'"), Элементы.Товары.ВыделенныеСтроки.Количество()));
    Оповестить("ДанныеСкопированыВБуферОбмена", Новый Структура("ИсточникКопирования", "Товары"), Объект.Ссылка);

    КонецПроцедуры
```

2.

```1c
    &НаКлиенте
    Процедура ВставитьСтроки(Команда)

    Если ПоЗапросу Тогда
    Возврат;
    КонецЕсли;

    Количество = РезультатВставкиСтрок();
    Если Количество > 0 Тогда
    ПоказатьОповещениеПользователя(НСтр("ru = 'Вставка из буфера обмена'"), Окно.ПолучитьНавигационнуюСсылку(),
    СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Вставлено строк: %1'"), Количество));
    КонецЕсли;

    КонецПроцедуры
```

Оно вставляет стандартные данные, есть столбец который добавили и его не копирует, как сделать чтобы его тоже копировал и вставлял?
За ранее спасибо
---
Сделал. Может кому пригодиться. Все происходит в "Общем модуле" - КопированиеСтрокСервер. На подобии поля "Цена" покажу.

В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.

```1c
    Функция ПолучитьСтрокиИзБуфераОбмена(ПараметрыОтбора = Неопределено) Экспорт
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | ТЗ.Цена
    Запрос.УстановитьПараметр("ТЗ", СтрокиДляВставки);
    ТекстУсловияОтбор = ";
    КонецФункции
```

Далее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять

```1c
    Функция ИнициализироватьТаблицуБуфераОбмена()
    ТаблицаСтрок.Колонки.Добавить("Цена", ОписаниеТиповДенежногоПоля);
    КонецФункции
```

А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется

```1c
    Для каждого СтрокаТаблицы Из КопируемаяКоллекция Цикл

    НоваяСтрока = ТаблицаБуфераОбмена.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);

    Для Каждого Колонка Из НоваяСтрока Цикл
    Сообщить(Колонка);
    КонецЦикла;
```
---
покажи что в СкопироватьСтрокиНаСервере() и РезультатВставкиСтрок()
---
```1c
    &НаСервере
    Процедура СкопироватьСтрокиНаСервере()

    СтандартнаяОбработка = Истина;

    КоммерческиеПредложенияДокументыПереопределяемый.ПриКопированииСтрокВБуферОбмена(ЭтотОбъект,
    Объект.Товары,
    Элементы.Товары.ВыделенныеСтроки,
    "Товары",
    СтандартнаяОбработка);

    Если СтандартнаяОбработка Тогда

    ОбщегоНазначения.СкопироватьСтрокиВБуферОбмена(Объект.Товары, Элементы.Товары.ВыделенныеСтроки, "Товары");

    КонецЕсли;

    КонецПроцедуры
```

```1c
    &НаСервере
    Функция РезультатВставкиСтрок()

    СтандартнаяОбработка = Истина;
    КоличествоСтрок = 0;

    КоммерческиеПредложенияДокументыПереопределяемый.ПриВставкеСтрокИзБуфераОбмена(ЭтотОбъект, КоличествоСтрок, СтандартнаяОбработка);

    Если СтандартнаяОбработка Тогда

    ДанныеИзБуфераОбмена = ОбщегоНазначения.СтрокиИзБуфераОбмена();
    Если ДанныеИзБуфераОбмена.Источник <> "Товары" Тогда
    Возврат 0;
    КонецЕсли;

    Для Каждого СтрокаТаблицы Из ДанныеИзБуфераОбмена.Данные Цикл
    ЗаполнитьЗначенияСвойств(Объект.Товары.Добавить(), СтрокаТаблицы);
    КонецЦикла;

    КоличествоСтрок = ДанныеИзБуфераОбмена.Данные.Количество();

    КонецЕсли;

    РассчитатьИтоговыеПоказателиФормы(ЭтотОбъект);

    Возврат КоличествоСтрок;

    КонецФункции
```
---
вот тут копируется каждая строка, смотрите глубже по тексту в ОбщегоНазначения.СтрокиИзБуфераОбмена();

```1c
    Для Каждого СтрокаТаблицы Из ДанныеИзБуфераОбмена.Данные Цикл
    ЗаполнитьЗначенияСвойств(Объект.Товары.Добавить(), СтрокаТаблицы);
    КонецЦикла;
```
---
Откладкой прошелся, при копировании и вставке туда даже не зашло отладкой

```1c
    Функция СтрокиИзБуфераОбмена() Экспорт

    Результат = Новый Структура;
    Результат.Вставить("Источник", Неопределено);
    Результат.Вставить("Данные", Неопределено);

    Если ПустойБуферОбмена() Тогда
    Возврат Результат;
    КонецЕсли;

    ТекущийБуферОбмена = ПараметрыСеанса.БуферОбмена; // см. СтрокиИзБуфераОбмена
    Результат.Источник = ТекущийБуферОбмена.Источник;
    Результат.Данные = ПолучитьИзВременногоХранилища(ТекущийБуферОбмена.Данные);

    Возврат Результат;
    КонецФункции
```
---
Сделал. Может кому пригодиться. Все происходит в "Общем модуле" - КопированиеСтрокСервер. На подобии поля "Цена" покажу.

В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.

```1c
    Функция ПолучитьСтрокиИзБуфераОбмена(ПараметрыОтбора = Неопределено) Экспорт
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | ТЗ.Цена
    Запрос.УстановитьПараметр("ТЗ", СтрокиДляВставки);
    ТекстУсловияОтбор = ";
    КонецФункции
```

Далее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять

```1c
    Функция ИнициализироватьТаблицуБуфераОбмена()
    ТаблицаСтрок.Колонки.Добавить("Цена", ОписаниеТиповДенежногоПоля);
    КонецФункции
```

А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется

```1c
    Для каждого СтрокаТаблицы Из КопируемаяКоллекция Цикл

    НоваяСтрока = ТаблицаБуфераОбмена.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);

    Для Каждого Колонка Из НоваяСтрока Цикл
    Сообщить(Колонка);
    КонецЦикла;
```