Имя: Пароль:
1C
1С v8
Как создать файл на веб клиенте ?
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" которые прибавляються к строке рабочего каталога, от куда беруться ? Это  что то системное, что так и должно быть или просто твое решение ? Не могу понять его истенную роль.