Копирование данных в 1С из буфера обмена

Версия для печатиPDF-версия

Платформа:

Суть следующая: Есть файлик экселевский (для разбора средствами 1С очень много заморочек, поэтому народ попросил сделать обработку на подобие создание номенклатуры из УТ11.1). В нем 2 колонки: ФИО и Сумма. На форме есть табличная часть (подозреваю что надо было добавить реквизит таблица значений а не табличную часть). Народ хочет копировать из экселя  и вставлять из буфера обмена на форму. Подскажите, как это можно реализовать?

Вообщем ларчик просто открывался - дабавляется КАК РЕКВИЗИТ объект ТабличныйДокумент (не Таблица, не ТаблицаЗначений)

Быстро разобрался)

Ну, теперь другой момент возник - через какой метод перетянуть эти данный в ТЗ... Что-то никаких примеров найти не могу не замороченных как в УТ :(

Как-нибудь так:

&НаКлиенте
Процедура ПрочитатьДанные(Команда)
	Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл 
		ОбластьФИО = ТабличныйДокумент.Область(НомерСтроки, 1);
		ФИО = ОбластьФИО.Текст;
		ОбластьСумма = ТабличныйДокумент.Область(НомерСтроки, 2);
		Сумма = ОбластьСумма.Текст;
		НоваяСтрока = ТЗ.Добавить();
		НоваяСтрока.ФИО = ФИО;
		НоваяСтрока.Сумма = Сумма;
	КонецЦикла;
КонецПроцедуры

Ну и проверки на заполненность и т.п. добавить.

Алексей, спасибо большое за подсказку - буду пробовать. Готовый вариант как получилось и работает как всегда сюда, вдруг кому понадобится. И еще маленький вопрос - а как здесь на сайте сделать так, чтобы выделялся код 1с?:)

Для выделения кода нужно использовать такую конструкцию:
<pre><code class="1C">Тут код 1С</code></pre>
Для вставки тегов нужно переключить текстовый формат в режим "Простой текст".
Всё никак руки не доходят специальную кнопку сделать.

Ага, спасибо. Попробовал код - ругается зараза :(


&НаКлиенте
Процедура ПрочитатьДанные(Команда)
	ТЗ = Новый ТаблицаЗначений;
	ТЗ.Колонки.Добавить("ФИО");
	ТЗ.Колонки.Добавить("Сумма");
	Для НомерСтроки = 1 По Объект.ДанныеДляСоздания.ВысотаТаблицы Цикл 
		ОбластьФИО = Объект.ДанныеДляСоздания.Область(НомерСтроки, 1);
		ФИО = ОбластьФИО.Текст;
		ОбластьСумма = Объект.ДанныеДляСоздания.Область(НомерСтроки, 2);
		Сумма = ОбластьСумма.Текст;
		НоваяСтрока = ТЗ.Добавить();
		НоваяСтрока.ФИО = ФИО;
		НоваяСтрока.Сумма = Сумма;
	КонецЦикла;
КонецПроцедуры

 
{Форма.Форма.Форма(4,13)}: Тип не определен (ТаблицаЗначений)
ТЗ = Новый <<?>>ТаблицаЗначений; (Проверка: Тонкий клиент)
 

Как бы колонки определил, таблицузначений тоже... 

Нужно на сервере код выполнять. На клиенте таблицу значений использовать нельзя.

Понял, спасибо

В общем как всегда - готовый вариант - вдруг кому приходится:

&НаСервере
Процедура ПрочитатьДанные()
 
Для НомерСтроки = 1 По  Объект.ДанныеДляСоздания.ВысотаТаблицы Цикл 
ОбластьФИО        = Объект.ДанныеДляСоздания.Область(НомерСтроки, 1);
ФИО               = ОбластьФИО.Текст;
ОбластьСумма      = Объект.ДанныеДляСоздания.Область(НомерСтроки, 2);
Сумма             = Число(ОбластьСумма.Текст);
 
ДокРКО = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
ДокРКО.Дата = Объект.ДатаРКО;
ДокРКО.ХозяйственнаяОперация = Объект.РКО_КодОперации;
ДокРКО.Организация           = Объект.РКО_Организация;
ДокРКО.Валюта                = Константы.ВалютаУправленческогоУчета;
ДокРКО.Касса                 = Объект.РКО_Касса;
ДокРКО.СуммаДокумента        = Сумма;
ДокРКО.Кассир                = ПараметрыСеанса.ТекущийПользователь;
ДокРКО.Выдать                = ФИО;
ДокРКО.Основание             = Объект.СтатьяДДС.Наименование + "; " + ФИО + "; сумма " + ДокРКО.СуммаДокумента;
 
НСтрока = ДокРКО.РасшифровкаПлатежа.Добавить();
НСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДДС;
НСтрока.Подразделение         = Объект.Подразделение;
НСтрока.Сумма                 = Сумма;
НСтрока.СтатьяРасходов        = Объект.СтатьяРасходов;
НСтрока.АналитикаРасходов     = Объект.РКО_Организация;
 
ДокРКО.Записать();
Сообщить("Создан документ РКО " + ДокРКО.Номер + " от " + ДокРКО.Дата + " сумма " + ДокРКО.СуммаДокумента);
 
КонецЦикла;
КонецПроцедуры
 
&НаКлиенте
Процедура СоздатьРКОНаКлиенте()
ПрочитатьДанные();
КонецПроцедуры
 

 

Это все в модуле формы

Реквизиты формы видны на скриншоте

Реквизиты обработки

Непонятно только, зачем все реквизиты сделаны реквизитами обработки. Можно было и реквизитами формы обойтись. Не надо было бы писать "Объект.".

Да как-то не задумался) Видимо по привычке))) 77 дает о себе знать)

Еще маленький вопрос) А как можно переминовать колонку? Например что 1 колонка это ФИО, 2-я колонка - Сумма?

В ТабличномДокументе?

Ага, ведь можно ж как-то задавать имена колонок?

Если табличный документ сделать реквизитом формы, то можно в конфигураторе его заполнить по умолчанию. В контекстном меню реквизита выбрать "Свойства". В свойствах найти "Настройка" -> "Открыть". Только в пользовательском режиме можно текст стереть.

Что-то найти не могу... Можно скриншот пожалуйста?

Спасибо, понял