Имя: Пароль:
1C
1С v8
Как записать значение в реквизиты внешней обработки?
0 k_aleks80
 
16.03.15
11:25
Следующая ситуация: имеется внешняя обработка с некоторым набором реквизитов (СписокСтатей1, ..., СписокСтатей9, ВидРасчета - тип: СписокЗначений). У обработки есть две управляемые формы - "Форма" и "ФормаНастройки". Из "Формы" вызывается "ФормаНастройки", затем по кнопке "ВосстановитьПоУмолчанию" происходит заполнение реквизитов формы:
[code]
&НаСервере
Процедура ВосстановитьНаСервере()
    
    ТекОбработка = РеквизитФормыВЗначение("ОбработкаОбъект");
    
    ТекОбработка.СписокСтатей1.Очистить(); //Оплата за сверхурочные часы, включая НДФЛ 13%:
    ТекОбработка.СписокСтатей1.Добавить(ПланыВидовРасчета.Начисления.НайтиПоКоду("СВХУР"));
    ТекОбработка.СписокСтатей1.Добавить(ПланыВидовРасчета.Начисления.НайтиПоКоду("ПРАЗД"));
    ТекОбработка.СписокСтатей1.Добавить(ПланыВидовРасчета.Начисления.НайтиПоКоду("ПРДОП"));
    
        // и т.д.
    
    ТекОбработка.ВидРасчета.Очистить();
    ТекОбработка.ВидРасчета.Добавить(ПланыВидовРасчета.Начисления.НайтиПоКоду("БЛН"));
    
    ЗначениеВРеквизитФормы(ТекОбработка, "ОбработкаОбъект");
    
КонецПроцедуры

&НаКлиенте
Процедура Восстановить(Команда)
    ВосстановитьНаСервере();
КонецПроцедуры [/code]

Все ясно и понятно. Теперь, при вызове "Формы" и нажатии кнопки "Заполнить" должно выполняться заполнение данных на этой форме, с выполнением запроса к БД. В качестве параметра в запросе используется реквизит обработки ВидРасчета, но он пустой!
    Как я понимаю, проблема при заполнении реквизитов обработки в "ФормеНастройки". Т.е. если бы это был внутренний прикладной объект БД (Справочник, Документ), тогда перед обновлением реквизита на форме (ЗначениеВРеквизитФормы) достаточно было бы записать объект и тогда на "Форме" значение реквизита ВидРасчета было бы с данными. Однако в данном случае у объекта ВнешняяОбработка метода Записать() нет. Как мне заполнить реквизиты обработки, чтобы я мог использовать их в запросе, в другой форме?
1 DexterMorgan
 
16.03.15
11:27
Хранилища настроек
2 k_aleks80
 
16.03.15
12:13
А не слишком ли это круто? Получается из модуля формы, например, "Форма1" я не могу программно заполнить реквизиты обработки, чтобы значения этих реквизитов (заполненные в предыдущей форме) получить в модуле 2-й формы ("Форма2")?
3 DexterMorgan
 
16.03.15
12:16
(2) можешь, все зависит от ключа:

ХранилищеНастроекМенеджер.<Имя хранилища> (SettingsStorageManager.<Имя хранилища>)
Сохранить (Save)
Синтаксис:

Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)
Параметры:

<КлючОбъекта> (обязательный)

Тип: Произвольный.
Ключ объекта настройки.
<КлючНастроек> (необязательный)

Тип: Строка.
Ключ сохраняемых настроек.
<Настройки> (обязательный)

Тип: Произвольный.
Содержит настройки, которые нужно сохранить в хранилище.
<ОписаниеНастроек> (необязательный)

Тип: ОписаниеНастроек.
Описание настроек.
<ИмяПользователя> (необязательный)

Тип: Строка.
Имя пользователя, настройки которого сохраняются.
Если не указан, то сохраняются настройки текущего пользователя.
Описание:

Сохраняет настройку в хранилище.
Вызывает обработчик ОбработкаСохранения.

Доступность:

Сервер, толстый клиент, внешнее соединение.
4 k_aleks80
 
16.03.15
12:53
Разобрался. Спасибо, помогло.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший