Нужно подумать о возможности отказа от модификации базы postgres.
порядок действий такой: 1С соединяется с master, проверяет наличие требуемой базы и подключений к ней, затем соединяется с требуемой базой. у нас в odbc master заменен на postgres, 1С в нем тоже проверяет требуемую базу путем запроса представлений sysdatabases и sysprocesses. вопрос в том, как дать приложению требуемую информацию? от транслирования частных случаев запросов мы отказались в новом парсере. просто заменять имена полей и представлений мягко говоря не очень хорошо - для 1С возможно и сработает, но для других приложений - нет. template1 вообще лучше не трогать (шаблонная база). можно конечно сделать какую-то базу специально для сельты, но тогда появляются вопросы с ее поддержкой в разных версиях сельты...
По итогам обсуждения будем делать отдельную базу master для сельты, чтобы хранить в ней системные представления mssql и коннектиться к ней вместо postgres. таким образом, базы postgres, template1 теперь затрагиваться не будут.
добавил в gui при подключении проверку и создание базы master. только сейчас она инициализируется как и все другие базы, и отображается в списке баз. насколько это хорошо?
Нормально. Напиши только текст не SELTA@Etersoft v.1.1.0, а например "master SELTA@Etersoft v.1.1.0". Так, наверное не влезет. Тогда может без Etersoft. И защиты, что бы на нее не действовали скрипты обновления для обычных баз SELTA. И в скриптах можно проверять select current_database();, что бы это не была бы master. И у master тоже самое.
теперь перед отображением списка баз проверяется наличие базы master и выводится messagebox создать ли ее. не получилось отображать messagebox сразу после отображения окна "Инициализация БД" делаю защиту от обновлений
(В ответ на comment #4) > И защиты, что бы на нее не действовали скрипты обновления для обычных баз > SELTA. > И в скриптах можно проверять select current_database();, что бы это не была бы > master. И у master тоже самое. Закоммитил изменения. Добавил в скрипты проверку на текущую базу, в gui сделал некоторые кнопки управления неактивными. Отображаемый статус - "master SELTA@ 1.1.0". Нужно посмотреть, как будет работать 1С
база 1С сразу не загрузилась. Добавил измнения о статусе базы master в odbc, после этого заработало, 1С запустилась, расчетный период открыла.
Закрываем баги, принятые более года назад, и до сих пор не закрытые.