Для Ном=1 По КолРек Цикл ExcelApp.Cells(1,Ном).Value=СпсРек.ПолучитьЗначение(Ном); КонецЦикла;
Стр=1;
Если ВыбЭлем.Выбран() > 0 Тогда Спр.ВключатьПодчиненные(1); Если ВыбЭлем.ЭтоГруппа()=1 Тогда Спр.ИспользоватьРодителя(ВыбЭлем); КонецЕсли; КонецЕсли;
НомСорт=СпсСорт.ТекущаяСтрока();
Если НомСорт=2 Тогда Спр.ПорядокКодов(); ИначеЕсли НомСорт=3 Тогда Спр.ПорядокНаименований(); ИначеЕсли НомСорт > 3 Тогда Спр.ПорядокРеквизита(СокрЛП(СпсСорт.ПолучитьЗначение(НомСорт))); КонецЕсли;
Если ОбрПорядок > 0 Тогда Спр.ОбратныйПорядок(); КонецЕсли;
Спр.ИспользоватьДату(РабочаяДата());
Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() > 0 Цикл Если Спр.ПометкаУдаления() > 0 Тогда Продолжить; КонецЕсли; Если (ВыбЭлем.Выбран()=1) И (ВыбЭлем.ЭтоГруппа()=0) И (ВыбЭлем <> Спр.ТекущийЭлемент() ) Тогда Продолжить; КонецЕсли; Стр=Стр+1; Если Спр.ЭтоГруппа() > 0 Тогда Если Структурировать > 0 Тогда Для НомУр=0 По КолУр-Спр.Уровень() Цикл СтрУр=Спс.ПолучитьЗначение(КолУр-НомУр); Если СтрУр <> 0 Тогда ExcelApp.Rows(СокрЛп(Строка(СтрУр+1))+":"+СокрЛп(Строка(Стр-1))).Select(); ExcelApp.Selection.Rows.Group(); Если КолУр-НомУр <> Спр.Уровень() Тогда Стр=Стр+1; Спс.УстановитьЗначение(КолУр-НомУр,0); КонецЕсли; КонецЕсли; КонецЦикла; Спс.УстановитьЗначение(Спр.Уровень(),Стр); КонецЕсли; КонецЕсли;
Для Ном=1 По КолРек Цикл ИмяРек=СокрЛП(СпсРек.ПолучитьЗначение(Ном)); Если СокрЛП(СпсРек.ПолучитьЗначение(Ном))="Id" Тогда МЗнач=ЗначениеВСтрокуВнутр(Спр.ТекущийЭлемент()); ИначеЕсли СокрЛП(СпсРек.ПолучитьЗначение(Ном))="Код" Тогда МЗнач=Спр.Код; ИначеЕсли СокрЛП(СпсРек.ПолучитьЗначение(Ном))="Уровень" Тогда МЗнач=Спр.Уровень(); ИначеЕсли СокрЛП(СпсРек.ПолучитьЗначение(Ном))="Наименование" Тогда МЗнач=Спр.Наименование; ИначеЕсли СокрЛП(СпсРек.ПолучитьЗначение(Ном))="Группа" Тогда МЗнач=Спр.ЭтоГруппа(); ИначеЕсли СпсТипСпр.НайтиЗначение(ИмяРек) > 0 Тогда МЗнач=Спр.ПолучитьАтрибут(ИмяРек).Наименование; ИначеЕсли СпсТипПер.НайтиЗначение(ИмяРек) > 0 Тогда МЗнач=Спр.ПолучитьАтрибут(ИмяРек).Идентификатор(); ИначеЕсли СпсТипСч.НайтиЗначение(ИмяРек) > 0 Тогда МЗнач=Спр.ПолучитьАтрибут(ИмяРек).Код+" "+Спр.ПолучитьАтрибут(ИмяРек).Наименование; ИначеЕсли СпсТипВРас.НайтиЗначение(ИмяРек) > 0 Тогда МЗнач=Спр.ПолучитьАтрибут(ИмяРек).Наименование; Иначе МЗнач=Спр.ПолучитьАтрибут(ИмяРек); КонецЕсли; ExcelApp.Cells(Стр,Ном).Value=МЗнач; Если (Спр.ЭтоГруппа() > 0) И (ВыдГруппу > 0) Тогда ExcelApp.Cells(Стр,Ном).Font.Bold=1; КонецЕсли; КонецЦикла; //Если Стр> 200 Тогда // Прервать; //КонецЕсли;
КонецЦикла;
Если Структурировать > 0 Тогда Для НомУр=0 По КолУр-1 Цикл СтрУр=Спс.ПолучитьЗначение(КолУр-НомУр); Если СтрУр <> 0 Тогда ExcelApp.Rows(СокрЛп(Строка(СтрУр+1))+":"+СокрЛп(Строка(Стр))).Select(); ExcelApp.Selection.Rows.Group(); Стр=Стр+1; КонецЕсли; КонецЦикла; КонецЕсли;
Страница.Outline.SummaryRow = 0; ExcelApp.Visible=1; КонецПроцедуры //***************** Процедура ПриОткрытии() Форма.СписСпр.ВыполнятьФормулуТолькоПриИзменении(1); СписСпр.ТекущаяСтрока(1); УпрДоступ(); КонецПроцедуры; //***************** ТипСпр=СоздатьОбъект("ТаблицаЗначений"); ТипСпр.НоваяКолонка("Представление"); ТипСпр.НоваяКолонка("Идентификатор"); ТипСпр.НоваяКолонка("Номер"); КолСтр=0; Для Ном=1 По Метаданные.Справочник() Цикл Если Метаданные.Справочник(Ном).Владелец.Выбран() = 0 Тогда КолСтр=КолСтр+1; СписСпр.ДобавитьЗначение(Метаданные.Справочник(Ном).Представление()); ТипСпр.НоваяСтрока(КолСтр); ТипСпр.УстановитьЗначение(КолСтр,"Представление",Метаданные.Справочник(Ном).Представление()); ТипСпр.УстановитьЗначение(КолСтр,"Идентификатор",Метаданные.Справочник(Ном).Идентификатор); ТипСпр.УстановитьЗначение(КолСтр,"Номер",Ном); КонецЕсли; КонецЦикла; Структурировать=1; ВыдГруппу = 1; СпсТипСпр=СоздатьОбъект("СписокЗначений"); СпсТипПер=СоздатьОбъект("СписокЗначений"); СпсТипСч=СоздатьОбъект("СписокЗначений"); СпсТипВРас=СоздатьОбъект("СписокЗначений");
Попытка ExcelApp = СоздатьОбъект("Excel.Application"); Исключение Предупреждение(ОписаниеОшибки()+"; программа Excel не установлена на данном компьютере!"); СтатусВозврата(0); КонецПопытки;
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = "@"; или так Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = 4; или так Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = "0000000000"; //количество нулей=количеству разрядов в коде
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!