Показано с 1 по 3 из 3
-
30.07.2012, 18:03 #1
- Регистрация
- 26.07.2012
- Сообщений
- 2
- Сказал(а) спасибо
- 1
- Поблагодарили 0 раз(а) в 0 сообщениях
Доработать выгрузку в excel
Приветствую.
Помогите доработать выгрузку справочника в Excel
Код:Попытка Попытка // Загрузка Microsoft Excel Состояние("Выгрузка данных из 1С в Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; // Создадим книгу, по умолчанию в ней уже есть листы Книга = ExcelПриложение.WorkBooks.Add(); // Используем первый лист книги Excel Лист = Книга.WorkSheets(1); // Сформировать шапку документа в первой строке листа Колонка = 1; Для каждого стр из ТП цикл Если стр.Выгружать Тогда Лист.Cells(1, Колонка).Value = стр.НазваниеРеквизита; Колонка = Колонка + 1; КонецЕсли; КонецЦикла; // Выгрузить данные справочника выборка = Справочники[ИмяСправочника].Выбрать(); СтрокаЛиста = 2; Пока выборка.Следующий() Цикл Колонка = 1; Для каждого стр из ТП цикл Если стр.Выгружать Тогда Попытка // Установим значение в строке и колонке Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда // Установним формат для типа Число Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00"; Лист.Cells(СтрокаЛиста, Колонка).Value = Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0"); иначе // Для всех других типов установим формат "Текстовый" Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@"; Лист.Cells(СтрокаЛиста, Колонка).Value = Строка(выборка[стр.НазваниеРеквизита]); КонецЕсли; исключение // Если значение реквизита справочника постое Сообщить("Ошибка установки значения для: " + выборка[стр.НазваниеРеквизита]); Сообщить("Стр: " +СтрокаЛиста+ " Кол: " + Колонка+ " Рек: " + стр.НазваниеРеквизита); КонецПопытки; Колонка = Колонка + 1; КонецЕсли; Колонка = Колонка + 1; КонецЦикла; СтрокаЛиста = СтрокаЛиста + 1; Состояние("Экспорт из 1С в Excel " + СтрокаЛиста); КонецЦикла; // Сохраним созданныую книгу в файл xls Книга.SaveAs(имяФайла); ExcelПриложение.Quit(); // Записать xls файл Сообщить("Файл выгружен успешно: " + имяФайла ); Исключение // Обработка ошибок экспорта данных из 1С в Excel Сообщить("Ошибка записи данных файла :" + имяФайла); Сообщить(ОписаниеОшибки()); Попытка ExcelПриложение.Quit(); Исключение КонецПопытки; КонецПопытки;
Последний раз редактировалось Stormday; 30.07.2012 в 19:07.
-
30.07.2012, 20:19 #2
- Регистрация
- 26.07.2012
- Сообщений
- 2
- Сказал(а) спасибо
- 1
- Поблагодарили 0 раз(а) в 0 сообщениях
Задача сводится к тому, как ПРАВИЛЬНО обратиться к реквизитам Элемента Формы.
Найдите, пожалуйста, ошибку в коде:
Код:Для каждого стр из Справочники.Контрагенты.Формы.ФормаЭлемента.НаборКонтактнойИнформации цикл Попытка Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00"; Лист.Cells(СтрокаЛиста, Колонка).Value = Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0"); иначе Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@"; Лист.Cells(СтрокаЛиста, Колонка).Value = Строка(выборка[стр.НазваниеРеквизита]); КонецЕсли; исключение Сообщить("Ошибка установки значения для: " + выборка[стр.НазваниеРеквизита]); Сообщить("Стр: " +СтрокаЛиста+ " Кол: " + Колонка+ " Рек: " + стр.НазваниеРеквизита); КонецПопытки; Колонка = Колонка + 1; КонецЦикла;
-
31.07.2012, 10:45 #3
- Регистрация
- 07.06.2012
- Сообщений
- 5
- Сказал(а) спасибо
- 0
- Поблагодарили 4 раз(а) в 3 сообщениях
Да какая ошибка? У вас вообще нет ни какого представления об 1С. То что вы видите на форме элемента справочника, это куча дополнительной информации из других объектов 1С, информация может быть из других справочников, регистров сведений, регистров накоплений, документов и т.д.
1.вам сначала надо решить какие поля(данные) справочника вы будете выгружать.
2.постороить запрос ко всем нужным объектам что бы получить эти данные.
Затем, уже результат запроса записывать куда вам необходимо.
//ваш код
Для каждого стр из Справочники.Контрагенты.Фо рмы.ФормаЭлемента.НаборКон тактнойИнформации цикл
Полный бред! такого свойства .Формы. нет. Есть метод ПолучитьФорму(...) который вернет вам пустую форму.
-
Социальные закладки