|
Управляемая форма запись данных из XLS (импорт) | ☑ | ||
---|---|---|---|---|
0
immunel1978
23.04.12
✎
14:30
|
Есть рабочий код по импорту данных в ТЧ документа (написан для внешней обработки). Подскажите как вставить хотя бы одну строку, чтобы в ТЧ управляемой формы попадали данные из импортированного файла XLS.
Процедура ЗагрузитьизXLS(Команда) // Вставить содержимое обработчика. Если ПустаяСтрока(ИмяФайла) Тогда Предупреждение("Для запуска обработки необходимо предварительно выбрать файл Microsoft Excel."); Возврат; КонецЕсли; Попытка // Загрузка Microsoft Excel Состояние("Загрузка Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Попытка // Открытие файла Microsoft Excel Состояние("Открытие файла Microsoft Excel..."); ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла); Исключение Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; Попытка // Обработка файла Microsoft Excel Состояние("Обработка файла Microsoft Excel..."); // Читаем данные первого листа книги ExcelЛист = ExcelФайл.Sheets(1); // Определить количество строк и колонок выбранного листа книги Excel xlCellTypeLastCell = 11; ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row; ExcelПоследняяКолонка = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column; Исключение Сообщить("Ошибка открытия листа №1 Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); // Закрыть COM соединение для экономии памяти ExcelПриложение.Quit(); КонецПопытки; // Создание описателя типов для таблицы значений КЧ = Новый КвалификаторыЧисла(15,2); КЧ2 = Новый КвалификаторыЧисла(15,4); КС = Новый КвалификаторыСтроки(50); Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС); Массив.Очистить(); Массив.Добавить(Тип("Число")); ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ); ОписаниеТиповЧ2 = Новый ОписаниеТипов(Массив, , ,КЧ2); // Очистить предыдущие значения // СтрокаТабличнойЧасти=Элементы.Энергоносители2012.ТекущиеДанные; ТаблицаДокумента.Очистить(); ТаблицаДокумента.Колонки.Очистить(); |
|||
1
ProProg
23.04.12
✎
14:31
|
Могу продать готовое чтобы ты не мучался. а сразу научился всему по работе с УФ и загрузкой из экселя
|
|||
2
ProProg
23.04.12
✎
14:31
|
а то с такими темпами ты её еще полгода будешь писать и вылизывать
|
|||
3
immunel1978
23.04.12
✎
14:37
|
// Создать колонки табличного документа
ТаблицаДокумента.Колонки.Добавить("Номер",ОписаниеТиповС,"Номер",3); //эту строку писал когда экспорт во внешней обработке // СтрокаТабличнойЧасти=Элементы.Энергоносители2012.ТекущиеДанные; СтрокаТабличнойЧасти.СуточнаяВыработкаЭлектроэнергии=СтрокаТабличнойЧасти.РасчетнаяСуточнаяПотребностьГаза-СтрокаТабличнойЧасти.ОбщееПоЗаводуВыработкаГаза; // вот эту строку надо переделать // ТаблицаДокумента.Колонки.Добавить("СуточнаяВыработкаЭлектроэнергии",ОписаниеТиповЧ,"СуточнаяВыработкаЭлектроэнергии",6); |
|||
4
immunel1978
23.04.12
✎
14:38
|
полгода врятли - верхний код переделывал с нуля за день
|
|||
5
immunel1978
23.04.12
✎
14:39
|
могу купить конечно, но сколько стоит и мне тогда если так быстро - то в теч. дня.
|
|||
6
sapphire
23.04.12
✎
14:40
|
(0) Наверное, стоит посмотреть РеквизитФормыВЗначение & ЗначениеВРеквизитФормы :)
|
|||
7
ProProg
23.04.12
✎
14:40
|
||||
8
sapphire
23.04.12
✎
14:42
|
(7) И? Проще "ЗагрузкаДанныхИзТабличногоДокумента.epf" на УФ переписать.
|
|||
9
immunel1978
23.04.12
✎
14:52
|
ну да, вот и переписываю - у меня проблема - только как Одну строчку переделать
СтрокаТабличнойЧасти=Элементы.Энергоносители2012.ТекущиеДанные; // Захватываем ТЧ документа УФ СтрокаТабличнойЧасти.СуточнаяВыработкаЭлектроэнергии=СтрокаТабличнойЧасти.РасчетнаяСуточнаяПотребностьГаза-СтрокаТабличнойЧасти.ОбщееПоЗаводуВыработкаГаза; // вот эту строку надо переделать - где сопоставить с // ТаблицаДокумента.Колонки.Добавить("СуточнаяВыработкаЭлектроэнергии",ОписаниеТиповЧ,"СуточнаяВыработкаЭлектроэнергии",6); - |
|||
10
immunel1978
23.04.12
✎
14:52
|
хотя по моему понял - это в цикле нужно делать
Стр.Номер = Строка-6; Попытка Стр.СуточнаяВыработкаэлектроэнергии = ExcelЛист.Cells(Строка, 3).Value; // считываем со строки 3 и 7-го столбца |
|||
11
immunel1978
23.04.12
✎
14:54
|
(7) функционал слишком навороченный и его опять прийдется переделывать под мое ТЗ. может быть и научился, но цена.......... проще литературу и память докупить. Спс за предложение
|
|||
12
sapphire
23.04.12
✎
15:03
|
(0)>> Подскажите как вставить хотя бы одну строку, чтобы в ТЧ управляемой формы попадали данные из импортированного файла XLS
Предполагается, что "ТЧ управляемой формы" = {ТабличнаяЧасть}, тогда &НаСервере Процедура ЗагрузитьТЧ(ИмяТабличнойЧасти,ТаблицаЗначений) ЭтотОбъект = РеквизитФормыВЗначение("Объект"); ЭтаТабличнаяЧасть=ЭтотОбъект[ИмяТабличнойЧасти]; ЭтаТабличнаяЧасть.Загрузить(ТаблицаЗначений); ЗначениеВРеквизитФормы(ЭтотОбъект,"Объект"); КонецПроцедуры //Останется только прочитать данные из XLS и положить в таблицу значений |
|||
13
immunel1978
26.04.12
✎
10:58
|
Синтаксис:
ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Данные формы. <Тип> (обязательный) Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент. Примечание: Нельзя преобразовать в объект типа Табличная часть. |
|||
14
immunel1978
26.04.12
✎
11:02
|
то есть код надо еще переделать.... не знаю только как.
// Отобразить результаты загрузки в форме элемента ЭлементыФормы.ТаблицаДокумента.Значение = ТаблицаДокумента; ЭлементыФормы.ТаблицаДокумента.СоздатьКолонки(); КонецПроцедуры // ЧтениеXLSФайла(Элемент) А мне как раз нужно после чтения файла ЗАГРУЗИТЬ Процедура ЗагрузитьТЧ(ИмяТабличнойЧасти,ТаблицаЗначений) |
|||
15
immunel1978
26.04.12
✎
11:02
|
// Отобразить результаты загрузки в форме элемента
ЭлементыФормы.ТаблицаДокумента.Значение = ТаблицаДокумента; ЭлементыФормы.ТаблицаДокумента.СоздатьКолонки(); КонецПроцедуры // ЧтениеXLSФайла(Элемент) ---- Это конец рабочей процедуры чтения файла |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |