|
Получение значений сохраненных реквизитов внешней формы | ☑ | ||
---|---|---|---|---|
0
НачинающийНик
18.02.19
✎
23:20
|
Извините за дурацкий вопрос, но гуглю уже третий час, никак не могу понять.
Для внешней обработки добавленной в УТ в модуле объекта необходимо получить значения сохраненных (с помощью Автоматического сохранения данных в настройках) реквизитов формы. Как это сделать? Нагуглил только НастройкиФормы = ХранилищеСистемныхНастроек.Загрузить(ЭтаФорма.ИмяФормы+"/ТекущиеДанные", "");, но уперся в то, что не знаю на что заменить ЭтаФорма.ИмяФормы |
|||
1
jsmith82
18.02.19
✎
23:35
|
Настройки доступны в модуле формы обработки в процедуре
&НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) КонецПроцедуры Далее думай, как Настройки (соответствие) передать в модуль обработки |
|||
2
jsmith82
18.02.19
✎
23:36
|
В смысле параметром в нужную процедуру
|
|||
3
НачинающийНик
18.02.19
✎
23:44
|
В модуле формы понятно, мне же в модуле объекта надо - запуск по расписанию, форма не создается, нужно только прочитать значения сохранённых реквизитов, чтобы выполнять процедуру.
|
|||
4
НачинающийНик
18.02.19
✎
23:49
|
В Справочнике ДополнительныеОтчетыИОбработки есть хранилище значений Хранилище настроек, по идее нужно оттуда выковыривать.
Вроде бы при выполнении команды передается ПараметрыВыполненияКоманды, только как их посмотреть, отладчиком туда не залезть - внешняя форма. |
|||
5
jsmith82
19.02.19
✎
00:22
|
Скачай инструменты разработчика. Там есть просмотрщик хранилищ настроек
|
|||
6
НачинающийНик
19.02.19
✎
02:22
|
Скачал, нашел эти настройки.
Все равно не понятно как получить данные из сохраненных настроек, из модуля объекта обработки :( Апну, может кто поопытнее набредет на тему |
|||
7
hhhh
19.02.19
✎
04:07
|
(6) сделать свое сохранение настроек. Не путаться с формой.
|
|||
8
НачинающийНик
19.02.19
✎
10:49
|
Ребят, никто не кинет в меня пример? Туплю жёстко, у меня там и ссылочного типа и СЗ и ТЗ на сохраняется.
|
|||
9
НачинающийНик
19.02.19
✎
10:50
|
Можно конечно и по простому - через файл. Но хочется красоты и научиться ))
|
|||
10
Cyberhawk
19.02.19
✎
10:51
|
Меняй архитектуру. Не надо пользоваться тем, что сохранено в реквизитах формы, вне формы
|
|||
11
НачинающийНик
19.02.19
✎
11:39
|
(10) План то красивый был - открываешь обработку, там настройки параметров для выполнения задачи. Настроил, сохранил, закрыл и забыл.
А дальше по регламенту запуск ежедневно, формирование отчета, отправка его на почту. |
|||
12
НачинающийНик
19.02.19
✎
11:40
|
Если надо что-то поменять - снова открыл форму, поменял настройки и вперед.
|
|||
13
Cyberhawk
19.02.19
✎
11:43
|
Ну так это делается конечно же не так, как ты себе представил.
План реальный, применяется много где успешно. Но значения не хранятся в реквизитах формы. |
|||
14
Cyberhawk
19.02.19
✎
11:44
|
В демо-конфе БСП есть пример по загрузке прайс-листа с сайта 1С, где настройки редактируются в форме подключаемой обработки (отдельная команда настроек) и испольтзуются в серверном методе (регл. задании) этой же обработки
|
|||
15
hhhh
19.02.19
✎
12:06
|
(11) делаешь примерно так, где-то при записи.
СтруктураСохр = Новый Структура("Рекв1, Рекв2, Рекв3", Рекв1, Рекв2, Рекв3); ХранилищеСистемныхНастроек.Сохранить("МойОбъект", "МоиНастройки", СтруктураСохр) а где-то при вызове обработки СтруктураСохр = ХранилищеСистемныхНастроек.Загрузить("МойОбъект", "МоиНастройки") |
|||
16
НачинающийНик
19.02.19
✎
15:42
|
(15) Супер! То, что нужно было!
|
|||
17
НачинающийНик
22.02.19
✎
10:55
|
(15) вскрылась проблемка - при регламентном запуске не загружаются настройки.
Я так думаю, это связано с тем, что регламентные задания запускаются под другим пользователем? Как узнать под каким пользователем проходит запуск регламентного? Как скопировать настройки с одного пользователя на того, под кем регламентное запускается? |
|||
18
Мимохожий Однако
22.02.19
✎
11:09
|
(11) Добавь запись реквизитов обработки при закрытии формы.
(15)А при запуске регламентного задания добавь процедуру восстановления реквизитов обработки, которые лежат в ХранилищеСистемныхНастроек... |
|||
19
Мимохожий Однако
22.02.19
✎
11:11
|
Пример из УТ10.3 для внешних обработок,используемый в регламентных заданиях
Процедура СохранитьРеквизитыОбработки() Экспорт //вторая процедура ВосстановлениеРеквизитовОбработки нужна при запуске регламентным заданием РеквизитыОбработки=Новый Структура; Для каждого ТекРеквизит Из Метаданные().Реквизиты Цикл ЗначениеРеквизита=ЭтотОбъект[ТекРеквизит.Имя]; РеквизитыОбработки.Вставить(ТекРеквизит.Имя,ЗначениеРеквизита); КонецЦикла; Новзапись=РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи(); НовЗапись.Пользователь=Неопределено; НовЗапись.ИмяОбъекта=ИмяОбъекта; НовЗапись.НаименованиеНастройки=НаименованиеНастройки; Новзапись.Прочитать(); НовЗапись.Пользователь=Неопределено; НовЗапись.ИмяОбъекта=ИмяОбъекта; НовЗапись.НаименованиеНастройки=НаименованиеНастройки; НовЗапись.СохраненнаяНастройка=Новый ХранилищеЗначения(РеквизитыОбработки); Новзапись.СохранятьАвтоматически=Истина; Новзапись.ИспользоватьПриОткрытии=Истина; Новзапись.Записать(); КонецПроцедуры Процедура ВосстановитьРеквизитыОбработки() Экспорт Новзапись=РегистрыСведений.СохраненныеНастройки.СоздатьМенеджерЗаписи(); НовЗапись.Пользователь=Неопределено; НовЗапись.ИмяОбъекта=ИмяОбъекта; НовЗапись.НаименованиеНастройки=НаименованиеНастройки; Новзапись.Прочитать(); Если НовЗапись.Выбран() Тогда РеквизитыОбработки=НовЗапись.СохраненнаяНастройка.Получить(); ЗаполнитьЗначенияСвойств(ЭтотОбъект,РеквизитыОбработки); КонецЕсли; КонецПроцедуры |
|||
20
НачинающийНик
22.02.19
✎
11:11
|
(18) так вот не пойму, как их восстановить/получить из модуля объекта. Автосохранение есть конечно.
Делаю как в (15), добавил кнопку Сохранить и при запуске функции из объекта обработки читаю и применяю при формировании. |
|||
21
НачинающийНик
22.02.19
✎
11:12
|
(19) понял, попробую
|
|||
22
Мимохожий Однако
22.02.19
✎
11:13
|
(20) Как читаешь?
|
|||
23
НачинающийНик
22.02.19
✎
11:16
|
(19) нет такого регистра в 11.4
(22) СтруктураСохр = ХранилищеСистемныхНастроек.Загрузить("МойОбъект", "МоиНастройки") |
|||
24
НачинающийНик
22.02.19
✎
11:18
|
(23)+ пока запускаю регламентную команду из под пользователя который делал настройку все ок отрабатывает, а при реглам. запуске - фиг.
|
|||
25
НачинающийНик
22.02.19
✎
11:23
|
Нашел в инете
СтруктураНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта,КлючНастроек,,ВладелецНастроек); |
|||
26
НачинающийНик
22.02.19
✎
11:23
|
Осталось понять под каким пользователем регламент запускается )
|
|||
27
aleks_default
22.02.19
✎
11:26
|
Ну так в консоли рег. заданий установи нужного пользователя
|
|||
28
Мимохожий Однако
22.02.19
✎
11:40
|
(25) Лучше бы в самой конфигурации искал...
|
|||
29
aleks_default
22.02.19
✎
11:44
|
кстати, если сам создаешь рег. задание, то что мешает установить пользователя?
|
|||
30
Мимохожий Однако
22.02.19
✎
11:51
|
(29) ...мешает нехватка времени из-за поисков в гугле ))
|
|||
31
Cyberhawk
22.02.19
✎
12:26
|
Какой только херней не занимаются, придумывая себе проблемы, лишь бы не делать так, как вендор прописал
|
|||
32
DrWatson
22.02.19
✎
12:43
|
(25) синтаксис-помощник лучше бы посмотрел, вместо гугла
СтандартноеХранилищеНастроекМенеджер.Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>) <ИмяПользователя> - имя пользователя регламетного задания. можно пойти немного дальше. По сути это просто строка, можешь прописать туда любую уникальную строки и от имени этой же строки потом считывать настройки в регл. задании. |
|||
33
FIXXXL
22.02.19
✎
13:22
|
(32) там где-то есть примечание, что читать настройки всех пользователей можно только с полными правами ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |