|
Копировать файл с правами | ☑ | ||
---|---|---|---|---|
0
dakra
03.09.15
✎
12:04
|
Добрый день, помогите, пожалуйста.
Такая проблема: есть пользователь 1С, который будет сохранять файл в папку на внешнем диске, необходимо ограничить доступ этого пользователя к папке, чтобы он мог только записывать туда файл и мог в дальнейшем открывать его только для чтения (просмотра). Возможно ли как-то записывать файл в папку под правами или каким-либо образом передавать файл на сервер, чтобы там файл записывался от имени пользователя 1USP1CV8? Как решить эту проблему? |
|||
1
rabbidX
03.09.15
✎
12:08
|
Текст файла в регистр сведений. Файл записывать регламентным заданием.
|
|||
2
dakra
03.09.15
✎
13:24
|
А как заставить регламентное задание выполняться от нужного пользователя, или подскажите, как присвоить нужные права тому пользователю, от имени которого запускается регламентное задание?
|
|||
3
Лефмихалыч
03.09.15
✎
13:33
|
(1) если формы управляемые, то достаточно вызвать серверную процедуру, которая записывает в файл
|
|||
4
Лефмихалыч
03.09.15
✎
13:33
|
(2) так тебе надо, чтобы файл от пользователя 1USP1CV8 создавался или от того живого, который инициировал это всё?
|
|||
5
Лефмихалыч
03.09.15
✎
13:34
|
или база файловая и 1USP1CV8 - это обычный живой пользователь?
|
|||
6
dakra
03.09.15
✎
13:39
|
У нас 1С 8.2 УПП, база находится на сервере, пользователи подключаются через терминал.
Надо, чтобы каким-либо образом пользователь, у которого нет доступа (кроме просмотра) к папке, записал средствами 1С файл в эту папку. Вот пытаемся придумать, как это можно сделать |
|||
7
Лефмихалыч
03.09.15
✎
13:42
|
(6) записывайте серверным кодом, как говорит (1).
Вообще - прикрути из БСП подсистему хранения файлов и храни прямо в базе. Без всяких там заморочек с правами на сервере |
|||
8
dakra
03.09.15
✎
13:57
|
Нам как раз и надо избавиться от хранения файлов (pdf) в базе.
Не совсем понятно как записать файл серверным кодом. РС создал, данные о файле туда записал, а что делать с самим файлом? Передавать его на сервер? |
|||
9
decdmb
03.09.15
✎
14:01
|
Сделай функцию в серверном модуле и передавай в нее двоичные данные
|
|||
10
Лефмихалыч
03.09.15
✎
14:08
|
(8) посмотрите, как в ДО реализовано хранение в томах
|
|||
11
Лефмихалыч
03.09.15
✎
14:08
|
ну или - просто пишите, действительно, все в модуле, у которого только "Сервер" и "Вызов сервера"
|
|||
12
dakra
03.09.15
✎
14:13
|
Я поместил файл во временное хранилище, как мне теперь из хранилища скопировать файл в папку?
|
|||
13
dakra
03.09.15
✎
14:16
|
Адрес во временном хранилище: e1cib/tempstorage/c9764580-9e90-4e4b-8167-5f15adfb1c31 (тип строка)
|
|||
14
Лефмихалыч
03.09.15
✎
14:17
|
Глобальный контекст.ПоместитьФайл (Global context.PutFile)
Глобальный контекст (Global context) ПоместитьФайл (PutFile) Синтаксис: ПоместитьФайл(<Адрес>, <НачальноеИмяФайла>, <ВыбранноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>) Параметры: <Адрес> (необязательный) Тип: Строка. Адрес во временном хранилище, по которому должны быть помещены данные. Если значение параметра не задано или является пустой строкой, то будет создан новый файл. Расположение нового файла возвращается в данном параметре. <НачальноеИмяФайла> (необязательный) Тип: Строка. Путь к файлу, данные из которого будут помещены во временное хранилище. Если параметр <Интерактивно> = Истина, то отображается диалог выбора файла и выбранный в диалоге путь возвращается в параметре <ВыбранноеИмяФайла>. <ВыбранноеИмяФайла> (необязательный) Тип: Строка. В параметре возвращается путь к файлу, указанный в диалоге выбора файла. Для неинтерактивного режима выбранное имя файла соответствует начальному имени файла. В веб-клиенте значение параметра зависит от типа браузера. Для FireFox 3 в параметре возвращается только имя файла без пути. Для Internet Explorer возвращаемое значение зависит от настройки текущей зоны. Подробности: http://msdn.microsoft.com/en-us/library/ms535128(VS.85).aspx. <Интерактивно> (необязательный) Тип: Булево. Указывает использование интерактивного режима, при котором отображается диалог выбора файла. Этот файл будет помещен по указанному в параметре <Адрес> адресу во временное хранилище или по новому адресу, если второй параметр метода опущен. Если значение параметра Истина, то метод отобразит стандартное диалоговое окно выбора файла, в котором можно выбрать файл для помещения в хранилище. В этом случае выбранный путь возвращается в параметре <Выбранное имя файла>. В веб-клиенте параметр должен быть равен Истина. В противном случае будет сгенерировано сообщение об ошибке. Значение по умолчанию: Истина. <УникальныйИдентификаторФормы> (необязательный) Тип: УникальныйИдентификатор. Уникальный идентификатор формы, который можно получить с помощью свойства УникальныйИдентификатор управляемой формы. Файл помещается во временное хранилище и автоматически удаляется после удаления объекта формы. Если параметр не указан, помещенное значение будет удалено, после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы. Возвращаемое значение: Тип: Булево. Ложь - в параметре <Интерактивно> установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла. Описание: Помещает файл из локальной файловой системы во временное хранилище. Доступность: Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент). Примечание: На мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда. Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод НачатьПомещениеФайла. -------------------------------------------------------------------------------- Методическая информация |
|||
15
Лефмихалыч
03.09.15
✎
14:17
|
Глобальный контекст.ПолучитьФайл (Global context.GetFile)
Глобальный контекст (Global context) ПолучитьФайл (GetFile) Синтаксис: ПолучитьФайл(<Адрес>, <ИмяФайла>, <Интерактивно>) Параметры: <Адрес> (обязательный) Тип: Строка. Расположение данных во временном хранилище или в информационной базе. <ИмяФайла> (необязательный) Тип: Строка. Путь к файлу, в который будут сохранены данные из информационной базы. В неинтерактивном режиме необходимо указать значение параметра, иначе будет вызвано исключение. В интерактивном режиме может быть не задан. Значение по умолчанию: Пустая строка. <Интерактивно> (необязательный) Тип: Булево. Истина - режим, в котором пользователю показывается диалог, в котором он может выбрать действие с получаемым файлом: запустить его или сохранить по выбранному расположению. В веб-клиенте параметр должен быть равен Истина. В противном случае будет сгенерировано сообщение об ошибке. Значение по умолчанию: Истина. Возвращаемое значение: Тип: Булево; Неопределено. Ложь - пользователь отменил операцию сохранения файлов (в интерактивном режиме). В режиме запуска "Веб-клиент" всегда возвращает Неопределено. Описание: Получает файл и сохраняет его в локальную файловую систему пользователя. По умолчанию метод исполняется в интерактивном режиме, то есть когда будет выдано диалоговое окно, позволяющее указать действие с полученным файлом - запустить его или сохранить по указанному пользователем расположению. Доступность: Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент). Примечание: Если используется интерактивный режим, а параметр <ИмяФайла> не указан, то операция открытия файла не доступна. В веб-клиенте код на встроенном языке продолжает выполнение, не дожидаясь окончания загрузки файла. Результат выполнения кэшируется в разрезе значений параметров метода. Если данные в файле были изменены, выполняется обращение к серверу. На мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда. -------------------------------------------------------------------------------- Методическая информация |
|||
16
Лефмихалыч
03.09.15
✎
14:17
|
еще можно двоичные данные прямо в параметр серверной процедуры засунуть, но это варварство, когда файлы большие
|
|||
17
Лефмихалыч
03.09.15
✎
14:19
|
с другой стороны - плюс-минус одна и та же херня, по скольку для помещения во временно хренилище точно такие же двоичные данные точно так же на сервер просто так передаются всей толпой без какого-либо волшебства.
|
|||
18
dakra
03.09.15
✎
15:40
|
сделал вот так:
В Обработке прописал: АдресХранилища = ПоместитьВоВременноеХранилище(ПолноеИмяФайла,); ПоместитьФайл(АдресХранилища,ПолноеИмяФайла,ПолноеИмяФайла,Ложь,); СС_ОбщийМодуль.СохранитьФайл(АдресХранилища,ПутьСохраненногоФайла); В СС_ОбщийМодуль добавил процедуру: Процедура СохранитьФайл(АдресХранилища,Путь) Экспорт ФайлИзХранилища = ПолучитьИзВременногоХранилища(Строка(АдресХранилища)); ФайлИзХранилища.Записать(Путь); КонецПроцедуры Выходит ошибка доступа к файлу: {ОбщийМодуль.СС_ОбщийМодуль.Модуль(1386)}: Ошибка при вызове метода контекста (Записать) ФайлИзХранилища.Записать(Путь); по причине: Ошибка доступа к файлу '\\terminal\Файлы\2.pdf' |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |