Имя: Пароль:
1C
1С v8
1C и Excel объединена ли ячейка?
0 Alexprik
 
07.09.12
09:47
Каким методом можно это проверить?
1 vmv
 
07.09.12
09:50
вижуал бейскик открой в екзеле и почитай, алфавит знаешь саксонский?
2 Alexprik
 
07.09.12
09:52
(1) ))
3 Alexprik
 
07.09.12
10:00
(1) нашёл MergeCells, но это именно объединение ячейки
4 vmv
 
07.09.12
10:02
(3) +1 к силе, так и дотелепаешь до 80-го уровня, только упорство, только настойчивость, только хардкор!
5 Alexprik
 
07.09.12
10:03
(4) а подсказать не судьба? )
6 mzelensky
 
07.09.12
10:04
(1) тебе что, жена сегодня не дала? чего такой злой? Что не пост, то какой-то вброс негатива.
7 Alexprik
 
07.09.12
10:05
(6) а если по теме?
8 vmv
 
07.09.12
10:07
(6) это разминка чувак, ты с какова района?
9 mzelensky
 
07.09.12
10:10
(8) Района чего? Города?
10 smaharbA
 
07.09.12
10:14
(3) это именно, что тебе надо
+ mergearrea.address
11 Alexprik
 
07.09.12
10:18
(10) Спасибо. Большое! )
12 Alexprik
 
07.09.12
11:53
(10) странно, но

если Book.Range( "a" + Строка(СтрокаЛиста) ).MergeArrea.Address     = "a" + Строка(СтрокаЛиста) тогда


Метод объекта не обнаружен (Range)
13 smaharbA
 
07.09.12
12:00
ничего не странно, об этом не однократно говарено
14 Alexprik
 
07.09.12
12:00
(13) в чём ошибка?
15 Alexprik
 
07.09.12
12:01
(12) Range для листа или для книги? и так и так пробовал
16 Alexprik
 
07.09.12
12:02
Book = Excel.Workbooks.Open( ЭлементыФормы.ВыбранныйФайл.Значение );    
   
   ЭлементыФормы.ПолеСписка1.Видимость = Истина;
   ЭлементыФормы.Надпись2.Видимость = Истина;
   
   ЭлементыФормы.ТабличноеПоле1.Значение.Очистить();
   ЭлементыФормы.ПолеСписка1.Значение.Очистить();
   
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Начало обработки файла..." );
   
   Счётчик = 0;
   
   Профессии = Справочники.ПрофессииПрофессиональнойПодготовки;
   
   для ТекущийЛист = 1 по 1 цикл
       
       ExcelList = Book.Sheets(ТекущийЛист);
       
       Сообщить("Лист открыт!!!!");
       
       СтрокаЛиста = 2;
       
       для СтрокаЛиста = 2 по 5157 цикл
       
           если Book.Range( "a" + Строка(СтрокаЛиста) ).MergeArrea.Address     = "a" + Строка(СтрокаЛиста) тогда
               
               ТекущаяГруппа = ExcelList.Cells(СтрокаЛиста, 1).Value;
               
               НоваяГруппа = Профессии.СоздатьГруппу();
               НоваяГруппа.Наименование = ТекущаяГруппа;
               НоваяГруппа.Записать();
               
               КоличествоГрупп = КоличествоГрупп + 1;
               СтрокаЛиста = СтрокаЛиста + 1;
               
           иначе
               
               НоваяСтрока = ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
               НоваяСтрока.Код = ExcelList.Cells(СтрокаЛиста, 2).Value;        
               НоваяСтрока.Наименование = ExcelList.Cells(СтрокаЛиста, 3).Value;        
               НоваяСтрока.НаименованиеГруппы = ТекущаяГруппа;
               
               СтрокаЛиста = СтрокаЛиста + 1;
                   
               Счётчик = Счётчик + 1;
               
           КонецЕсли;
           Счётчик = Счётчик + 1;
           
       КонецЦикла;    
       
   КонецЦикла;
   
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Обработано строк: " + Строка(Счётчик) );
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Загрузка завершена." );
   
   Сообщить("Импорт данных успешно завершен.");
   
   Исключение
       Сообщить(ОписаниеОшибки());
       Excel.Application.Quit();
   КонецПопытки;
17 smaharbA
 
07.09.12
12:04
в самом начале нужно разделять объекты и обращаться к их методам

Ексель=
Книги=Ексель.Workbooks;
Книга=Книги.Item(NNN); или Книга=Книги.Add(); или Книга=Книги.Open(Файл);
Листы=Книга.WorkSheets;
Лист=Листы.Item(NNN); или Лист=Листы.Add();
Ячейки=Лист.Cells;
и т.д.
18 Alexprik
 
07.09.12
12:09
Попытка
       Excel = новый COMОбъект("Excel.Application");
   Исключение
       Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
       Возврат;
   КонецПопытки;    
   
   Попытка
   
   
   Books = Excel.Workbooks;    
   Book = Books.Open( ЭлементыФормы.ВыбранныйФайл.Значение );
   Lists = Book.WorkSheets;
   
   ЭлементыФормы.ПолеСписка1.Видимость = Истина;
   ЭлементыФормы.Надпись2.Видимость = Истина;
   
   ЭлементыФормы.ТабличноеПоле1.Значение.Очистить();
   ЭлементыФормы.ПолеСписка1.Значение.Очистить();
   
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Начало обработки файла..." );
   
   Счётчик = 0;
   
   Профессии = Справочники.ПрофессииПрофессиональнойПодготовки;
   
   для ТекущийЛист = 1 по 1 цикл
       
       ExcelList = Lists.Item(ТекущийЛист);
       
       Сообщить("Лист открыт!!!!");
       
       СтрокаЛиста = 2;
       
       для СтрокаЛиста = 2 по 5157 цикл
       
           если ExcelList.Range( "a" + Строка(СтрокаЛиста) ).MergeArrea.Address     = "a" + Строка(СтрокаЛиста) тогда
               
               ТекущаяГруппа = ExcelList.Cells(СтрокаЛиста, 1).Value;
               
               НоваяГруппа = Профессии.СоздатьГруппу();
               НоваяГруппа.Наименование = ТекущаяГруппа;
               НоваяГруппа.Записать();
               
               КоличествоГрупп = КоличествоГрупп + 1;
               СтрокаЛиста = СтрокаЛиста + 1;
               
           иначе
               
               НоваяСтрока = ЭлементыФормы.ТабличноеПоле1.Значение.Добавить();
               НоваяСтрока.Код = ExcelList.Cells(СтрокаЛиста, 2).Value;        
               НоваяСтрока.Наименование = ExcelList.Cells(СтрокаЛиста, 3).Value;        
               НоваяСтрока.НаименованиеГруппы = ТекущаяГруппа;
               
               СтрокаЛиста = СтрокаЛиста + 1;
                   
               Счётчик = Счётчик + 1;
               
           КонецЕсли;
           Счётчик = Счётчик + 1;
           
       КонецЦикла;    
       
   КонецЦикла;
   
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Обработано строк: " + Строка(Счётчик) );
   ЭлементыФормы.ПолеСписка1.Значение.Добавить( "Загрузка завершена." );
   
   Сообщить("Импорт данных успешно завершен.");
   
   Исключение
       Сообщить(ОписаниеОшибки());
       Excel.Application.Quit();
   КонецПопытки;    



Поле объекта не обнаружено (MergeArrea)
19 Alexprik
 
07.09.12
12:26
Всё решилось так

ExcelList.Range( "A" + Строка(СтрокаЛиста) ).MergeCells
20 Alexprik
 
07.09.12
12:26
Возвращает true или false
21 smaharbA
 
07.09.12
12:33
MergeArea
22 smaharbA
 
07.09.12
12:35
(20) о чем в (4) и (10)