Имя: Пароль:
1C
1С v8
Помогите с кодом
0 DonJon
 
28.04.15
22:57
Люди помогите расшифровать предназначение кода.
&НаСервереБезКонтекста
Процедура ДобавитьСтрокуКСпискуВыбора(МассивСохраняемыхЗначений, ЗначениеСохранения, ИмяПараметраДляСохранения)
    
    Если ПустаяСтрока(ЗначениеСохранения) Тогда
        Возврат;
    КонецЕсли;
    
    НайденныйЭлемент = МассивСохраняемыхЗначений.Найти(ЗначениеСохранения);
    Если НайденныйЭлемент <> Неопределено Тогда
        МассивСохраняемыхЗначений.Удалить(НайденныйЭлемент);
    КонецЕсли;
    
    МассивСохраняемыхЗначений.Вставить(0, ЗначениеСохранения);
    
    Пока МассивСохраняемыхЗначений.Количество() > 10 Цикл
        МассивСохраняемыхЗначений.Удалить(МассивСохраняемыхЗначений.Количество() - 1);
    КонецЦикла;
    
    Если (ЗначениеЗаполнено(ИмяПараметраДляСохранения)) И ТипЗнч(ИмяПараметраДляСохранения) = Тип("Строка") Тогда
        ХранилищеОбщихНастроек.Сохранить(ИмяПараметраДляСохранения,, МассивСохраняемыхЗначений);
    КонецЕсли;
    
КонецПроцедуры
1 Beduin
 
28.04.15
23:00
(0) Писал этот код наркоман.
2 Beduin
 
28.04.15
23:01
(0) А так держит массив из десяти элементов и в начало вставляет сохраняемое значение.
3 RomanYS
 
28.04.15
23:02
переданное значение вставляется в начало массива,
если элементов больше 10, то последний удаляется
4 Zamestas
 
28.04.15
23:03
(0) Дык это адский стек.
5 Zamestas
 
28.04.15
23:04
+(4) С недописанным версионированием.
6 DonJon
 
28.04.15
23:06
(5) Это как?
7 Drac0
 
28.04.15
23:06
(0) Только в 1С можно сказать: "Что непонятно? Все же по русски написано!"

По теме: сохраняем массив значений, максимум из 10 элементов. Но при этом передаем элемент, который нам надо обязательно сохранить. Для этого мы перемещаем его на 0 позицию массива.
8 Zamestas
 
28.04.15
23:08
На кой хранить только 10 последних элементов? Я бы еще хранил кто и когда их менял.
9 DonJon
 
28.04.15
23:08
(7) Всем Спасибо, а то что-то меня за циклило).
10 Zamestas
 
28.04.15
23:10
+(8) Т.к.
>>ХранилищеОбщихНастроек.