Имя: Пароль:
1C
1С v8
Структуру в ДвоичныйДанные
0 Mandel
 
05.10.11
09:33
Платформа 8.2.
Хочу сохранить структуру в файл.
Но при сохранении выдает ошибку:
Ошибка при выполнении файловой операции  'e1c://filev/D/1CBA

Думаю надо делать через двоичные данные. Но как запихать структуру в двоичные данные?

   СтруктураДанных = Новый Структура;
   СтруктураДанных.Вставить("Наименование", Объект.Наименование);
   
   Возврат ПоместитьВоВременноеХранилище(СтруктураДанных);
1 Maxus43
 
05.10.11
09:34
ЗначениеВСтрокуВнутр можно ещё
2 mikecool
 
05.10.11
09:35
(0) может правей не хватает?
3 Mandel
 
05.10.11
09:39
прав хватает. другие настройки с двоичными данными сохраняются.
4 Mandel
 
05.10.11
09:41
ЗначениеВСтрокуВнутр  помогло. спасибо!
5 Mandel
 
05.10.11
10:01
а потом. после считывания я имею двоичные данные. Как мне получить обратно структуру?

ДвоичныеДанныеНастройки = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);

Структура = ...
6 Maxus43
 
05.10.11
10:03
(5) ЗначениеИзСтрокиВнутр

неожиданно?)
7 Mandel
 
05.10.11
10:03
через хранилище?
8 Mandel
 
05.10.11
10:03
через хранилище наверное сначала
9 Mandel
 
05.10.11
10:04
У ЗначениеИзСтрокиВнутр параметром является строка, а у меня двоичные данные только.
10 Maxus43
 
05.10.11
10:05
ЗначениеВСтрокуВнутр - получаеш строку.
ЗначениеИЗСтрокуВнутр - получаещ обратно структуру
11 Mandel
 
05.10.11
10:08
я записал данные в файл

   Значение = ЗначениеВСтрокуВнутр(СтруктураДанных);
   
   Возврат ПоместитьВоВременноеХранилище(Значение);


потом считываю. но при считывании это уже почему-то не строка, а двоичные данные

ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);
12 Maxus43
 
05.10.11
10:10
Адрес = ПоместитьВоВременноеХранилище("123");
   
   Сообщить("Помещено");
   
   Стр = ПолучитьИзВременногоХранилища(Адрес);
   
   Сообщить(Стр);
   
   УдалитьИзВременногоХранилища(Адрес);

почему у меня этот код работает?
13 Maxus43
 
05.10.11
10:11
понятно, потому что не правильно помещаеш)
14 Mandel
 
05.10.11
10:11
почему?
15 Maxus43
 
05.10.11
10:11
(14) мой код скопируй, он рабочий. может понятно станет
16 Mandel
 
05.10.11
10:12
я сохранил. потом так записыю

           Адрес = ...;
           

           
           ПолучаемыеФайлы = Новый Массив;
           ПолучаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(, Адрес));
           
           ПолученныеФайлы = Новый Массив;
           
           ПолучитьФайлы(ПолучаемыеФайлы, ПолученныеФайлы, ДиалогСохраненияФайла.ПолноеИмяФайла, Ложь);
17 Maxus43
 
05.10.11
10:14
что-то меняется видимо... отладчик что вещает?
18 Mandel
 
05.10.11
10:19
ну я сохраняю. открываю файл. там такие строки
{"#",4239019d-7e49-4fc9-91db-b6b951d5cf8e,
{17,
{
{"S","Наименование"},
{"S","Настройка1"}

...

вот эта штука сразу двоичные данные возвращает
ПолучитьИзВременногоХранилища(АдресВоВременномХранилище)
19 Maxus43
 
05.10.11
10:22
(18) хз даже, в (12) возвращает строку
20 Mandel
 
05.10.11
10:22
ok. посмотрю еще в чем может быть проблема.
21 Mandel
 
05.10.11
10:27
я до этого еще ессно использую
ПоместитьФайлы(...)
(Помещает набор файлов из локальной файловой системы во временное хранилище.)

вот он наверное помещает в двоичные данные...
22 Maxus43
 
05.10.11
10:29
(21) значит 2 раза извлекать надо
23 Mandel
 
05.10.11
10:33
всмысле? ну я получил двоичные данные. а дальше?
24 Maxus43
 
05.10.11
10:35
>>Помещает набор файлов из локальной файловой системы во временное хранилище
а как ещё это расшифровать? 2 раза поместил во временное, 2 раза и извлекать, не?
25 Mandel
 
05.10.11
10:40
ну а куда дальше получать? у меня же есть уже готовый двоичные данные?
26 Maxus43
 
05.10.11
10:43
логику пересмотреть, что вобще хочеш сделать? в типовых много чего придумано для хранения настроек и т.д.
27 Mandel
 
05.10.11
10:45
у меня есть файл (см. выше).
хочу получить его текст.
28 Maxus43
 
05.10.11
10:47
(27) в (12) работает, с твоими переносами да помещениями нарушается что-то, надо ковырять
29 Mandel
 
05.10.11
10:51
ну а в принципе. есть файл с текстом. как в управляемом приложении получить весь текст файла?
30 Mandel
 
05.10.11
10:51
имея его полное имя.
31 Maxus43
 
05.10.11
10:54
Текст = Новый ЧтениеТекста("d:\win.txt", КодировкаТекста.ANSI);
Стр = Текст.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
   Сообщить(Стр);
   Стр = Текст.ПрочитатьСтроку();
КонецЦикла;
(с) СП
32 Mandel
 
05.10.11
10:57
а можно сразу значениеизстрокивнутр использовать?
33 Maxus43
 
05.10.11
10:58
(32) всмысле? прочитать что в файле то надо всё равно
34 Mandel
 
05.10.11
11:03
это да.
35 Mandel
 
05.10.11
16:35
а если не построчно, а сразу весь текст?
36 Mandel
 
05.10.11
16:38
прочитать :)
37 Maxus43
 
05.10.11
16:41
Текст.ПрочитатьСтроку("Ахтунг");