Переход между базами в программе
Модераторы: m0p3e, edward_K, Модераторы
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
Re: Переход между базами в программе
Вообще идея одновремнного использования в Галактике двух и более баз одновременно представляется мне в корне не правильной.
Попробуйте что-нить почитать о Ra.NET как я предлагал выше.
Попробуйте что-нить почитать о Ra.NET как я предлагал выше.
Жду выхода Вселенная 2.12!
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Переход между базами в программе
Max-у
Вообще вопрос был очень простой - есть ли такая функция или нет и все Выяснили,что ее нет в ВИПе. В принципе уже вопрос как-бы исчерпан. Но очень благодарен всем, что подсказали пути решения другие..хотя не из ВИПа, как хотелось бы.
Да, нашел функцию получения пути на текущую базу - она есть, а вот установки нет.
Исходников у меня Галактики нет..поэтому посмотреть не смогу пример. И я чего-то опять не понял..а если нет исходников, то нельзя вообще подцепить свою функцию из DLL?
По поводу того, что цеплять две базы неверно. Не понял почему такое заключение...в чем проблемы?
Во-первых, вообще есть штатные функции ВИПа Галактики и я не выхожу на пределы их возможностей.
Во-вторых, видимо не поняли задачу. Никакой функционал Галактики я не переделываю.
Просто если работают, к примеру, 6 фирм в холдинге. И я хочу продать товар в количестве 10 ед. Но он размещен на 4 фирмах - 1 на одной, 2 на другой, 2 на третей и 5 на четвертой. Я продаю с первой фирмы. На первой его всего 1 ед. Значит надо переместить товар сначало на первую фирму с трех у которых есть товар,а затем просто отпустить его. ПРи этом создается множество документов на передачу-приход товара между фирмами холдинга (расходные-приходные накладные). Чисто эргономически задача довольно сложная по вводу документов и недопущении ошиюок в них, да плюс сюда надо приплюсовать экспорт-импорт документов. На само же деле все можно сделать автоматически - создать все приходные-расходные накладные между фирмами без всяких ошибок. ПРи этом мы не лезем в идеологию Галактики - там все верно в рамках каждой фирмы. Просто решается вопрос сокращения трудозатрат при вышеуказанной операции. Более того, прописав механизм формирования отпускных цен мы может управлять при таких операциях еще и прибылью и затратами на каждой фирме холдинга, оптимизируя налогообложение. Чаще такое сложное перемещение и делается для последней цели.
Я не вижу никакого криминала с точки зрения нарушения функционирования системы. Более того, если завтра выйден новая версия, то в рамках каждой БД все будет работать нормально и никаких проблем с конвертацией не будет...исчезнет только эрганомика (вместо прямого создания накладных будет опять экспорт-импорт), но работа не остановится..будут работать как раньше в крайнем случае, если не удастся переписать эргономику.
На счет RA-net - а когда сроки сдачи?...какая политика по нему и вообще как перейти с текущей версии и техналогий в ней на ra-net? и т.д.... По-моему, тут вопрос намного больше, чем с моей проблемой. Пока я даже политики продаж по нему не вижу..что говорить об использовании...
А решения проблем холдинга описанные здесь - это пара недель программирования.
С уважением, Игорь
Вообще вопрос был очень простой - есть ли такая функция или нет и все Выяснили,что ее нет в ВИПе. В принципе уже вопрос как-бы исчерпан. Но очень благодарен всем, что подсказали пути решения другие..хотя не из ВИПа, как хотелось бы.
Да, нашел функцию получения пути на текущую базу - она есть, а вот установки нет.
Исходников у меня Галактики нет..поэтому посмотреть не смогу пример. И я чего-то опять не понял..а если нет исходников, то нельзя вообще подцепить свою функцию из DLL?
По поводу того, что цеплять две базы неверно. Не понял почему такое заключение...в чем проблемы?
Во-первых, вообще есть штатные функции ВИПа Галактики и я не выхожу на пределы их возможностей.
Во-вторых, видимо не поняли задачу. Никакой функционал Галактики я не переделываю.
Просто если работают, к примеру, 6 фирм в холдинге. И я хочу продать товар в количестве 10 ед. Но он размещен на 4 фирмах - 1 на одной, 2 на другой, 2 на третей и 5 на четвертой. Я продаю с первой фирмы. На первой его всего 1 ед. Значит надо переместить товар сначало на первую фирму с трех у которых есть товар,а затем просто отпустить его. ПРи этом создается множество документов на передачу-приход товара между фирмами холдинга (расходные-приходные накладные). Чисто эргономически задача довольно сложная по вводу документов и недопущении ошиюок в них, да плюс сюда надо приплюсовать экспорт-импорт документов. На само же деле все можно сделать автоматически - создать все приходные-расходные накладные между фирмами без всяких ошибок. ПРи этом мы не лезем в идеологию Галактики - там все верно в рамках каждой фирмы. Просто решается вопрос сокращения трудозатрат при вышеуказанной операции. Более того, прописав механизм формирования отпускных цен мы может управлять при таких операциях еще и прибылью и затратами на каждой фирме холдинга, оптимизируя налогообложение. Чаще такое сложное перемещение и делается для последней цели.
Я не вижу никакого криминала с точки зрения нарушения функционирования системы. Более того, если завтра выйден новая версия, то в рамках каждой БД все будет работать нормально и никаких проблем с конвертацией не будет...исчезнет только эрганомика (вместо прямого создания накладных будет опять экспорт-импорт), но работа не остановится..будут работать как раньше в крайнем случае, если не удастся переписать эргономику.
На счет RA-net - а когда сроки сдачи?...какая политика по нему и вообще как перейти с текущей версии и техналогий в ней на ra-net? и т.д.... По-моему, тут вопрос намного больше, чем с моей проблемой. Пока я даже политики продаж по нему не вижу..что говорить об использовании...
А решения проблем холдинга описанные здесь - это пара недель программирования.
С уважением, Игорь
Некоммерческое общение в форуме
Re: Переход между базами в программе
Если не ошибаюсь, то приведенные мною выше функции - это функции атлантиса, т.е. иметь исходники гал-ки для их использования не надо, но надо иметь атлантис (именно атлантис , а не суппорт), потом пишется библиотеку на том же паскале, в которой описываем свою функцию которая вызывает функцию атлантиса, что-то типа:
library ChangeBase;
uses ....
function SetNewDBPath(PathBase: string): word; export;
begin
SetNewDBPath:=ChangeDataPath(PathBase);
end;
exports
SetNewDBPath index 1
;
begin
....
end.
, компилится с использованием атлантиса (т.е. по большому счету с использованием dcu атлантиса), на выходе получаем dll, которую кладем в папку ЕХЕ, далее в своем проекте описываем
function SetNewDBPath : word ; external 'название_библиотеки.dll' ;
После этого хоть на випе, хоть на фкоме можно использовать свою функцию, которая и будет изменять путь на базу.
Короче, что-то типа этого
library ChangeBase;
uses ....
function SetNewDBPath(PathBase: string): word; export;
begin
SetNewDBPath:=ChangeDataPath(PathBase);
end;
exports
SetNewDBPath index 1
;
begin
....
end.
, компилится с использованием атлантиса (т.е. по большому счету с использованием dcu атлантиса), на выходе получаем dll, которую кладем в папку ЕХЕ, далее в своем проекте описываем
function SetNewDBPath : word ; external 'название_библиотеки.dll' ;
После этого хоть на випе, хоть на фкоме можно использовать свою функцию, которая и будет изменять путь на базу.
Короче, что-то типа этого
Ищу возможности довести и так отличный продукт до еще большего блеска
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Переход между базами в программе
Большое спасибо.
Есл можно, то поясните человеку, который не делал этого ни разу.... что значит ИМЕЕННО АТЛАНТИС.
Вы пишите, что исходников никаких не надо.
Я правильно понимаю, что все что надо поставляется на официальном диске Галактике, когда покупаешь VIP. У нас он куплен. Или все же надо еще что-то где-то брать?
Или все же надо что-то ДОСТАВАТЬ...(т.е. Галактикой не поставляется)?
Есл можно, то поясните человеку, который не делал этого ни разу.... что значит ИМЕЕННО АТЛАНТИС.
Вы пишите, что исходников никаких не надо.
Я правильно понимаю, что все что надо поставляется на официальном диске Галактике, когда покупаешь VIP. У нас он куплен. Или все же надо еще что-то где-то брать?
Или все же надо что-то ДОСТАВАТЬ...(т.е. Галактикой не поставляется)?
Некоммерческое общение в форуме
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Переход между базами в программе
Я смотрю тут все имеют исходникик Галактики и по ним все смотрят и поэтому не понимают, почему мне так тяжело все сделать ))
Некоммерческое общение в форуме
Re: Переход между базами в программе
Для меня этот вопрос (по Атлантису) тоже до сих пор загадка. Купив VIP, вы получете возможность программировать на нем, используя в том числе и сам Атлантис. На диске с документацией есть вроде бы все что нужно, включая описание "атлантических" компонентов. Что же тогда получит клиент, купив Атлантис? И чем он, этот клиент, будет отличаться (в смысле возможностей "допрограммирования" Галактики) от клиента, купившего VIP, но не купившего Атлантис?
Re: Переход между базами в программе
Атлантис - это атлантис, вип - это вип, это все вещи разные.
Атлантис стоит 4390, вип же - 980.
Вип - компилятор пользовательских интерфейсов , ну и попути всякого добра типа отчеты, меню и т.д.
Атлантис - среда разработки, к примеру взято с сайта:
Средство разработки «Атлантис» предназначено для разработки и функциональной поддержки прикладного программного обеспечения. Все программные изделия «Галактики» разработаны с использованием «Атлантиса».
«Атлантис» представляет собой высокопроизводительный инструмент для квалифицированного программиста, использующий технологии объектно-ориентированного программирования.
Используя средство разработки «Атлантис», квалифицированные пользователи могут расширять возможности «системы Галактика» в выбранном направлении. «Атлантис» позволяет с минимальными затратами создавать новые базы данных и соответствующие им программные модули с использованием инструментальных средств, специально разработанных для этих целей.
Средство разработки «Атлантис» функционирует в двухуровневой архитектуре Клиент-Сервер (клиент, включающий в себя сервер приложений, и сервер базы данных). В ближайшее время завершается разработка трехуровневой архитектуры (клиент, сервер приложений, где находится вся прикладная логика, и сервер базы данных).
В грубом представлении атлантис - это набор библиотек, с использованием которого собиралась сама Гал-ка компилятором делфей. Т.е. имея атлантис можно спокойно написать свои библиотеки, использующие функции модулей атлантиса.
Я не знаю как на счет: "все имеют исходники галактики", но мы к примеру одно время проплачивали атлантис. Но потом перестали, так бы я скомпилил библиотеку
Исходники Галактики и атлантис, тоже вещи малость разные, имя атлантис и не имея исходников гал-ки вы можете с нуля писать свою гал-ку, но не сможете взять код какого-нить фейса и подправить его, имея исходники и не имя атлатиса, вы можете исправлять фейсы, но не сможете целиком пересобрать гал-ку (набор галактических библиотек, исполняемые файлы и т.д.)
Самый хороший вариант иметь все Но мечты, мечты ....
Атлантис стоит 4390, вип же - 980.
Вип - компилятор пользовательских интерфейсов , ну и попути всякого добра типа отчеты, меню и т.д.
Атлантис - среда разработки, к примеру взято с сайта:
Средство разработки «Атлантис» предназначено для разработки и функциональной поддержки прикладного программного обеспечения. Все программные изделия «Галактики» разработаны с использованием «Атлантиса».
«Атлантис» представляет собой высокопроизводительный инструмент для квалифицированного программиста, использующий технологии объектно-ориентированного программирования.
Используя средство разработки «Атлантис», квалифицированные пользователи могут расширять возможности «системы Галактика» в выбранном направлении. «Атлантис» позволяет с минимальными затратами создавать новые базы данных и соответствующие им программные модули с использованием инструментальных средств, специально разработанных для этих целей.
Средство разработки «Атлантис» функционирует в двухуровневой архитектуре Клиент-Сервер (клиент, включающий в себя сервер приложений, и сервер базы данных). В ближайшее время завершается разработка трехуровневой архитектуры (клиент, сервер приложений, где находится вся прикладная логика, и сервер базы данных).
В грубом представлении атлантис - это набор библиотек, с использованием которого собиралась сама Гал-ка компилятором делфей. Т.е. имея атлантис можно спокойно написать свои библиотеки, использующие функции модулей атлантиса.
Я не знаю как на счет: "все имеют исходники галактики", но мы к примеру одно время проплачивали атлантис. Но потом перестали, так бы я скомпилил библиотеку
Исходники Галактики и атлантис, тоже вещи малость разные, имя атлантис и не имея исходников гал-ки вы можете с нуля писать свою гал-ку, но не сможете взять код какого-нить фейса и подправить его, имея исходники и не имя атлатиса, вы можете исправлять фейсы, но не сможете целиком пересобрать гал-ку (набор галактических библиотек, исполняемые файлы и т.д.)
Самый хороший вариант иметь все Но мечты, мечты ....
Ищу возможности довести и так отличный продукт до еще большего блеска
Re: Переход между базами в программе
Косякин Игорь на cfin вы часто говорите то что автоматизация не нужна, что спецы из сторней фирмы лучше чем свои и тд..
На мой взгляд Вы сами себе создали проблему - заплатите любому нормальному программисту на Vip и все... и не надо суетится!
А вообще весело Вы написали
"Галактике есть четкий принцип 1 юр.лицо - 1 база данных и нарушать его ни в коем случае нельзя" - это кто ж такое правило установил?
;D
P.S А над регистрацией galnet.exe как OLE сервера я бы вам всеже советовал подумать
/Automation
На мой взгляд Вы сами себе создали проблему - заплатите любому нормальному программисту на Vip и все... и не надо суетится!
А вообще весело Вы написали
"Галактике есть четкий принцип 1 юр.лицо - 1 база данных и нарушать его ни в коем случае нельзя" - это кто ж такое правило установил?
;D
P.S А над регистрацией galnet.exe как OLE сервера я бы вам всеже советовал подумать
/Automation
Re: Переход между базами в программе
!!!
REOPENTABLEBYPATH переключает синоним таблицы во вью на указанный Файл. (я так понял, что "Basedoc" во вью - это тоже синоним! , просто он также называется как и таблица "BASEDOC")
Если используется Журнализация, то все изменения с любыми синонимами на любых файлах будут сваливаться в Журнал ТЕКУЩЕЙ Базы данных!!! При это запросто возможна ситуация, когда в текущей БАЗЕ НЕТ ЗАПИСИ и никогда не было, по которой в жернале есть изменения.
Если использовать CORPO обмен, то лучше Update и Insert не пользовать на синонимах, с REOPENTABLEBYPATH. Хотя...не исключаю возможность корректной настройки CORPO-обмена (ЗАПРОСАМИ), и для таких случаев.
Если REOPENTABLEBYPATH пользовать для чтения информации из одной базы, чтоб изменить что-либо в текущей БАЗЕ ДАННЫХ, то всё будет корректно без навротов.
REOPENTABLEBYPATH переключает синоним таблицы во вью на указанный Файл. (я так понял, что "Basedoc" во вью - это тоже синоним! , просто он также называется как и таблица "BASEDOC")
Если используется Журнализация, то все изменения с любыми синонимами на любых файлах будут сваливаться в Журнал ТЕКУЩЕЙ Базы данных!!! При это запросто возможна ситуация, когда в текущей БАЗЕ НЕТ ЗАПИСИ и никогда не было, по которой в жернале есть изменения.
Если использовать CORPO обмен, то лучше Update и Insert не пользовать на синонимах, с REOPENTABLEBYPATH. Хотя...не исключаю возможность корректной настройки CORPO-обмена (ЗАПРОСАМИ), и для таких случаев.
Если REOPENTABLEBYPATH пользовать для чтения информации из одной базы, чтоб изменить что-либо в текущей БАЗЕ ДАННЫХ, то всё будет корректно без навротов.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Переход между базами в программе
Всем большое спасибо за информацию. Вопрос уже закрыт.
По поводу последнего сообщения. Мы не делаем операций над таблицами, открытыми по другому пути. Просто просмотр. А когда хотим сделать операцию Insert, Update, Delete, то переходим в базу, где эта таблица находится. Соответственно, все изменения будут записываться в журнал этой базы. Так что проблем с журналом я не вижу,т.к. я меняю все в только в ТЕКУЩЕЙ базе всегда.
Всем еще раз большое спасибо за информацию и участие в обсуждении вопроса.
По поводу Атлантиса и ВИПа - никогда не задумывался над отличиями...большое спасибо, что пояснили. Все действительно как-то запутано все со средствами разработки:)
По поводу последнего сообщения. Мы не делаем операций над таблицами, открытыми по другому пути. Просто просмотр. А когда хотим сделать операцию Insert, Update, Delete, то переходим в базу, где эта таблица находится. Соответственно, все изменения будут записываться в журнал этой базы. Так что проблем с журналом я не вижу,т.к. я меняю все в только в ТЕКУЩЕЙ базе всегда.
Всем еще раз большое спасибо за информацию и участие в обсуждении вопроса.
По поводу Атлантиса и ВИПа - никогда не задумывался над отличиями...большое спасибо, что пояснили. Все действительно как-то запутано все со средствами разработки:)
Некоммерческое общение в форуме
Re: Переход между базами в программе
Люди!!!!! А как этой "Реопентаблей" пользоваться?
Я положил таблицу saldomc по пути
'\\Sklad\BackUp\oaxk\saldo\' и вызываю эту фунцию
ReOpenTableByPath(tnsaldomc,'\\Sklad\BackUp\oaxk\saldo\');
А при работе интерфейса получаю ругательства и таблица не открывается.
"tLinkTable.MakeNotFound+DropPosition. Попытка использования незарелистрированной таблицы. Код ошибки: 304."
Если пишу путь без '\' в конце, то ругается:
"Доступ к файлу запрещен. Код ошибки 94. В таблице SaldoMC", а следом то же сообщение что и выше.
Что я не так делаю?
Я положил таблицу saldomc по пути
'\\Sklad\BackUp\oaxk\saldo\' и вызываю эту фунцию
ReOpenTableByPath(tnsaldomc,'\\Sklad\BackUp\oaxk\saldo\');
А при работе интерфейса получаю ругательства и таблица не открывается.
"tLinkTable.MakeNotFound+DropPosition. Попытка использования незарелистрированной таблицы. Код ошибки: 304."
Если пишу путь без '\' в конце, то ругается:
"Доступ к файлу запрещен. Код ошибки 94. В таблице SaldoMC", а следом то же сообщение что и выше.
Что я не так делаю?
Re: Переход между базами в программе
имя файла надо указать
Re: Переход между базами в программе
Точно. Получилось!!! Мерси.