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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение edd »

Добрый день!

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

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

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

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

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

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

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

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

Кто из них прав? Помогите пожалуйста разобраться с этим вопросом :?
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

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

Сообщение spark »

Надо скопировать этот user190426.dsk, изменить имя на имя своего dsk
Заменить свой dsk
Запустить систему, сделать все, что надо
Закрыть
Забрать свой dsk
Переименовать его в user190426.dsk и заменить исходный.
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение edd »

Спасибо за последовательность действий! 8)
+
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение edd »

Ещё вопрос в догонку ;-)

Планируется переход на новый сервак с обновлением галактики.
Все старые dsk не получится подключить таким же макаром?
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

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

Сообщение spark »

edd писал(а):Ещё вопрос в догонку ;-)

Планируется переход на новый сервак с обновлением галактики.
Все старые dsk не получится подключить таким же макаром?
Каким таким макаром? Они же и так останутся в папках у пользователей.
Мы недавно первый раз за 2 года обновились. dsk не удаляли, но в процессе эксплуатации пришлось парочку удалить, потому что начали вылазить какие-то странные проблемы у некоторых пользователей. Правда потом оказалось, что это было не из-за dsk =)
Irina_
Местный житель
Сообщения: 546
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение Irina_ »

Здравствуйте. Когда-то dsk приходилось удалять, т. к. периодически возникали проблемы, и решить их можно было только так. Сейчас это происходит не так часто, но в последний год 2-3 раза приходилось удалять dsk – ничего другое не помогало.
Я могу ошибаться, но вроде где-то было, что при изменении версии ( возможно и при обновлении ) Галактики рекомендовали чистить tmp и dsk.
Последнее время в текстовиках к патчам периодически попадались доработки, когда отказались от сохранения настроек некоторых отчетов в dsk, а стали сохранять непосредственно в базе, т. к. многим пользователям проблематично восстановить нужные настройки формирования отчетов в случае, когда dsk удалили.
maikl
Местный житель
Сообщения: 1503
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь

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

Сообщение maikl »

Странно. Мы при первом же странном поведении Галактики (пропадает меню и т.п.) удаляем dsk.
Ну а если установили обновления, то почти всегда.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5184
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение 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 автообновление настроек, это не так черевато, но лучше все равно не отключать.
Chernikov
Посетитель
Сообщения: 41
Зарегистрирован: 06 мар 2019, 11:19

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

Сообщение Chernikov »

maikl писал(а):Странно. Мы при первом же странном поведении Галактики (пропадает меню и т.п.) удаляем dsk.
Ну а если установили обновления, то почти всегда.
Делаю точно так же..
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5184
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

В dsk хранятся не только переменные, но и текущий модуль, открытые интерфейсы, а самое главное параметры положения элементов интерфейсов - из за этого если интерфейс расширяли или двигали что то, а в патче прошли изменения, то dsk приходится удалять.
Irina_
Местный житель
Сообщения: 546
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение Irina_ »

А еще там живут некоторые маркеры )))
edd
Постоянный обитатель
Сообщения: 170
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение edd »

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

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

Но все параметры, не только интерфейсов, в любом случае хранятся в DSK, один ParamStore не поможет
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5184
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

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

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