Страница 1 из 1

DSK: Добавление новых настроек к старым

Добавлено: 19 мар 2020, 15:52
edd
Добрый день!

Столкнулся с отсутствием понимания, как добавлять новые настройки к старым, не переделывая каждый раз всё заново, хранятся ли они в DSK ...

Суть вопроса:

Мне нужно добавить новую функцию пользователя с горячей клавишей вызова фейса в список функций пользователя (список вызывается через SHIFT+F9), чтобы она была доступна плюс к существующим.

В сети лежит давно сформированный DSK файл, который указывается в inc файле

Код: Выделить всё

[DeskTop]
  GlobalDesktopFileName=\\Mks-Galaktika2\gal910\Start\user190426.dsk
Весит DSK 196Кб
В DSK много чего - конфигурация основного меню, функции пользователей, скрытые не используемые печатные формы и т.д.
Я могу не указывать GlobalDesktopFileName, запустить вообще чистую галактику, вызывать пустой список функций, загрузить там же из user190426.dsk, добавить свою функцию вызова, выйти и обнаружить у себя dsk файлик весом 34Кб.
Ясно-понятно, что это то, что я подгрузил и + моя функция. Если я укажу в inc-е этот файлик, все настройки пропадут, кроме списка функций.

Хорошо, я чищу галактику, поключаюсь с inc файлом.
Вижу список функций, все настройки работают как надо...
Ок, добавляю мою функцию вызова в списке функций.
Как теперь выгрузить / сохранить всё ?
Или как добавить к существующим настройкам?

Мне говорят "никак, делай всё заново".
А интуиция говорит "спроси на форуме".

Кто из них прав? Помогите пожалуйста разобраться с этим вопросом :?

Re: DSK: Добавление новых настроек к старым

Добавлено: 19 мар 2020, 17:15
spark
Надо скопировать этот user190426.dsk, изменить имя на имя своего dsk
Заменить свой dsk
Запустить систему, сделать все, что надо
Закрыть
Забрать свой dsk
Переименовать его в user190426.dsk и заменить исходный.

Re: DSK: Добавление новых настроек к старым

Добавлено: 20 мар 2020, 08:33
edd
Спасибо за последовательность действий! 8)
+

Re: DSK: Добавление новых настроек к старым

Добавлено: 20 мар 2020, 08:36
edd
Ещё вопрос в догонку ;-)

Планируется переход на новый сервак с обновлением галактики.
Все старые dsk не получится подключить таким же макаром?

Re: DSK: Добавление новых настроек к старым

Добавлено: 20 мар 2020, 12:41
spark
edd писал(а):Ещё вопрос в догонку ;-)

Планируется переход на новый сервак с обновлением галактики.
Все старые dsk не получится подключить таким же макаром?
Каким таким макаром? Они же и так останутся в папках у пользователей.
Мы недавно первый раз за 2 года обновились. dsk не удаляли, но в процессе эксплуатации пришлось парочку удалить, потому что начали вылазить какие-то странные проблемы у некоторых пользователей. Правда потом оказалось, что это было не из-за dsk =)

Re: DSK: Добавление новых настроек к старым

Добавлено: 20 мар 2020, 13:12
Irina_
Здравствуйте. Когда-то dsk приходилось удалять, т. к. периодически возникали проблемы, и решить их можно было только так. Сейчас это происходит не так часто, но в последний год 2-3 раза приходилось удалять dsk – ничего другое не помогало.
Я могу ошибаться, но вроде где-то было, что при изменении версии ( возможно и при обновлении ) Галактики рекомендовали чистить tmp и dsk.
Последнее время в текстовиках к патчам периодически попадались доработки, когда отказались от сохранения настроек некоторых отчетов в dsk, а стали сохранять непосредственно в базе, т. к. многим пользователям проблематично восстановить нужные настройки формирования отчетов в случае, когда dsk удалили.

Re: DSK: Добавление новых настроек к старым

Добавлено: 21 мар 2020, 19:08
maikl
Странно. Мы при первом же странном поведении Галактики (пропадает меню и т.п.) удаляем dsk.
Ну а если установили обновления, то почти всегда.

Re: DSK: Добавление новых настроек к старым

Добавлено: 24 мар 2020, 10:23
edward_K
Просьба уточнить - речь именно о настройках или о параметрах? Что почти равнозначно, но все таки чуть чуть разный смысл.
Можете попробовать вместо DSK использовать ParamStore.vih - он пишет в таблицы ParameterStore, MarkerStore.
Настройки тоже без проблем создавать свои - перехватываете обработку двух расширений и все.

Код: Выделить всё

#include CreateTune.vih
#ifdef ComponentVersion
#component "F_USERREPORT"
#end



Handler with replace F_MYRES_DateModifyTune on ExtensionPoint
  epDateModifyTuneEx (TS : ObjStartCreateTuneEx)
Action
{
  TS.SetLastDateModTuneComp('#__COMPONENT__', 01, 07, 2013);
  Result := true;
}

Handler with replace F_MYRES_CreateTune on extensionPoint
  epCreateTuneComponent (TR: ObjCreateTuneEx) [200]
Action
{
  Result := true;
  TR.SetComponent('#__COMPONENT__');
  TR.SetNextNumberTune(16000); // 

  TR.AddPart (ttSysUserTune,'TUNE_DOP','TUNE','Дополнительные настройки',0);
.....
)
Все свои настройки рекомендую собирать в отдельный ресурс - чтобы не отключать его при проверке стандартного функционала.
Если вы выключите в cfg автообновление настроек, это не так черевато, но лучше все равно не отключать.

Re: DSK: Добавление новых настроек к старым

Добавлено: 25 мар 2020, 09:34
Chernikov
maikl писал(а):Странно. Мы при первом же странном поведении Галактики (пропадает меню и т.п.) удаляем dsk.
Ну а если установили обновления, то почти всегда.
Делаю точно так же..

Re: DSK: Добавление новых настроек к старым

Добавлено: 25 мар 2020, 09:56
edward_K
В dsk хранятся не только переменные, но и текущий модуль, открытые интерфейсы, а самое главное параметры положения элементов интерфейсов - из за этого если интерфейс расширяли или двигали что то, а в патче прошли изменения, то dsk приходится удалять.

Re: DSK: Добавление новых настроек к старым

Добавлено: 25 мар 2020, 10:06
Irina_
А еще там живут некоторые маркеры )))

Re: DSK: Добавление новых настроек к старым

Добавлено: 25 мар 2020, 10:26
edd
edward_K писал(а):В dsk хранятся не только переменные, но и текущий модуль, открытые интерфейсы, а самое главное параметры положения элементов интерфейсов - из за этого если интерфейс расширяли или двигали что то, а в патче прошли изменения, то dsk приходится удалять.
Т.е. если очень аккуратно что-то менять перед сохранением DSK, его можно не удалять? Или в любом случае он сохранит положение все ранее добавленных элементов, даже если не открывать фейсы?

ParamStore.vih это хранилище параметров интерфейсов? Как его использовать то?

Но все параметры, не только интерфейсов, в любом случае хранятся в DSK, один ParamStore не поможет

Re: DSK: Добавление новых настроек к старым

Добавлено: 25 мар 2020, 10:55
edward_K
если очень аккуратно, то скорей всего не нужно будет удалять. Проблема еще в том, что часть элементов могут менятся программно - они тоже туда запишутся. Естественно если открыть соответствующий фейс. Это не везде, но местами есть. Поэтому если нужно сохранить параметры в отчетах - то ничего лишнего не открывайте.

в ParamStore в секции static: прописано, что как юзать. При компиляции вам нужно прописать в проекте vih и подключить c_common.res.
В интерфейс можете ничего не подключать, а сразу юзать функции без имени объекта.
Например можно так
#DeserializeParameter(Kod_GNI, 'Kod_GNI');
- восстановить. declare смотрите в vih
SerializeParameter(Kod_GNI, 'Kod_GNI', self);
#SerializeParameter(wSisOpl, 'wSisOpl');
- записать
Аналогично с маркерами.
Конечно это касается только своих отчетов. В Стандарте сие юзается в основном в кадрах и в зарплате.
В приказе на прием на работу например при выборе системы оплаты - можете попробовать по журналу отследить.
Если надо иметь возможность администрить, например всем установить что то по умолчанию - то добавляйте настройки.