Имя: Пароль:
1C
 
Заполнить ПТД из Excel
0 pessok
 
17.12.10
13:04
Всем добрый день. Вот появилась задача - на форме есть поле табличного документа, сформированное программой. Так же существуют .xls-файлы из которых нужно выдрать информацию и залить в это птд. Структура таблиц 1с/xls практически одинаковая, за исключением области в 1С, для записи информации в тч. Т.е. мне нужно вызвать таблицу экселя, обойти ее значения, потом обойти значения птд на форме документа и, если текст в определенных ячейках одинаков, то вставить нужную инфу в птд. Вроде бы все не очень сложно, но не могу понять, как мне обойти строки самого птд? Или же птд выгружать в xls, сравнивать значения и потом загружать птд обратно? И, емнип, в птд xls не загружается, только mxl. В общем, если кто-то сталкивался с подобной задачей или имеет конструктивные мысли - прошу помощи :)
З.Ы. Писать в ТЧ документа  - не предлагать. Нужна именно картинка "как в экселе" :(
1 PVV65
 
17.12.10
13:07
Для НомСтроки = 1 По ТабДок.ВысотаТаблицы Цикл
2 pessok
 
17.12.10
13:11
(1) Спасибо, попробую. Вот тут у меня мозг совсем отключился. А как из внешней обработки добраться до элемента формы документа?

ТД = Документ.ПолучитьОбъект().ПолучитьФорму().ЭлементыФормы.ПолеТабличногоДокумента1;

Выдает - Поле недоступно для чтения...
3 PVV65
 
17.12.10
13:17
(2) Вот этого не понял
4 pessok
 
17.12.10
13:21
(3) Я буду обходить обработкой из эксель и птд. Выбираю на форме обработки документ, пишу его в Документ. Теперь мне нужно добраться до элементов формы этоо документа, т.к. птд не связано ни с каким реквизитом. Точнее он сохраняется в ХЗ, но суть не в этом. Короче говоря, мне нужно обработкой добраться до элементов формы документа :)
5 pessok
 
17.12.10
13:22
+(3) Я буду обходить обработкой И эксель и птд.
6 PVV65
 
17.12.10
13:25
(4) Я так понимаю, что у тебя одновременно открыта форма документа с птд и обработка, которая хочет писать в этот птд?
7 pessok
 
17.12.10
13:32
(6) Угу. Я обработкой открываю форму, и начинаю писать :)
8 pessok
 
17.12.10
13:36
+(6) /me дятло. /me забыл открыть форму :)
9 PVV65
 
17.12.10
13:42
(7) Если уж так, то напиши в форме документа экспортную процедуру, в которой будет происходить обработка тпд и в которая будет вызываться из обработки.
Хотя с трудом все это понимаю.

Делал бы все в обработке, а результат записывал в док.
10 Eugeneer
 
17.12.10
13:55
Все очень просто.
Считываешь эксель в таблицу значений, загоняешь ПТД тоже в таблицу значений и без головняков сливаешь и сравниваешь. результат выводишь куда хочешь дальше.
11 Eugeneer
 
17.12.10
13:55
А вообще что за задача?
12 pessok
 
17.12.10
14:26
(10) ТЗ врядли выйдет :( Но идея неплохая, надо подумать на этот счет...
(11) Переводим хитрую отчетность для клиентов из экселя в 1С. из ПТД потом формируем табчасть, ее в регистр, а регистр уже обрабатываем для отчета, который кладем на сайт. Вот такая вот хрень :)
13 pessok
 
17.12.10
14:27
(9) Я так и делаю :)
14 Eugeneer
 
17.12.10
14:55
(12) и чем это отличается от обычной загрузки?
15 pessok
 
17.12.10
15:03
(14) Какой именно загрузки?) По сути - ничем не отличается, просто в ПТД надо загрузить данные с экселя, в соответствии со значениями определенных областей.
16 Eugeneer
 
17.12.10
15:10
Есть у меня нечто подобное. но это другая разработка и платная.
Тебе рекомендую загонять загрузку экселя в таблицу значений.
и по ней уже можно что угодно обработать т.к. методов и гибкости больше.
17 Eugeneer
 
17.12.10
15:11
Есть у меня пример. но дать бесплатно не могу.
18 pessok
 
17.12.10
15:22
почти дописал. осталось заставить правильно парсить объединения ячеек. пока гемор...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший