Имеем строку с разделителями ";" надо из нее взять данные и заполнить табличную часть УФ. подскажите как это сделать??? с уф вообще не работала...
---
всем спасибо!!!
нашла в общем модуле функцию, которая разбирает строку на массив - ей и воспользовалась СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр, ";")
сейчас код выглядит вот так и все отлично работает:

```1c
    ОбъектКопирования = Новый COMОбъект ("htmlfile");
    СодержимоеБуфера = ОбъектКопирования.ParentWindow.ClipboardData.GetData("text");
    Стр = СодержимоеБуфера;
    Массив = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр, ";");
    НоваяСтрока = Объект.ТаблицаЗаказов.Добавить();
    НоваяСтрока.НомерЗаказ = Массив[0];
    НоваяСтрока.Датазаказа = Массив[1];
    НоваяСтрока.склад = Массив[2];
    НоваяСтрока.суммаЗаказа = Массив[3];
    НоваяСтрока.МассаЗаказа = Массив[4];
    НоваяСтрока.СрокиОтгрузки = Массив[5];
```

Если есть еще варианты его оптимизировать - рада услышать от вас отклик!
---
Nadushka74, если под УФ подразумеваются управляемые формы, тогда нужны уточнения.
1. Строка с разделителями получена на клиенте, т.е. форме объекта. Тогда создаем серверную функцию и туда передаем строку, где ее парсим и заполняем ТЧ полученными значениями. Поиск и создание новых объектов на основании распарсеных значений - по вкусу.
2. Строка с разделителями получена на сервере. Это по сути урезанный варинт п.1, когда строку уже передали. Действия те же: парсим, ищем, заполняем.
---
killitch, строку получаем на клиенте, а вот дольше можно поподробнее:
 как передать ее на сервер?
 что значит парсим?
---
Парсить - значит обратиться к специалисту или воспользоваться гуглом для поиска толкования данного технического термина.
---
Поручик, а к кому я обращаюсь??? разве тут не специалисты сидят???
---
Табличная часть есть у объекта. На форме можно расположить элементы для визуального представления табличных частей, таблиц значений и прочее.
---
пардон за глупый вопрос,а что такое уф?
---
Ольга_tmp, режим управляемых форм.
---
:D
---
конфигурация какая?
---
УФ - управляемые формы - что б их
конфа документооборот, хотя в принципе какая разница?
---
в форме добавляем реквизит Таблица значений, описываем поля, выводим на форму, а потом из своего файлика парсим строки и добавляем в таблицу значений.

что сложного то? а потом помещаем ТЗ во временное хранилище - а на сервере достаем.
---
Если в первый пост закралась опечатка и табличная часть вовсе не табличная, а таблица значений на форме, то в данном случае, полученные на сервере значения для заполнения надо передать на клиент и заполнить ТЗ.

Еще можно поиграться РеквизитФормыВЗначение()
---
Вот пример, правда для дбф и общей формы

```1c
    &НаКлиенте
    Перем ХБаза;

    &НаКлиенте
    Процедура ФайлИмпортаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    ВыбратьФайл(Элемент, ИмяФайлаИмпорта, РежимДиалогаВыбораФайла.Открытие);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВыбратьФайл(Элемент, ИмяФайла, РежимДиалога)

    Диалог=Новый ДиалогВыбораФайла(РежимДиалога);
    Диалог.Заголовок = "Выбор файла";
    Диалог.ПолноеИмяФайла=ИмяФайла;
    Диалог.Фильтр="Файлы DBF (*.dbf)|*.dbf";
    Диалог.ПроверятьСуществованиеФайла = Истина;

    Если Диалог.Выбрать() Тогда
    ИмяФайлаИмпорта=Диалог.ПолноеИмяФайла;
    КонецЕсли;

    ОткрытьБазуДанных();
    Если НЕ ХБаза.Открыта() Тогда
    Сообщить("Не удалось открыть указанный файл: "+ИмяФайлаИмпорта);
    Возврат;
    КонецЕсли;

    ЗаполнитьДанные();

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

    &НаКлиенте
    Процедура ЗаполнитьДанные()
    ХБаза.Первая();

    Пока ХБаза.Следующая() Цикл

    ТипТовара = ХБаза.Prod_Type;

    СтрокаИмпорта = ДанныеЗагрузки.Добавить();
    СтрокаИмпорта.Количество = ХБаза.Count_Pcs;
    СтрокаИмпорта.Номенклатура = ПолучитьНоменклатуру(СтрокаИмпорта.СтрокаНаименования, СтрокаИмпорта.КодНоменклатуры);
    КонецЦикла;
    КонецПроцедуры

    &НаСервере
    Функция ПолучитьНоменклатуру(Имя, Артикул)
    ТоварСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
    Если ТоварСсылка.Пустая() Тогда
    Сообщить("Не найдена номенклатура: Артикул='"+Артикул+"', Название='"+СокрЛП(Имя)+"'");
    КонецЕсли;
    Возврат ТоварСсылка;
    КонецФункции

    &НаКлиенте
    Процедура ПрочитатьЗаголовкиИмпорта(Команда)
    ОткрытьБазуДанных();
    Если НЕ ХБаза.Открыта() Тогда
    Сообщить("Не удалось открыть указанный файл: "+ИмяФайлаИмпорта);
    Возврат;
    КонецЕсли;

    ХБаза.Первая();

    ДатаНакладной = ХБаза.Doc_Date;
    НомерНакладной = ХБаза.Doc_Number;

    Поставщик = ХБаза.SELLER_NAME;
    Получатель = ХБаза.BUYER_NAME;
    АдресПоставки = ХБаза.UNLOAD_ADD;
    КонецПроцедуры

    &НаКлиенте
    Процедура ОткрытьБазуДанных()
    ДатаНакладной = ";
    НомерНакладной = ";
    Поставщик = ";
    Получатель = ";
    АдресПоставки = ";
    ДанныеЗагрузки.Очистить();

    ХБаза = Новый XBase;
    ХБаза.Кодировка = КодировкаXBase.ANSI;
    ХБаза.ОткрытьФайл(ИмяФайлаИмпорта,,Истина);

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

    &НаКлиенте
    Процедура ВыполнитьИмпорт(Команда)
    Закрыть(ЗаписатьИмпортВХранилище());
    КонецПроцедуры

    &НаСервере
    // Функция помещает результаты подбора в хранилище
    Функция ЗаписатьИмпортВХранилище()
    Возврат ПоместитьВоВременноеХранилище(ДанныеЗагрузки.Выгрузить());
    КонецФункции
```
---
а парсим - это значит разбираем строку на составляющие
---
```1c
    стр = строка;
    //ДлинаСтроки = СтрДлина(стр);
    //Таб это ваша табличная часть
    ПозицияВхождения = Найти(Стр, ";");
    Пока ПозицияВхождения > 0 цикл
    Подстрока = Сред(Стр, 0, ПозицияВхождения-1);

    НовЭлТаб = Таб.Добавить();
    НовЭлТаб.Реквизит = Подстрока;

    Стр = СтрЗаменить(Стр,Подстрока+";", ");
    ПозицияВхождения = Найти(Стр, ";");
    КонецЦикла;
    // Если строка-источник не заканчивается на ";" то добавляем последнюю часть текста
    Если СтрДлина(Стр) <> 0 тогда
    НовЭлТаб = Таб.Добавить();
    НовЭлТаб.Реквизит = Подстрока;
    КонецЕсли;
```

Вот то что вам нужно.

Буду рад если поможет.
---
всем спасибо!!!
нашла в общем модуле функцию, которая разбирает строку на массив - ей и воспользовалась СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр, ";")
сейчас код выглядит вот так и все отлично работает:

```1c
    ОбъектКопирования = Новый COMОбъект ("htmlfile");
    СодержимоеБуфера = ОбъектКопирования.ParentWindow.ClipboardData.GetData("text");
    Стр = СодержимоеБуфера;
    Массив = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Стр, ";");
    НоваяСтрока = Объект.ТаблицаЗаказов.Добавить();
    НоваяСтрока.НомерЗаказ = Массив[0];
    НоваяСтрока.Датазаказа = Массив[1];
    НоваяСтрока.склад = Массив[2];
    НоваяСтрока.суммаЗаказа = Массив[3];
    НоваяСтрока.МассаЗаказа = Массив[4];
    НоваяСтрока.СрокиОтгрузки = Массив[5];
```

Если есть еще варианты его оптимизировать - рада услышать от вас отклик!
---
Так я не понял, в чем проблема, в передаче клиент->сервер или не знаешь как это написать?
---
Goruch, см чуть выше, я уже сделала и все отлично работает, при том все на клиенте!
---
если бы были большие объемы я бы все на сервер переносил, а потом обрабатывал.
Но тебе виднее.:)))