|
Выгрузка данных в Excel из ЗУП 3.1 | ☑ | ||
---|---|---|---|---|
0
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. Но ничего не происходит, даже документ не создается, не говоря уже об выгрузке данных, где что мог напортачить? |
|||
1
anton-rom86
17.05.18
✎
11:19
|
Серверный вариант?
|
|||
2
Aleksey
17.05.18
✎
11:19
|
Зачем тебе ексель? Почему просто не сохранить табличный документ в формате ексель?
|
|||
3
zladenuw
17.05.18
✎
11:19
|
(2) согласен
|
|||
4
suharik
17.05.18
✎
11:22
|
(1) Я не силен, делал по сайтам, там он стоял, я себе тоже влепил :) (2) и (3) я потом с него данные буду в БП 2.0 загружать :)
|
|||
5
3achem
17.05.18
✎
11:24
|
(4) > &НаСервере
Ни на что не намекает? |
|||
6
Aleksey
17.05.18
✎
11:24
|
(4) да хоть на луну отправлять, какая разница?
|
|||
7
hhhh
17.05.18
✎
11:27
|
(4) наверно. у тебя сервер не совпадает с клиентом. Это два разных компа походу.
|
|||
8
suharik
17.05.18
✎
11:30
|
(7) я через RDP сижу на сервере где стоит 1с-Сервер
И на всяк случай я убрал эту надпись про сервер, ничего не изменилось. |
|||
9
suharik
17.05.18
✎
11:31
|
(6) и (5) ребят я понимаю, что вы все очень умные, но я не за издевательством обратился, а за помощью, не знаете, так не говорите ничего.
|
|||
10
3achem
17.05.18
✎
11:34
|
(9) Предлагаю использовать магию в виде F9 в конфигураторе.
|
|||
11
suharik
17.05.18
✎
11:34
|
(10) внешняя обработка, вроде не отлавливает точку останова.
|
|||
12
anton-rom86
17.05.18
✎
11:38
|
С ком объектом на клиенте работай
|
|||
13
3achem
17.05.18
✎
11:39
|
(12) Вариант сохранения табличного документа в эксель стандартными средствами не рассматривается из-за религиозных соображений?
|
|||
14
suharik
17.05.18
✎
11:42
|
(12) поменял НаКлиенте
пишет: {ВнешняяОбработка.ВыгрузкаЗУП_БУХ.Форма.Форма.Форма(19,2)}: Тип не определен (Запрос) <<?>>Запрос( (Проверка: Тонкий клиент) |
|||
15
3achem
17.05.18
✎
11:44
|
(14) Учимся работать с Синтаксис-помощником
Запрос (Query) Свойства: МенеджерВременныхТаблиц (TempTablesManager) Параметры (Parameters) Текст (Text) Методы: Выполнить (Execute) ВыполнитьПакет (ExecuteBatch) ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData) НайтиПараметры (FindParameters) УстановитьПараметр (SetParameter) Конструкторы: На основании текста запроса Описание: Предназначен для выполнения запросов к базе данных. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). См. также: ПостроительОтчета, метод ПолучитьЗапрос ПостроительЗапроса, метод ПолучитьЗапрос Особое внимание на доступность |
|||
16
suharik
17.05.18
✎
11:44
|
(13) 7 организаций, выплаты как З/П так и по договорам ГПХ, документов вагон и маленькая тележка, если каждый документ руками сохранять, сколько времени уйдет? А так же документы Выплаты и Удержаний еще нужны. Руками 100% не вариант.
|
|||
17
3achem
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"); -------------------------------------------------------------------------------- Методическая информация |
|||
18
Alexandr_U1982
17.05.18
✎
11:53
|
(16)Делаешь макет табличного документа. Результатом запроса заполняешь этот макет и сохраняешь его в формате Excel.
|
|||
19
suharik
17.05.18
✎
11:57
|
(18) да я уже примерно так и подумал, все равно никто толком ничего не сказал.
|
|||
20
anton-rom86
17.05.18
✎
12:01
|
(13) Когда человеку потребуется загрузить данные из экселя, он уже будет уметь работать с ком объектом.
|
|||
21
anton-rom86
17.05.18
✎
12:03
|
(14) Нет, запрос оставь на сервере, на клиенте только работа с ком. Т.е. с клиента вызываешь функцию на сервер, которая формирует и возвращает на клиент таблицу. На клиенте создаешь ком объект и пишешь в него таблицу.
|
|||
22
3achem
17.05.18
✎
12:06
|
(19) Тебе вот здесь написали, что надо сделать (2) , а здесь (17) как это сделать. Но никто ничего толком не сказал.
|
|||
23
zladenuw
17.05.18
✎
12:08
|
ТабДок=Новый ТабличныйДокумент;
Результат=Запрос.Выполнить().Выгрузить(); Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат); Построитель.Вывести(ТабДок); Возврат ТабДок; Думаю разберешься. |
|||
24
suharik
17.05.18
✎
12:16
|
(22) да именно так. Ибо хоть убей, но Excel и XML не одно и то же. И я не спрашивал как выгрузить в другом формате, мне нужно ровно то что я спросил. По этому никто ничего не сказал.
|
|||
25
3achem
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) Описание: Содержит варианты форматов файлов для сохранения табличного документа. Используется для определения параметра <ТипФайлаТаблицы> метода Записать. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Возможен обмен с сервером. См. также: ТабличныйДокумент, метод Записать |
|||
26
suharik
17.05.18
✎
12:17
|
(20) Самое интересное что как раз загрузку из Excel я уже сделал и она как раз таки работает, правда на БП 2.0, а вот с управляемой формой ЗУП 3.1, у меня проблемы :)
|
|||
27
suharik
17.05.18
✎
12:18
|
(25) я и есть программист, спасибо за совет, но нет.
|
|||
28
3achem
17.05.18
✎
12:19
|
(26) У вас с работой в программе проблемы, либо с мотивацией
ТабДок=Новый ТабличныйДокумент; Результат=Запрос.Выполнить().Выгрузить(); Построитель=Новый ПостроительОтчета; Построитель.ИсточникДанных=Новый ОписаниеИсточникаДанных(Результат); Построитель.Вывести(ТабДок); ТабДок.Записать(ПутьДляСохранения, ТипФайлаТабличногоДокумента.XLSX) Даже конфигуратор открывать не пришлось |
|||
29
suharik
17.05.18
✎
12:22
|
(28) с программой :) это да, даже и не спорю иначе меня тут бы и не было :)
|
|||
30
anton-rom86
17.05.18
✎
12:34
|
(26) Ну тк, есть разница между серверным вариантом базы на обычных формах и серверным вариантом базы на УФ. И даже между файловым и серверным вариантом одной и той же базы на УФ.
|
|||
31
suharik
22.05.18
✎
07:50
|
(28) не происходит ровным счетом ничего. Толку ноль.
|
|||
32
suharik
25.05.18
✎
10:08
|
Если кому то будет это полезным, все дело в том что в управляемых формах, все вычисления производятся на сервере, а результат отображаемый пользователю, на клиенте. По этому надо было просто разделить одну процедуру с запросом и его обработкой на 2. в 1 меняем процедуру на функцию и делаем там запрос, а во 2 принимаем из функции результат и обрабатываем его на клиенте. Все заработало. Позже выложу пример кода.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |