Хитрая загрузка из excel (транспонирование каждой строки)?

76 views
Skip to first unread message

Grigory

unread,
Feb 18, 2013, 4:12:13 AM2/18/13
to enterprise...@googlegroups.com
Добрый день.

У меня есть excel файл, где в каждой строке несколько ячеек должны преобразоваться в несколько строк ТЧ документа. Я хочу перед загрузкой данных обработать результат таким образом, чтобы одна строка превратилась в несколько строк. Если сказать упрощенно, то каждую строку из excel мне нужно транспонировать и полученные строки давать на вход загрузке данных. Как лучше сделать? Я вижу такой вариант: при считывании из excel и перед выгрузкой в Результат произвести необходимые действия через встроенный язык. Но я не понимаю какого типа объект возвращает Conn.Execute(ТекстЗапроса) и что с ним можно делать, и как потом это передать в Результат.
Или надо как-нибудь по-другому?

Подскажите, пожалуйста, очень нужно.

Спасибо.

Герман Кудяков

unread,
Feb 18, 2013, 4:25:38 AM2/18/13
to enterprise...@googlegroups.com
Вот тут пример когда строк уже несколько.
Если строка одна тогда такая структура 

+Загрузка (Создание или поиск объекта)
 |----Произвольный алгоритм (Добавление необходимого числа строк ТЧ.Добавить();)
 |----Установка реквизитов (Заполнение 1 строки, заполняем поле номер строки и берем значение из нужной ячейки);
......
 |----Записать 

18 февраля 2013 г., 13:12 пользователь Grigory <grigory...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу Enterprise Integrator.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес enterprise-integ...@googlegroups.com.
Подробнее о функциях можно узнать на странице https://groups.google.com/groups/opt_out.
 
 

Grigory

unread,
Feb 18, 2013, 4:36:33 AM2/18/13
to enterprise...@googlegroups.com
Номера строки, как такового в excel нет. Есть в EI какой-нибудь счетчик, который можно использовать при загрузке для нумерации строк? Или как-нибудь его можно сгенерировать для каждой ячейки? Так, чтобы он был один и тот же от запуска к запуску..

понедельник, 18 февраля 2013 г., 13:25:38 UTC+4 пользователь Герман Кудяков написал:
 |----Записать 

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес enterprise-integrator+unsub...@googlegroups.com.

Герман Кудяков

unread,
Feb 18, 2013, 4:37:07 AM2/18/13
to enterprise...@googlegroups.com
Но я не понимаю какого типа объект возвращает Conn.Execute(ТекстЗапроса) и что с ним можно делать, и как потом это передать в Результат.
Или надо как-нибудь по-другому?

// тут типовой код импорта
Результат = Conn.Execute(ТекстЗапроса)

Выполняешь
Теперь у тебя в переменной 

ЭтаФорма.РезультатЗапроса

ТаблицаЗначений


В этом же окне встроенного языка (дополняешь) пишешь например 

кТЗ = ЭтаФорма.РезультатЗапроса.Скопировать();
Для Каждого Строка ИЗ кТЗ Цикл
 
Строка.Колонка1 = "Все просто";
КонецЦикла;
Результат = кТЗ;

Выделяешь написанное и выполняешь


понедельник, 18 февраля 2013 г., 13:12:13 UTC+4 пользователь Grigory написал:

Герман Кудяков

unread,
Feb 18, 2013, 4:41:13 AM2/18/13
to enterprise...@googlegroups.com
Просто можешь добавить колонку в Excel c которая пронумерует строки, если шаблон фиксированный используй обработку на встроенном языке после загрузки.
Можно по разному 

понедельник, 18 февраля 2013 г., 13:36:33 UTC+4 пользователь Grigory написал:

Grigory

unread,
Feb 18, 2013, 4:42:36 AM2/18/13
to enterprise...@googlegroups.com
Вот это похоже то, что нужно. Буду пробовать. Спасибо!

понедельник, 18 февраля 2013 г., 13:37:07 UTC+4 пользователь Герман Кудяков написал:
Reply all
Reply to author
Forward
0 new messages