Имя: Пароль:
1C
1С v8
Сохранение и восстановление таблицы значений
,
0 mannilele
 
10.09.12
16:21
Есть такая задача: в текстовом файле хранится большой объем данных. Периодически пользователю нужно выбирать из этого объема данных нужные. Я сделал загрузку в табличную часть из этого текстового файла. Но это занимает довольно приличное время. Можно ли как-то сохранить загруженную табличную часть, и при необходимости вызывать обработку и загружать туда эту ТЧ? или может стоить хранить это все в регистре сведений? какие вообще есть варианты решения задачи, чтоб работало наиболее оптимально?
1 andrewks
 
10.09.12
16:23
вариантов много. что за данные, как они обрабатываются?
2 DrShad
 
10.09.12
16:25
(0) можно сохранять в файл ЗначениеВСтрокуВнутр(), но там могут быть приколы со ссылочными данными
можно пихать в ХранилищеЗначений, те же грабли с ссылочными данными
3 Eugene_life
 
10.09.12
16:28
Регламентым заданием закидывать эти данные в SQL таблицу. Пользователь работает с этой таблицей.
4 Kashemir
 
10.09.12
16:30
Как вариант сериализировать через ХТДО в хмл и засунуть в хранилище значения.
5 mannilele
 
10.09.12
16:34
Да данные простые- в каждой строке- артикул, два наименования и две цены. Только таких строк почти миллион
6 DrShad
 
10.09.12
16:36
(5) ну тогда любые методы хороши
7 mannilele
 
10.09.12
16:36
Так..и куда копать? в смысле- где посмотреть, как это делать? а то я пока в 8-ке тяжко понимаю
8 DrShad
 
10.09.12
16:38
(7) какой из вариантов? если ХранилищеЗначений то в СП есть пример
9 mannilele
 
10.09.12
16:39
(8) Да почему-то про хранилище значений и подумал...была задача, то же как вариант нашел использовать его. Спс, щас посмотрю
10 mannilele
 
10.09.12
16:59
Сделал так: создал константу, тип у нее- хранилище значений. Написал в форме обработки:

&НаКлиенте
Процедура ПриЗакрытии()
   ВыгрузитьТаблицу();
КонецПроцедуры

&НаСервере
Процедура ВыгрузитьТаблицу()
   Хран=Новый ХранилищеЗначения(Объект.Номенклатура);
   Константы.ТаблицаНоменклатурыJohnDeere=Хран;
КонецПроцедуры

При закрытии выдает ошибку: Переданное значение не может быть помещено в ХранилищеЗначения, поскольку не сериализуется или содержит вложенный несериализуемый элемент
11 kochurovg
 
10.09.12
17:05
Не лучше создать регистр сведений - в него и писать данные.
2 + 2 = 3.9999999999999999999999999999999...