Определение размера базы данных 1С с разбивкой по объектам метаданных (PostgreSQL)


Обработка для определения размера таблиц базы данных 1С. Версия для PostgreSQL.

За идею взята обработка Определение размера базы данных 1С с разбивкой по объектам метаданных, и доработана для работы с субд PostgreSQL.

Порядок работы:

1) Устанавливаем ODBC-драйвер (https://www.postgresql.org/ftp/odbc/versions/msi/)

2) Заполняем строку соединения в обработке (в справке указан пример)

3) Жмем кнопку Заполнить структуру БД

Совместимость:

Управляемая форма будет работать с платформой 8.3.6+, протестирована на 8.3.11.3133 (PostgreSQL 9.6.7 x64). Синхронные вызовы не используются.

Обычная форма на 8.3.9.1818 (в режиме совместимости с 8.2.16) (PostgreSQL 9.4.2). Не гарантирована работа обычной формы на совместимости выше 8.3.6 (из-за функции Найти)

Windows-клиент должен быть в любом случае (так как используются com-объекты), сам сервер СУБД по идее может быть и на Linux, но проверить не смог, так как таких машин нет.

Возможные ошибки при подключении:

Ошибка: Не удается загрузить указанный драйвер из-за системной ошибки 126: Не найден указанный модуль
Решение: Установите последние библиотеки Microsoft Visual C++

Ошибка: Источник данных не найден и не указан драйвер, используемый по умолчанию
Решение: Драйвер не найден, проверьте правильность имени в строке соединения. Возможно потребуется удалить/установить драйвер заново, либо использовать другую редакцию (x64 вместо x86, либо наоборот).

13 Comments

  1. AnderWonder
    Не рассчитана на совместимость выше 8.3.6 (из-за функции Найти)

    А что случилось с «Найти» после 8.3.6?

    Reply
  2. Dream_kz

    (1) Заменена на СтрНайти. Не уверен что есть обратная совместимость, во всяком случае рекомендуется использовать новую функцию.

    Reply
  3. AnderWonder

    (2) Ну как минимум в 8.3.11 «Найти» для строки никуда не делась не смотря на новую «СтрНайти».

    Reply
  4. Dream_kz

    (3) У меня нет обычных форм в совместимости выше 8.2, поэтому не проверял, и решил подстраховаться.

    Reply
  5. premierex

    (0) А что означает такая ошибка:

    Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, исп…. (дальше не вошло).

    Строка соединения примерно такая:

    Driver={PostgreSQL UNICODE(x64)};Server=192.168.1.170;Port=5432;Database=DBNAME;Uid=psqlUSER;Pwd=psqlPWD;STMT=stmt

    Причем через системный DSN тест подключения проходит успешно.

    Reply
  6. Dream_kz

    (5)

    Ошибка: Источник данных не найден и не указан драйвер, используемый по умолчанию

    Ошибка что и в описании, драйвер не определился. Попробуйте использовать х86, либо переустановить драйвер (удалить через Программы и компоненты, затем заново установить). У самого только после танцев запустилось

    Reply
  7. premierex

    (6) Да, действительно, следующая ошибка — Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу.

    Попробую установить драйвер с архитектурой х86.

    Reply
  8. premierex

    (7) Увы, с установленным 32-битным драйвером, не удалось создать источник данных DSN, а если в строке соединения не указать источник данных, то происходит ошибка (5).

    Reply
  9. Dream_kz

    (8) Формы управляемые?

    Версия windows?

    Драйвер переустанавливать пробовали?

    Reply
  10. premierex

    (9) Формы — обычные.

    Windows 7 Pro x64.

    Драйвер переустанавливал. Но если удалить 64-битный драйвер и установить 32-битный, не удается создать источник данных. 32-битного драйвера просто в списке нет.

    Reply
  11. Dream_kz

    (10) Источник данных создавать не обязательно. Отсутствие драйвера в списке тоже не будет влиять на работоспособность (на самом деле он есть).

    Reply
  12. premierex

    (11) Действительно, удалил 64-битный драйвер и всё отработало. Спс.

    Reply
  13. vlzor

    Работает.

    Проверено на платформе 8.3.13.1690;

    Управление торговлей, редакция 11 (11.4.6.207)

    PostgreSQL 10.5-11.1C

    запустилась только после установки двух драйверов х86 (psqlodbc_11_00_0000-x86) / х64 (psqlodbc_11_00_0000-x64) и с параметрами

    «Driver={PostgreSQL Unicode}…….»

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *