helpf.pro
Регистрация

v8.3: Получение координат и данных из ТабличногоДокумента

medved577
07.12.2015 18:45Прочитано: 5279

Изучаю 8.3

Есть внешняя обработка, на форме есть реквизит ТабДокумент типа Табличный документ. Он заполняется данными из эксельного файла. При двойном нажатии данные редактируются - так и должно быть, Хотелось бы выделить строку, нажать на кнопку и чтобы данные перенеслись в другой табличный документ. Как это можно реализовать?

Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
07.12.2015 22:43Ответ № 1

Покажи код которым загрузил из Екселя в таб документ - интересно )

выдели область в табдоке, нажми на кнопку и в отладчике посмотри ТабДок - там будет, точно не помню как называется, но вроде Выделенные данные, через них можно получить значения из ТабДока и добавить их в ТабДок2

medved577
08.12.2015 13:20Ответ № 2

Это внешняя обработка, была бы встроенная - так и сделал бы. На данный момент разобрался:

1. При нажатии на кнопку получить координаты ячейки - ТабличныйДокумент.ТекущаяОбласть.Имя, получаем координаты вида R6:С4

2. Получить значение ячейки - ТабличныйДокумент.ТекущаяОбласть.Текст

Теперь бы разобраться бы как это значение добавить в ТабличныйДокумент2, причем целиком строку 

medved577
08.12.2015 13:55Ответ № 3

Как загружаю в эксель (код не мой, выдернул нужное из чужой обработки, xlLastCell = 11)

Код 1C v 8.3
 	ТабличныйДокумент = Новый ТабличныйДокумент;

ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;
Для Column = 1 По ColumnCount Цикл
ТабличныйДокумент.Область("C" + Формат(Column, "ЧГ=")).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
КонецЦикла;
Для Row = 1 По RowCount Цикл

Для Column = 1 По ColumnCount Цикл
ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Text;
КонецЦикла;

КонецЦикла;

Excel.WorkBooks.Close();


Mokey
08.12.2015 16:03Ответ № 4

Можно выделить программно всю строку и пройтись по ячейкам, проверяя, есть ли в них текст.

Например, область в виде строки вот так указывается в коде:

ТабличныйДокумент.Область("R2")[/pre]

а лучше и правильней юзать 

ТабличныйДокумент.ВыделенныеОбласти[/pre]
medved577
08.12.2015 16:22Ответ № 5

А как добавить  в другой Табличный документ?

Mokey
09.12.2015 16:56Ответ № 6

Заполнить макет значениями, полученными из выделенной области, примерно так же, как Вы заполняете из экселя, если нет форматированного макета

ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст =[/pre]
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.