|
Как создать файл на веб клиенте ? | ☑ | ||
---|---|---|---|---|
0
antihacker
07.12.16
✎
11:45
|
Все привет !
Вот это работает на тноком клиенте ИмяФайла = ПолучитьИмяВременногоФайла(Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла); Doc = СформироватьФайл(Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла, Элементы.ФТЧДокументыДоговора.ТекущиеДанные.РазмерФайла,Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ТипФайла); Если Doc <> Неопределено Тогда Doc.Записать(ИмяФайла); Word = Новый COMОбъект("Word.Application"); Word.Documents.Open(ИмяФайла); Word.Visible = Истина; ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord; ДобавитьОбработчик Word.Quit, ВыходИзWord; КонецЕсли; Но понятно что из за ПолучитьИмяВременногоФайла не работает на веб клиенте. Как быть ? |
|||
1
DGorgoN
07.12.16
✎
11:58
|
||||
2
antihacker
07.12.16
✎
12:08
|
DGorgoN, что этим хочешь сказать ? Не вижу подсказку.
|
|||
3
Cool_Profi
07.12.16
✎
12:10
|
||||
4
antihacker
07.12.16
✎
12:20
|
Все гениальн просто
Оболочка = Новый COMОбъект("WScript.Shell"); Путь = Оболочка.ExpandEnvironmentStrings("%APPDATA%"); Путь=Путь+"\Local Settings\Temp"; ИмяФайла = Путь +"\"+ Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла; ТекТабДок=Новый ТабличныйДокумент; ТекТабДок.Записать(ИмяФайла); Doc = СформироватьФайл(Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла, Элементы.ФТЧДокументыДоговора.ТекущиеДанные.РазмерФайла,Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ТипФайла); Если Doc <> Неопределено Тогда Doc.Записать(ИмяФайла); Word = Новый COMОбъект("Word.Application"); Word.Documents.Open(ИмяФайла); Word.Visible = Истина; ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord; ДобавитьОбработчик Word.Quit, ВыходИзWord; КонецЕсли; |
|||
5
antihacker
07.12.16
✎
13:26
|
Началась другая проблема )))
Метода Записать(ИмяФайла) не работает на веб клиенте. А че его заменить ? |
|||
6
Garykom
гуру
07.12.16
✎
13:40
|
Заменить созданием файла на сервере и отправкой его на клиент чтобы юзер сам сохранил куда нуна.
|
|||
7
antihacker
07.12.16
✎
13:46
|
Garykom, а как мне тогда отловить изменения в ворд файле при закрытие ? Мне именно это и нужно.
Вообщем задача такая. Открывает юзер ворд документ, редактирует и закрывает. При закрытие 1С должен в базу добавить отредактированную версию файла. Думал через табличный документ, но в веб клиенте он тоже не редактируеться ? Как быть ? |
|||
8
Cyberhawk
07.12.16
✎
14:05
|
"отловить изменения в ворд файле при закрытие ?" // Если бы браузеры такое умели, это был бы ахтунг
|
|||
9
DGorgoN
07.12.16
✎
14:20
|
(7) Никак через тонкий клиент, ну как то такие вот ограничения.
|
|||
10
Fragster
гуру
07.12.16
✎
14:21
|
воспользуйся подсистемой РаботаСФайлами или ПрисоединенныеФайлы в БСП
|
|||
11
antihacker
07.12.16
✎
14:31
|
Что за подсистема ? У меня своя конфига. Пишем с нуля ))
|
|||
12
Fragster
гуру
07.12.16
✎
14:34
|
(11) я тоже пишу с нуля Зацените канбан доску на 1с , но использование БСП в куче мест помогает. например в работе с файлами. а сейчас еще и в интеграции с электронной почтой (реализация фичи в процессе).
|
|||
13
antihacker
07.12.16
✎
14:38
|
У тебя же не веб клиент.
|
|||
14
Fragster
гуру
07.12.16
✎
14:39
|
(13) в веб клиенте всё работает
|
|||
15
antihacker
07.12.16
✎
15:14
|
Тогда пример покажи. Как ты решил эту задачу ?
|
|||
16
Fragster
гуру
07.12.16
✎
15:20
|
(15) какую? обновлять данные в 1с при завершении редактирования файла? в общем модуле РаботаСФайламиПереопределяемый описал алгоритм в процедуре ПриОсвобожденииФайла
|
|||
17
Fragster
гуру
07.12.16
✎
15:21
|
вся работа с файлом - на сервере
|
|||
18
antihacker
07.12.16
✎
15:31
|
Я не понял. Где то можно смотреть твои процедуры ?
|
|||
19
Fragster
гуру
07.12.16
✎
15:40
|
(18) в конфигурации из (12) обработка файлов при завершении редактирования не применяется. А про то, где это следует делать - в (16).
Для этого нужно внедрить БСП (минимальное внедрение по мануалам - не такая сложная штука) с подсистемой присоединенных файлов или файловых функций, а потом - (16) заодно и все файлы будут храниться в базе (или томах на сервере), а не у юзеров. если же требуется что-то другое, а не обработка файла при окончании редактирования - то сформулируй задачу. |
|||
20
antihacker
08.12.16
✎
06:11
|
У меня платформа 8.3.6. Не могу открыть конфигу. Он под 8.3.8
Есть под 8.3.6 ? |
|||
21
antihacker
08.12.16
✎
08:29
|
Уважаемый. Я что то не нашел модуль РаботаСФайламиПереопределяемый
|
|||
22
antihacker
08.12.16
✎
10:30
|
А нашел, но ПриОсвобожденииФайла пустой.
|
|||
23
Fragster
гуру
08.12.16
✎
11:28
|
(22) конечно пустой. там ты должен прописать, что ты хочешь сделать после того, как пользователь завершит редактирование файла.
|
|||
24
Fragster
гуру
08.12.16
✎
11:29
|
или ничего не писать, если ничего не хочешь делать.
|
|||
25
antihacker
08.12.16
✎
14:53
|
Fragster, извини. Я так и не смог понять по твоей базе, как через браузер, отлавливаеться измененный файл после закрытия файла. Ведь в базу надо обратно передать измененный файл. В тоноком мы это делаем так
ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord; Или вообще другой подход для решения данной задачи. |
|||
26
Fragster
гуру
08.12.16
✎
15:16
|
(25) http://v8.1c.ru/doc8/limits.htm
нужно установить расширение для работы с файлами. а вообще во всех типовых не "отлавливаеться измененный файл после закрытия файла", а файл помещается в базу при окончании редактирования. Или ты документацию по БСП не открывал? |
|||
27
Fragster
гуру
08.12.16
✎
15:16
|
*при нажатии на кнопку "закончить редактирование"
|
|||
28
Fragster
гуру
08.12.16
✎
15:18
|
ты пытаешься решить задачу без учета того, что это все может работать в браузере на андроиде, например
|
|||
29
Fragster
гуру
08.12.16
✎
15:20
|
по этому в 1с и сделали так - при нажатии на "начать резактирование" файл скачивается и открывается (в тонком или с установленным расширением), а при "закончить редактирование" - в тонком и с расширением - закачивается обратно, без расширения - выбирается, какой же файл закачать обратно
|
|||
30
antihacker
08.12.16
✎
15:24
|
Начинаю понимать
Забирает от сюда когда нажимаешь на -"Сохранить и освободить" ? C:\Users\user1\AppData\Roaming\1C\1Cv82\fa784580-1e66-4e80-8839-0a41e0c2dca2\071523a4-516f-4fce-ba4b-0d11ab7a1893\App\0000000000 А не заполниться файлами комп клиента ? Или потом они как то очищаються ? Вроде это не временное хранилище, который при закрытие форм всам удаляться. |
|||
31
Fragster
гуру
08.12.16
✎
15:27
|
(30) вроде не замечал проблем
|
|||
32
antihacker
08.12.16
✎
15:33
|
То есть все таки не удалються автоматом ?
|
|||
33
antihacker
08.12.16
✎
15:37
|
А нет возможности сохранить в ввременное хранилище и открыть от туда в ворде для редактирование ? И забирать измененный файл тоже от туда . Тогда временное хранилще сами удалялись бы.
|
|||
34
Fragster
гуру
08.12.16
✎
15:42
|
временное хранилище на сервере
|
|||
35
antihacker
08.12.16
✎
15:52
|
нее на клиенте же остаеться открытый файл. Который лежит по пути C:\Users\user1\AppData\Roaming\1C\1Cv82\fa784580-1e66-4e80-8839-0a41e0c2dca2\071523a4-516f-4fce-ba4b-0d11ab7a1893\App\0000000000
|
|||
36
antihacker
13.12.16
✎
08:14
|
Fragster, в принципе все понял. Но вот эти нулики - "0000000000" которые прибавляються к строке рабочего каталога, от куда беруться ? Это что то системное, что так и должно быть или просто твое решение ? Не могу понять его истенную роль.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |