Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Хранилище настроек 1С 8.2


Автор: serezhka1986 28.8.2012, 10:06
Добрый день!
Я новичок в 1С, так что прошу помощи у специалистов. У меня есть внешняя обработка, где имеется табличная часть такого содержания:
Код

-валюта
-код валюты
-дата курса
-курс
-кратность

Пользователь выбирает валюту, а остальные колонки заполняются автоматом через "Срез последних". Здесь все нормально работает.
Далее хочу перед закрытием формы сохранить список валют, которые находятся в табличной части, и при следующем открытии надо заполнить табличную часть этим списком. Такой список не должен быть привязан к конкретному пользоваутелю, тоесть: Какой-нибудь пользователь открыл форму, заполнил табличную часть и закрыл форму. Следующий пользователь открывает данную форму и у него табличная часть должна быть заполнена тем списком, который сформировал первый пользователь. Второй также может изменить список, и эти настройки должны быть уже такими какими он определил. Инными словами, настройки должны быть общими для всех.
Пробую такое реализовать с помощью Хранилища настроек, но по-моему настройки привязываются к конкретному пользователю. Или я ошибаюсь?!
Вот нашкрябал такой код сохранения настроек:
Код

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    СохранениеНастройкиОбновления();
КонецПроцедуры

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

Строго не судите, я только учусь.... Лучше подскажите как правильнее сделать...
Дальше вытягиваю настройки при открытии формы:
Код

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ПолучениеНастроекОбновления();
    
КонецПроцедуры

&НаСервере
Процедура ПолучениеНастроекОбновления()
    
    Валюта = ХранилищеОбщихНастроек.Загрузить(ЭтаФорма, "СписокВалютНастройка");

              Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    КурсыВалютСрезПоследних.Валюта,
        |    КурсыВалютСрезПоследних.Валюта.Код КАК КодВалюты,
        |    КурсыВалютСрезПоследних.Период,
        |    КурсыВалютСрезПоследних.Курс,
        |    КурсыВалютСрезПоследних.Кратность
        |ИЗ
        |    РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
        |ГДЕ
        |    КурсыВалютСрезПоследних.Валюта В (&Валюта)";

    Запрос.УстановитьПараметр("Валюта", Валюта);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

Проблема в том, то запрос возврашает 0 значений. Что не так сделал?

Автор: serezhka1986 28.8.2012, 11:28
Все, данный вопрос решился. Дело в том, что для реквизита Валюта тип данных был установлен не СправочникСсылка.Валюта, а строка. Теперь все работает...   smile 
Но так настройки сохраняются для каждого пользователя свои, а надо чтобы были общими.... можно как-то сделать так через Хранилище настроек?!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)