Имя: Пароль:
1C
 
Как оптимизировать сохранение данных на серверной форме?
0 pro3ri
 
22.01.16
13:36
Добрый день!
Есть обработка

&НаСервере
Процедура ПоискНаСервере()
    Список = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска);
    Список.ПерваяЧасть();
    ВсегоНайдено = Список.ПолноеКоличество();
    Если Список.СлишкомМногоРезультатов()  Тогда
        Сообщить("СлишкомМногоРезультатов! Усеки!");    
        Возврат;
    КонецЕсли;
    
    Для каждого Найдено Из Список Цикл
    
        Строка = Результат.Добавить();
        Строка.Значение = Строка(Найдено.Значение);
        Строка.Объект = Найдено.Значение;
    
    КонецЦикла;
    Адрес = ПоместитьВоВременноеХранилище(Список,УникальныйИдентификатор);
    
    ТекущийИнтервал = Строка(Список.НачальнаяПозиция()) +" - " + Строка(Список.НачальнаяПозиция()+список.Количество());
    
КонецПроцедуры

&НаКлиенте
Процедура Поиск(Команда)
    ПоискНаСервере();
КонецПроцедуры

&НаСервере
Процедура ВпередНаСервере()
    Список = ПолучитьИзВременногоХранилища(Адрес);
    
    Попытка
        Список.СледующаяЧасть();    
    Исключение
        Сообщить("Больше нет элементов!");
        Возврат;
    КонецПопытки;

    Результат.Очистить();
    Для каждого Найдено Из Список Цикл
    
        Строка = Результат.Добавить();
        Строка.Значение = Строка(Найдено.Значение);
        Строка.Объект = Найдено.Значение;
    
    КонецЦикла;
    Адрес = ПоместитьВоВременноеХранилище(Список,УникальныйИдентификатор);

    ТекущийИнтервал = Строка(Список.НачальнаяПозиция()) +" - " + Строка(Список.НачальнаяПозиция()+список.Количество());

КонецПроцедуры

&НаКлиенте
Процедура Вперед(Команда)
    ВпередНаСервере();
КонецПроцедуры

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

    Попытка
        Список.ПредыдущаяЧасть();
    Исключение
        Сообщить("Это начало!");
        Возврат;
    КонецПопытки;
    
    Результат.Очистить();
    Для каждого Найдено Из Список Цикл
    
        Строка = Результат.Добавить();
        Строка.Значение = Строка(Найдено.Значение);
        Строка.Объект = Найдено.Значение;
    
    КонецЦикла;
    Адрес = ПоместитьВоВременноеХранилище(Список,УникальныйИдентификатор);
    
    ТекущийИнтервал = Строка(Список.НачальнаяПозиция()) +" - " + Строка(Список.НачальнаяПозиция()+список.Количество());
    
КонецПроцедуры

&НаКлиенте
Процедура Назад(Команда)
    НазадНаСервере();
КонецПроцедуры

ПоместитьВоВременноеХранилище - это подходящее решение? Как бы сделали Вы?
1 Волшебник
 
модератор
22.01.16
13:38
Не слишком ли сильно ты работаешь? Надо же и отдыхать
2 vicof
 
22.01.16
13:43
(0) Шта?
3 pro3ri
 
22.01.16
14:04
(2) Есть разные методы сохранения переменной формы, созданной на сервере.
Список = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска); реализовал с помощью ПоместитьВоВременноеХранилище, но хотелось бы узнать как делают профи...
4 vicof
 
22.01.16
14:18
(3) Поздравляю, ты профи
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn