Имя: Пароль:
1C
1С v8
Хранилище значений
,
0 STAYEKR
 
16.10.12
11:45
Доброго всем здоровья! Возникла проблема: пытаюсь на форму записи регистра сделать возможность добавлять вложения (документы, ссылки и т.д.) Прочитал про ХранилищеЗначений. Так вот, добавил в регистр ресурс соотв. типа ("Путь"). В конфигураторе пишу код:

Функция Функция1(хранилище, путькфайлу)    
        Путь    = новый ХранилищеЗначения(
               новый ДвоичныеДанные(путькфайлу),
               новый СжатиеДанных(9));
   хранилище    = Путь;
   Данные    = хранилище.Получить();
       Если ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
       Сообщить("Ура!");
   КонецЕсли;
КонецФункции;

Падает ошибка: "Файл не обнаружен" и полный путь к файлу. Подскажите, пожалуйста, где косяк?
2 STAYEKR
 
16.10.12
11:46
(1) веткойпромахнулся. 8.1
3 Ursus maritimus
 
16.10.12
11:47
(0) Путь задан для клиента. Код выполняется на сервере.
4 АЛьФ
 
16.10.12
11:47
Может быть... файл не обнаружен?...
5 Ursus maritimus
 
16.10.12
11:47
Ну или правда нет файла.
6 Cube
 
16.10.12
11:48
(0) Может путь к файлу содержит пробелы?
7 STAYEKR
 
16.10.12
11:49
Файл таки есть, пробелов в пути нет. Все символы в пути на английском
8 YF
 
16.10.12
11:49
(7) Как там с клиент-серверностью?
9 STAYEKR
 
16.10.12
11:53
(8) функция вызывается из процедуры БЕЗ пометок &НаКлиенте/&НаСервере
10 STAYEKR
 
16.10.12
11:58
Я так понимаю, корень кроется в (3)?
11 YF
 
16.10.12
11:59
(9) Отладчикам-то остановись там, и узнай на сервере это или на клиенте
12 STAYEKR
 
16.10.12
12:08
Стесняюсь спросить, а как отладчиком ЭТО определить?Если Отладка\Подключение, то там написано Тип = Клиент...
13 STAYEKR
 
16.10.12
12:18
Проверил.Исполняется на клиенте. Кто-нибудь знает, в чем причина?
14 zladenuw
 
16.10.12
12:22
ну так какой полный путь к файлу и где сервер то.
15 STAYEKR
 
16.10.12
12:29
(14) Полный путь существующий, указывает на файл на компе пользователя, который будет делать вложение документа
16 STAYEKR
 
16.10.12
12:32
Кто-нибудь поможет, уважаемы гуру?
17 STAYEKR
 
16.10.12
12:36
Хоть ткните носом, какую книжку курить?
18 Cube
 
16.10.12
12:41
(17) Че париться? Сделай Так:

Функция Функция1(хранилище, путькфайлу)

   МойФайл = Новый ТекстовыйДокумент;
   МойФайл.ДобавитьСтроку("Хрясь!!!");
   МойФайл.Записать(путькфайлу);

КонецФункции
19 Cube
 
16.10.12
12:41
+(18) И посмотри, где файлик-то создался...
20 STAYEKR
 
16.10.12
12:47
(19) Спасибо, путь к файлу получил. А что это даст в решении проблемы?
21 zladenuw
 
16.10.12
12:51
функция где живет.
22 STAYEKR
 
16.10.12
12:52
(21) Функция проживает в модуле записи регистра сведений
23 Cube
 
16.10.12
12:53
(20) Ну так файл создался или нет? Создался на сервере или там, где ты хотел?
24 STAYEKR
 
16.10.12
12:56
(23)Файл создался. В папке Temp на клиенте
Но мне надо прикладывать файлы, а не создавать их
25 zladenuw
 
16.10.12
12:57
тогда чего голову морочишь. получил путь к временным файлам. и кричит, что не работает.
26 zladenuw
 
16.10.12
12:58
(24) откуда, куда. паяльник нести ?
27 STAYEKR
 
16.10.12
12:59
(25) Извините, Уважаемый, но я не совсем пониаю, какая связь между созданием нового пустого дока и приложением к записи регистра уже созданного нужного дока. Можете пояснить?
28 Cube
 
16.10.12
13:02
(24) Ну, значит, нет в этой папке "Temp на клиенте" нужного тебе файлика в тот момент, когда ты его прикреплять собираешься...
29 zladenuw
 
16.10.12
13:04
так если ты прикрепил файл. он уже у тебя в базе. а если тебе надо его открыть, изменить, а потом обратно спрятать. то зачем тебе путькфайлу. если ты можешь помешать во временные и работать по имени файла. как ты его сохранил
30 STAYEKR
 
16.10.12
13:41
(28) Спасибо. Файл есть, 100%. Непонятно только, почему он его берет именно из тепма.
31 Aprobator
 
16.10.12
13:44
(30) потому что у тебя явно с клиента сервер вызывается.
32 Ursus maritimus
 
16.10.12
13:45
(30) А у тебя путь-то в имени файла есть? И вообще. Имя файла в студию.
33 Cube
 
16.10.12
13:45
(30) На сколько я понял, что в переменной "путькфайлу", то и берется за путь... Отладчиком пройдись.
34 Aprobator
 
16.10.12
13:46
а тут 8.1, тогда мазнул.
35 STAYEKR
 
16.10.12
14:01
(33) Да, с путями неладно что-то. Заливает он его с клиента, а при попытке открыть лезет на сервер. Сейчас буду посмотреть. Спасибо!
36 STAYEKR
 
16.10.12
14:27
После прохождения вот это йстроки:

Данные     = хранилище.Получить();

Переменная Данные должна принять тип "ДвоичныеДанные", а она становится строкой с текстом 'ДвоичныеДанные'. Кто-нибудь знает, в чем косяк?
37 Aprobator
 
16.10.12
14:33
хз где у тебя код выполняется. Сдается мне, что на клиенте и что Данные - очень похоже на свойство формы (путь к данным). А поскольку тип у него строка, то туда и пишется представление полученных данных.
38 STAYEKR
 
16.10.12
15:15
Всем спасибо за помощь. Нашел ошибку!