SELTA/Testing
Как тестировать
В первую очередь необходимо проверять, прогружаются (сохраняются) ли MD файлы конфигурации:
при этом в базе данных создаются все таблицы, индексы и хранимые процедуры, в некоторые таблицы заносятся первые данные, т.е. создаётся структура базы данных.
Если MD файл не прогружается (1С вылетает с ошибкой), то вы можете переслать файл конфигурации нам, с указанием названия конфигурации, и наши программисты добавят в Транслятор необходимую новую функциональность. Этот процесс обычно занимает не более одного дня. Внесённые исправления повлияют и на работоспособность других конфигураций, т.к. они добавляют транслятору универсальность, а не решают некоторые частности.
Далее следует проверить, загружается ли 1С с только что созданной конфигурацией в монопольном и обычном режимах: при этом идет проверка целостности базы, на некоторых конфигурациях инициализируются константы и прочие данные.
Третий этап - проверка работы различных элементов системы: формирование отчётов, проведение документов и т.д. Эти операции следует делать на заполненной данными базе. О том, как перенести данные из MS SQL Server в PostgreSQL смотрите ниже в разделе *установка*
Варианты ошибок
При работе 1С через транслятор SELTA@Etersoft может возникнуть несколько типов ошибок:
- Самые простые — транслятор встречает конструкцию, которую не умеет распознать. Запрос не выполняется, ODBC-драйвер возвращает ошибку, 1С показывает её и, как правило, завершает работу. Такие ошибки решаются быстрее всего добавлением правил в транслятор.
- Нужно выяснить, какой запрос не поддерживается; проще всего — по журналу SELTA.
- Более сложные — при вызове хранимых процедур: ошибки, которые база не замечает при создании процедуры, но которые проявляются при определённых параметрах. Драйвер отправляет запрос, PostgreSQL возвращает ошибку, 1С её показывает. После исправления транслятора базу приходится пересоздавать: хранимые процедуры создаются только при загрузке MD-файла конфигурации.
- Нужно выяснить, какая процедура выполнялась и с какими параметрами; проще всего — по журналу PostgreSQL.
- Самые сложные — ни драйвер, ни база ошибок не возвращают, но запросы или процедуры содержат логические ошибки, и 1С работает неправильно (например, отчёты пустые, хотя должны быть заполнены). Их находят, выполняя одни и те же действия с MS SQL Server и PostgreSQL и сравнивая результаты. Обычно они возникают из-за тонкостей различия MS SQL Server и PostgreSQL.
- Начните с трассировки ODBC: она должна совпадать для обеих баз. Расхождение в цепочке ODBC-вызовов указывает на ошибку, с этого места включайте остальные журналы.
Для разработчиков в репозитории selta есть автоматические проверки (каталог tests/): проверки схемы SELTA на сервере (sql-probe, sql-lifecycle, LIKE со сверкой с эталоном SQL Server 2022), тесты драйвера через настоящий ODBC и TCP (installed-*); для серверного пакета — контейнерный тест tests/container-test.sh в selta-server.