Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Выгрузка данных в Excel из ЗУП 3.1

Выгрузка данных в Excel из ЗУП 3.1
Я
   suharik
 
17.05.18 - 11:16
Всем привет, кто подскажет в чем проблема?

&НаСервере
Процедура ВыгрузкаВЭксель()
    
    Куда = Строка(ПутьКФайлу+"ЗУП.xls");
    
    Таблица = Новый COMObject("Excel.Application");
    
    Книга = Таблица.Workbooks.Open(Куда);
    Книга.Visible = 0;
    
    Книга.ActiveWindow.DisplayWorkbookTabs = 1;
    Книга.ActiveWindow.TabRatio = 0.6;
    Книга.DisplayAlerts = ЛОЖЬ;
    
    Лист = Книга.WorkSheets(1);
    
    // Дальше вставляем данные

    Запрос = Новый 
    Запрос(
    "ВЫБРАТЬ
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Ссылка.Дата КАК Дата,
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Ссылка.Организация КАК Организация,
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.ФизическоеЛицо КАК ФизическоеЛицо,
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Подразделение КАК Подразделение,
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.ВидНачисленияОплатыТрудаДляНУ КАК ВидНачисленияОплатыТрудаДляНУ,
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Сумма КАК Сумма
    |ИЗ
    |    Документ.ОтражениеЗарплатыВБухучете.НачисленнаяЗарплатаИВзносы КАК ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы
    |ГДЕ
    |    ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Ссылка.Дата МЕЖДУ &СДаты И &ПоДату
    |    И ОтражениеЗарплатыВБухучетеНачисленнаяЗарплатаИВзносы.Ссылка.Организация = &Организация");
    Запрос.УстановитьПараметр("СДаты", СДаты);
    Запрос.УстановитьПараметр("ПоДату", ПоДату);
    Запрос.УстановитьПараметр("Организация", Организация);
    
    Результат = Запрос.Выполнить().Выбрать();
    Ном = 1;
    Пока Результат.Следующий() Цикл
        
        Лист.cells(Ном,1).value = Результат.Дата;
        Лист.cells(Ном,2).value = Результат.Организация;
        Лист.cells(Ном,3).value = Результат.ФизическоеЛицо;
        Лист.cells(Ном,4).value = Результат.Подразделение;
        Лист.cells(Ном,5).value = Результат.ВидНачисленияОплатыТрудаДляНУ;
        Лист.cells(Ном,6).value = Результат.Сумма;
        
        Ном = Ном + 1;
        
    КонецЦикла;
        
    Попытка
        Книга.SaveAs(Куда, 18);
    Исключение
        Сообщить(ОписаниеОшибки() + ". Файл не сохранен!");
    КонецПопытки;
    
    Таблица.quit();
    
КонецПроцедуры


&НаКлиенте
Процедура ПутьКфайлуНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = ЛОЖЬ;
    
    РежимДиалога = РежимДиалогаВыбораФайла.ВыборКаталога;
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалога);
    ДиалогВыбора.МножественныйВыбор = ЛОЖЬ;
    ДиалогВыбора.Заголовок = "Выберите место для сохранения файла.";
    
    Если ДиалогВыбора.Выбрать() Тогда
        ПутьКФайлу = ДиалогВыбора.Каталог;
    КонецЕсли;
    
КонецПроцедуры



ЗУП 3.1 делаю внешнюю обработку на выгрузку в Excel. Но ничего не происходит, даже документ не создается, не говоря уже об выгрузке данных, где что мог напортачить?
 
 
   anton-rom86
 
1 - 17.05.18 - 11:19
Серверный вариант?
   Aleksey
 
2 - 17.05.18 - 11:19
Зачем тебе ексель? Почему просто не сохранить табличный документ в формате ексель?
   zladenuw
 
3 - 17.05.18 - 11:19
(2) согласен
   suharik
 
4 - 17.05.18 - 11:22
(1) Я не силен, делал по сайтам, там он стоял, я себе тоже влепил :) (2)  и (3) я потом с него данные буду в БП 2.0 загружать :)
   3achem
 
5 - 17.05.18 - 11:24
(4) > &НаСервере
Ни на что не намекает?
   Aleksey
 
6 - 17.05.18 - 11:24
(4) да хоть на луну отправлять, какая разница?
   hhhh
 
7 - 17.05.18 - 11:27
(4) наверно. у тебя сервер не совпадает с клиентом. Это два разных компа походу.
   suharik
 
8 - 17.05.18 - 11:30
(7) я через RDP сижу на сервере где стоит 1с-Сервер
И на всяк случай я убрал эту надпись про сервер, ничего не изменилось.
   suharik
 
9 - 17.05.18 - 11:31
(6)  и (5) ребят я понимаю, что вы все очень умные, но я не за издевательством обратился, а за помощью, не знаете, так не говорите ничего.
   3achem
 
10 - 17.05.18 - 11:34
(9) Предлагаю использовать магию в виде F9 в конфигураторе.
 
 Рекламное место пустует
   suharik
 
11 - 17.05.18 - 11:34
(10) внешняя обработка, вроде не отлавливает точку останова.
   anton-rom86
 
12 - 17.05.18 - 11:38
С ком объектом на клиенте работай
   3achem
 
13 - 17.05.18 - 11:39
(12) Вариант сохранения табличного документа в эксель стандартными средствами не рассматривается из-за религиозных соображений?
   suharik
 
14 - 17.05.18 - 11:42
(12) поменял НаКлиенте
пишет: {ВнешняяОбработка.ВыгрузкаЗУП_БУХ.Форма.Форма.Форма(19,2)}: Тип не определен (Запрос)
    <<?>>Запрос( (Проверка: Тонкий клиент)
   3achem
 
15 - 17.05.18 - 11:44
(14) Учимся работать с Синтаксис-помощником
Запрос (Query)

Свойства:

МенеджерВременныхТаблиц (TempTablesManager)
Параметры (Parameters)
Текст (Text)

Методы:

Выполнить (Execute)
ВыполнитьПакет (ExecuteBatch)
ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData)
НайтиПараметры (FindParameters)
УстановитьПараметр (SetParameter)

Конструкторы:

На основании текста запроса

Описание:

Предназначен для выполнения запросов к базе данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
См. также:

ПостроительОтчета, метод ПолучитьЗапрос
ПостроительЗапроса, метод ПолучитьЗапрос


Особое внимание на доступность
   suharik
 
16 - 17.05.18 - 11:44
(13) 7 организаций, выплаты как З/П так и по договорам ГПХ, документов вагон и маленькая тележка, если каждый документ руками сохранять, сколько времени уйдет? А так же документы Выплаты и Удержаний еще нужны. Руками 100% не вариант.
   3achem
 
17 - 17.05.18 - 11:46
(16) Позовите программиста
ТабличныйДокумент.Записать (SpreadsheetDocument.Write)
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Вариант синтаксиса: В файл

Синтаксис:

Записать(<ИмяФайла>, <ТипФайлаТаблицы>)
Параметры:

<ИмяФайла> (обязательный)

Тип: Строка.
Имя файла, в котором сохраняется табличный документ. 
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента. 
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.
Описание варианта метода:

Запись табличного документа в файл.
Вариант синтаксиса: В поток

Синтаксис:

Записать(<Поток>, <ТипФайлаТаблицы>)
Параметры:

<Поток> (обязательный)

Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи табличного документа. 
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента. 
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.
Описание варианта метода:

Запись табличного документа в поток.
Описание:

Записывает табличный документ в файл.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

При работе на сервере, веб-клиенте или через внешнее соединение нет возможности сохранять в формате XLS95.
Не поддерживается сохранение в PDF картинок типа Метафайл.
При работе на веб-клиенте вызов метода выполняет обращение к серверу.
При работе на мобильной платформе возможно сохранение только в форматах MXL и PDF.
При выводе в формат PDF шрифты, которые нельзя внедрять, а также шрифты, не являющиеся TrueType или OpenType, будут заменены на шрифт Arial. Если данный шрифт не обнаружен, то будет использован шрифт Helvetica.
Пример:

ТабДок.Записать("C:\My Documents\Таблица2.mxl");
 

--------------------------------------------------------------------------------

     Методическая информация
   Alexandr_U1982
 
18 - 17.05.18 - 11:53
(16)Делаешь макет табличного документа. Результатом запроса заполняешь этот макет и сохраняешь его в формате Excel.
   suharik
 
19 - 17.05.18 - 11:57
(18) да я уже примерно так и подумал, все равно никто толком ничего не сказал.
   anton-rom86
 
20 - 17.05.18 - 12:01
(13) Когда человеку потребуется загрузить данные из экселя, он уже будет уметь работать с ком объектом.
   anton-rom86
 
21 - 17.05.18 - 12:03
(14) Нет, запрос оставь на сервере, на клиенте только работа с ком. Т.е. с клиента вызываешь функцию на сервер, которая формирует и возвращает на клиент таблицу. На клиенте создаешь ком объект и пишешь в него таблицу.
   3achem
 
22 - 17.05.18 - 12:06
(19) Тебе вот здесь написали, что надо сделать (2) , а здесь (17) как это сделать. Но никто ничего толком не сказал.
   zladenuw
 
23 - 17.05.18 - 12:08
ТабДок=Новый ТабличныйДокумент;
    Результат=Запрос.Выполнить().Выгрузить();
    
    Построитель=Новый ПостроительОтчета;
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат);
    Построитель.Вывести(ТабДок);
    Возврат ТабДок;

Думаю разберешься.
   suharik
 
24 - 17.05.18 - 12:16
(22) да именно так. Ибо хоть убей, но Excel и XML не одно и то же. И я не спрашивал как выгрузить в другом формате, мне нужно ровно то что я спросил. По этому никто ничего не сказал.
   3achem
 
25 - 17.05.18 - 12:17
(24)Я вам уже говорил, позовите программиста, он всё сделает


ТипФайлаТабличногоДокумента (SpreadsheetDocumentFileType)
ТипФайлаТабличногоДокумента (SpreadsheetDocumentFileType)
Значения
ANSITXT (ANSITXT)
DOCX (DOCX)
HTML (HTML)
HTML3 (HTML3)
HTML4 (HTML4)
HTML5 (HTML5)
MXL (MXL)
MXL7 (MXL7)
ODS (ODS)
PDF (PDF)
TXT (TXT)
XLS (XLS)
XLS95 (XLS95)
XLS97 (XLS97)
XLSX (XLSX)

Описание:

Содержит варианты форматов файлов для сохранения табличного документа. Используется для определения параметра <ТипФайлаТаблицы> метода Записать.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Возможен обмен с сервером.
См. также:

ТабличныйДокумент, метод Записать
   suharik
 
26 - 17.05.18 - 12:17
(20) Самое интересное что как раз загрузку из Excel я уже сделал и она как раз таки работает, правда на БП 2.0, а вот с управляемой формой ЗУП 3.1, у меня проблемы :)
   suharik
 
27 - 17.05.18 - 12:18
(25) я и есть программист, спасибо за совет, но нет.
   3achem
 
28 - 17.05.18 - 12:19
(26) У вас с работой в программе проблемы, либо с мотивацией
ТабДок=Новый ТабличныйДокумент;
    Результат=Запрос.Выполнить().Выгрузить();
    
    Построитель=Новый ПостроительОтчета;
    Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат);
    Построитель.Вывести(ТабДок);

ТабДок.Записать(ПутьДляСохранения, ТипФайлаТабличногоДокумента.XLSX)


Даже конфигуратор открывать не пришлось
   suharik
 
29 - 17.05.18 - 12:22
(28) с программой :) это да, даже и не спорю иначе меня тут бы и не было :)
   anton-rom86
 
30 - 17.05.18 - 12:34
(26) Ну тк, есть разница между серверным вариантом базы на обычных формах и серверным вариантом базы на УФ. И даже между файловым и серверным вариантом одной и той же базы на УФ.
   suharik
 
31 - 22.05.18 - 07:50
(28) не происходит ровным счетом ничего. Толку ноль.
   suharik
 
32 - 25.05.18 - 10:08
Если кому то будет это полезным, все дело в том что в управляемых формах, все вычисления производятся на сервере, а результат отображаемый пользователю, на клиенте. По этому надо было просто разделить одну процедуру с запросом и его обработкой на 2. в 1 меняем процедуру на функцию и делаем там запрос, а во 2 принимаем из функции результат и обрабатываем его на клиенте. Все заработало. Позже выложу пример кода.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует