Bug 7093

Summary: Подумать о возможности отказа от модификации базы postgres
Product: SELTA@Etersoft Reporter: Станислав Коробейников <stas>
Component: ОбщееAssignee: Калюхович Юрий <goga>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: lav, stas
Version: 1.1.0   
Target Milestone: версия 1.0.4   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 6158    
Deadline: 2011-04-07   

Description Станислав Коробейников 2011-04-05 18:34:35 MSK
Нужно подумать о возможности отказа от модификации базы postgres.
Comment 1 Калюхович Юрий 2011-04-06 11:26:08 MSK
порядок действий такой: 1С соединяется с master, проверяет наличие требуемой базы и подключений к ней, затем соединяется с требуемой базой.
у нас в odbc master заменен на postgres, 1С в нем тоже проверяет требуемую базу путем запроса представлений sysdatabases и sysprocesses.

вопрос в том, как дать приложению требуемую информацию?
от транслирования частных случаев запросов мы отказались в новом парсере. просто заменять имена полей и представлений мягко говоря не очень хорошо - для 1С возможно и сработает, но для других приложений - нет. template1 вообще лучше не трогать (шаблонная база). можно конечно сделать какую-то базу специально для сельты, но тогда появляются вопросы с ее поддержкой в разных версиях сельты...
Comment 2 Калюхович Юрий 2011-04-06 14:05:08 MSK
По итогам обсуждения будем делать отдельную базу master для сельты, чтобы хранить в ней системные представления mssql и коннектиться к ней вместо postgres. таким образом, базы postgres, template1 теперь затрагиваться не будут.
Comment 3 Калюхович Юрий 2011-04-06 15:37:03 MSK
добавил в gui при подключении проверку и создание базы master. только сейчас она инициализируется как и все другие базы, и отображается в списке баз. насколько это хорошо?
Comment 4 Станислав Коробейников 2011-04-06 16:46:36 MSK
Нормально. Напиши только текст не 
SELTA@Etersoft v.1.1.0, а например "master SELTA@Etersoft v.1.1.0". Так, наверное не влезет. Тогда может без Etersoft.
И защиты, что бы на нее не действовали скрипты обновления для обычных баз SELTA. 
И в скриптах можно проверять select current_database();, что бы это не была бы master. И у master тоже самое.
Comment 5 Калюхович Юрий 2011-04-06 17:48:02 MSK
теперь перед отображением списка баз проверяется наличие базы master и выводится messagebox создать ли ее.
не получилось отображать messagebox сразу после отображения окна "Инициализация БД"
делаю защиту от обновлений
Comment 6 Калюхович Юрий 2011-04-06 18:50:53 MSK
(В ответ на comment #4)
> И защиты, что бы на нее не действовали скрипты обновления для обычных баз
> SELTA. 
> И в скриптах можно проверять select current_database();, что бы это не была бы
> master. И у master тоже самое.

Закоммитил изменения.
Добавил в скрипты проверку на текущую базу, в gui сделал некоторые кнопки управления неактивными. Отображаемый статус - "master SELTA@ 1.1.0".
Нужно посмотреть, как будет работать 1С
Comment 7 Калюхович Юрий 2011-04-06 19:49:55 MSK
база 1С сразу не загрузилась. Добавил измнения о статусе базы master в odbc, после этого заработало, 1С запустилась, расчетный период открыла.
Comment 8 Vitaly Lipatov 2014-09-12 02:49:07 MSK
Закрываем баги, принятые более года назад, и до сих пор не закрытые.