Скопировать строку из табличной части и вставить
Всем привет. Подскажите, как добавить еще одну ячейку к копированию строки из табличной части документа и вставить ее стандартными средствами. Есть две кнопки, на них две процедуры:
1.
2.
Оно вставляет стандартные данные, есть столбец который добавили и его не копирует, как сделать чтобы его тоже копировал и вставлял?
За ранее спасибо
1.
&НаКлиенте
Процедура СкопироватьСтроки(Команда)
Если ПоЗапросу Тогда
Возврат;
КонецЕсли;
Если Элементы.Товары.ВыделенныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СкопироватьСтрокиНаСервере();
ПоказатьОповещениеПользователя(НСтр("ru = 'Копирование в буфер обмена'"), Окно.ПолучитьНавигационнуюСсылку(),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Скопировано строк: %1'"), Элементы.Товары.ВыделенныеСтроки.Количество()));
Оповестить("ДанныеСкопированыВБуферОбмена", Новый Структура("ИсточникКопирования", "Товары"), Объект.Ссылка);
КонецПроцедуры
Показать2.
&НаКлиенте
Процедура ВставитьСтроки(Команда)
Если ПоЗапросу Тогда
Возврат;
КонецЕсли;
Количество = РезультатВставкиСтрок();
Если Количество > 0 Тогда
ПоказатьОповещениеПользователя(НСтр("ru = 'Вставка из буфера обмена'"), Окно.ПолучитьНавигационнуюСсылку(),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Вставлено строк: %1'"), Количество));
КонецЕсли;
КонецПроцедуры
ПоказатьОно вставляет стандартные данные, есть столбец который добавили и его не копирует, как сделать чтобы его тоже копировал и вставлял?
За ранее спасибо
По теме из базы знаний
- Лучшее копирование/вставка табличных частей документов
- УФ + БСП: копирование строк табличных частей (даже между разными инфобазами)
- Кросс-таблица из табличной части или запроса
- Буфер обмена для РМК. Добавлены кнопки "скопировать строки" и "вставить строки"
- Вывод условного оформления дерева значений или табличной части в эксель
Найденные решения
Сделал. Может кому пригодиться. Все происходит в "Общем модуле" - КопированиеСтрокСервер. На подобии поля "Цена" покажу.
В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.
Далее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять
А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется
В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.
Функция ПолучитьСтрокиИзБуфераОбмена(ПараметрыОтбора = Неопределено) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ТЗ.Цена
Запрос.УстановитьПараметр("ТЗ", СтрокиДляВставки);
ТекстУсловияОтбор = "";
КонецФункции
ПоказатьДалее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять
Функция ИнициализироватьТаблицуБуфераОбмена()
ТаблицаСтрок.Колонки.Добавить("Цена", ОписаниеТиповДенежногоПоля);
КонецФункции
А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется
Для каждого СтрокаТаблицы Из КопируемаяКоллекция Цикл
НоваяСтрока = ТаблицаБуфераОбмена.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
Для Каждого Колонка Из НоваяСтрока Цикл
Сообщить(Колонка);
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
&НаСервере
Процедура СкопироватьСтрокиНаСервере()
СтандартнаяОбработка = Истина;
КоммерческиеПредложенияДокументыПереопределяемый.ПриКопированииСтрокВБуферОбмена(ЭтотОбъект,
Объект.Товары,
Элементы.Товары.ВыделенныеСтроки,
"Товары",
СтандартнаяОбработка);
Если СтандартнаяОбработка Тогда
ОбщегоНазначения.СкопироватьСтрокиВБуферОбмена(Объект.Товары, Элементы.Товары.ВыделенныеСтроки, "Товары");
КонецЕсли;
КонецПроцедуры
Показать&НаСервере
Функция РезультатВставкиСтрок()
СтандартнаяОбработка = Истина;
КоличествоСтрок = 0;
КоммерческиеПредложенияДокументыПереопределяемый.ПриВставкеСтрокИзБуфераОбмена(ЭтотОбъект, КоличествоСтрок, СтандартнаяОбработка);
Если СтандартнаяОбработка Тогда
ДанныеИзБуфераОбмена = ОбщегоНазначения.СтрокиИзБуфераОбмена();
Если ДанныеИзБуфераОбмена.Источник <> "Товары" Тогда
Возврат 0;
КонецЕсли;
Для Каждого СтрокаТаблицы Из ДанныеИзБуфераОбмена.Данные Цикл
ЗаполнитьЗначенияСвойств(Объект.Товары.Добавить(), СтрокаТаблицы);
КонецЦикла;
КоличествоСтрок = ДанныеИзБуфераОбмена.Данные.Количество();
КонецЕсли;
РассчитатьИтоговыеПоказателиФормы(ЭтотОбъект);
Возврат КоличествоСтрок;
КонецФункции
Показать
(4)Откладкой прошелся, при копировании и вставке туда даже не зашло отладкой
Функция СтрокиИзБуфераОбмена() Экспорт
Результат = Новый Структура;
Результат.Вставить("Источник", Неопределено);
Результат.Вставить("Данные", Неопределено);
Если ПустойБуферОбмена() Тогда
Возврат Результат;
КонецЕсли;
ТекущийБуферОбмена = ПараметрыСеанса.БуферОбмена; // см. СтрокиИзБуфераОбмена
Результат.Источник = ТекущийБуферОбмена.Источник;
Результат.Данные = ПолучитьИзВременногоХранилища(ТекущийБуферОбмена.Данные);
Возврат Результат;
КонецФункции
Показать
Сделал. Может кому пригодиться. Все происходит в "Общем модуле" - КопированиеСтрокСервер. На подобии поля "Цена" покажу.
В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.
Далее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять
А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется
В этой функции необходимо добавить наше поле которое нужно для копирования в запрос.
Функция ПолучитьСтрокиИзБуфераОбмена(ПараметрыОтбора = Неопределено) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ТЗ.Цена
Запрос.УстановитьПараметр("ТЗ", СтрокиДляВставки);
ТекстУсловияОтбор = "";
КонецФункции
ПоказатьДалее необходимо в функции иницилизировать наше поле которое собираемся копировать и вставлять
Функция ИнициализироватьТаблицуБуфераОбмена()
ТаблицаСтрок.Колонки.Добавить("Цена", ОписаниеТиповДенежногоПоля);
КонецФункции
А в процедуре ПоместитьВыделенныеСтрокиВБуферОбмена можно посмотреть вообще что копируется
Для каждого СтрокаТаблицы Из КопируемаяКоллекция Цикл
НоваяСтрока = ТаблицаБуфераОбмена.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
Для Каждого Колонка Из НоваяСтрока Цикл
Сообщить(Колонка);
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот