Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
4 / 4 / 4
Регистрация: 12.07.2011
Сообщений: 556
1

Выгрузка ТЧ обработки В Excel

02.04.2018, 10:14. Просмотров 1775. Ответов 3
Метки нет (Все метки)


Здравствуйте. В собственной конфигурации 1С 8.3 есть обработка, у которой есть реквизит формы: ПереченьРабот - Таблица Значений. Заполняю ТЧ так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
&НаСервере
Процедура ПолучитьПереченьРабот()
    
    Структура = Новый Структура();
    
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОтработаноЧасовОбороты.Сотрудник.ФИОПолное КАК ФИО,
                   |    ОтработаноЧасовОбороты.Сотрудник.Должность.Наименование КАК Должность,
                   |    ОтработаноЧасовОбороты.Сотрудник.Подразделение.Наименование КАК Подразделение,
                   |    ОтработаноЧасовОбороты.ПроектныйДокумент.НаименованиеРаздела КАК НаименованиеРаздела,
                   |    ОтработаноЧасовОбороты.ПроектныйДокумент.НазваниеДокумента КАК НаименованиеДокумента,
                   |    ОтработаноЧасовОбороты.КоличествоЧасовРасход КАК ЧасыФакт,
                   |    ОтработаноЧасовОбороты.Сотрудник.Код КАК ТабНомер,
                   |    ОтработаноЧасовОбороты.ПроектныйДокумент.Наименование КАК ШифрДокумента,
                   |    ОтработаноЧасовОбороты.Назначение.КолЧасовПлан КАК ЧасыПлан,
                   |    ОтработаноЧасовОбороты.ПроектныйДокумент.Примечание КАК Примечание,
                   |    ОтработаноЧасовОбороты.Назначение.ДатаНачала КАК ДатаНачалаПлан,
                   |    ОтработаноЧасовОбороты.Назначение.ДатаОкончанияПлан КАК ДатаОкончанияПлан,
                   |    ОтработаноЧасовОбороты.Назначение.ДатаОкончанияФакт КАК ДатаОкончанияФакт
                   |ИЗ
                   |    РегистрНакопления.ОтработаноЧасов.Обороты(
                   |            ,
                   |            ,
                   |            ,
                   |            Объект = &Объект
                   |                И Назначение.ДатаОкончанияФакт <> ДАТАВРЕМЯ(1, 1, 1)) КАК ОтработаноЧасовОбороты";
    Запрос.УстановитьПараметр("Объект",Объект_);    
    ПереченьРабот.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
Затем на клиенте выгружаю полученную ТЗ в файл Excel:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаКлиенте
Процедура СформироватьОтчет(Команда)
 
    ПутьФайлШаблона = Объект.ИмяФайлаШаблона;
    
    ПутьФайлТаблицыГрафиков = Объект.ИмяФайлаГрафиков;
 
    Excel = Новый COMОбъект("Excel.Application");
    Книга = Excel.WorkBooks.Add();
..........................................................................................................
Лист = Книга.WorkSheets("Перечень документов");
    ПолучитьПереченьРабот();
        сообщить(ПереченьРабот.Количество());
    НомерСтроки = 1;
    Для Каждого Строка Из ПереченьРабот Цикл
        Лист.Range("A"+Строка(НомерСтроки+8)).Value = НомерСтроки;
        Лист.Range("B"+Строка(НомерСтроки+8)).Value = Строка.ТабНомер;
        Лист.Range("C"+Строка(НомерСтроки+8)).Value = Строка.ФИО;
        Лист.Range("D"+Строка(НомерСтроки+8)).Value = Строка.Должность;
        Лист.Range("E"+Строка(НомерСтроки+8)).Value = Строка.Подразделение;
        Лист.Range("F"+Строка(НомерСтроки+8)).Value = Строка.НаименованиеРаздела;
        Лист.Range("G"+Строка(НомерСтроки+8)).Value = Строка.НаименованиеДокумента;
        Лист.Range("H"+Строка(НомерСтроки+8)).Value = Строка.ШифрДокумента; 
        Лист.Range("I"+Строка(НомерСтроки+8)).Value = Строка.Примечание;
        Лист.Range("J"+Строка(НомерСтроки+8)).Value = Строка.ЧасыПлан;
        Лист.Range("K"+Строка(НомерСтроки+8)).Value = Строка.ДатаНачалаПлан;
        Лист.Range("L"+Строка(НомерСтроки+8)).Value = Строка.ДатаОкончанияПлан;
        Лист.Range("M"+Строка(НомерСтроки+8)).Value = Строка.ЧасыФакт;
        Лист.Range("N"+Строка(НомерСтроки+8)).Value = Строка.ДатаОкончанияФакт;
        НомерСтроки = НомерСтроки + 1;
    КонецЦикла;
при работе цикла вылетает ошибка:
{Обработка.КвартальныйОтчетПоУправлениюПроектом.Форма.Форма. Форма(52)}: Ошибка при вызове метода контекста (Range)
Лист.Range("A"+Строка(НомерСтроки+8)).Value = НомерСтроки;
по причине:
Произошла исключительная ситуация (0x800a03ec)

такая ошибка вылетает при большом количестве строк в ТЗ - например для значения &Объект , на котором выскочила ошибка, количество строк в ТЗ - 2212. ТЗ размером 310,410,500 строк выгружались при этом нормально. Что не так? как решить проблему? помогите пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2018, 10:14
Ответы с готовыми решениями:

Выгрузка в Excel
Доброго времени суток! Есть задача выгрузки данных в Excel, делаю выгрузку Attachment: Set wObj...

Выгрузка в excel
Как сделать выгрузку в Excel справочника и документа

Выгрузка в Excel
Добрый день! Может кто сталкивался с такой проблемой. У меня стоит офис 2010, у пользователя офис...

Выгрузка в Excel
Здравствуйте! Возникла проблема! Нужно из MS Access перенести в Excel. Вроде банально, но нужно...

3
206 / 180 / 31
Регистрация: 24.10.2011
Сообщений: 735
02.04.2018, 14:43 2
Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

Это из за любви 1с пихать в качестве деления тысяч, млн и прочего непечатный пробел, замени
1C
1
Строка(НомерСтроки+8)
на
1C
1
Формат(НомерСтроки+8, "ЧГ=0")
А по сути я бы рекомендовал создать макет, заполнить его и сохранить как файл Экселя, тут вы не будете привязаны к наличию у клиента библиотек офиса.
1
4 / 4 / 4
Регистрация: 12.07.2011
Сообщений: 556
02.04.2018, 14:50  [ТС] 3
уже догадался тоже до этого.Спасибо за помощь
0
206 / 180 / 31
Регистрация: 24.10.2011
Сообщений: 735
02.04.2018, 14:52 4
Пожалуйста, на будущее оставляйте комментарий, что проблема решена.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2018, 14:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Выгрузка в Excel
Добрый день! Подскажите пожалуйста как максимально просто выгрузить данные из таблицы Оракла в...

Выгрузка в Excel
Выгружаю данные в Эксель, формирую документ, все работает, кроме того что ни как не могу задать...

Выгрузка в Excel
Привет. Вопрос: как выгрузить в Excel только отмеченные категории и информацию по ним? Если...

Выгрузка в Excel
Хочу организовать выгрузку информации в Excel, работать нужно с тремя листами, но сохраняется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.