Сервис доступа к данным 1С для внешних систем
Жёлтый мост
Практика · Программисту 1С

Проверить чужой запрос 1С до запуска на боевой базе

Запрос или обработку прислал подрядчик, написал ИИ, нашли на форуме. Запускать на рабочей базе страшно, копию поднимать долго. Разбираем, что можно проверить заранее, что проверяется только запуском и как запустить без риска для данных.

Задача

Код 1С пришел со стороны. Запрос мог быть написан под другую конфигурацию, скрипт мог что-то записать в базу, а тяжелый запрос по регистру без отбора может занять базу надолго. Проверить хочется на настоящих данных, потому что на пустой тестовой базе ошибок не видно.

Как решают обычно

Способы проверить код до боевой базы
СпособПлюсМинус
Копия базыбезопасночасы на выгрузку и загрузку, копия быстро устаревает
Тестовая базавсегда под рукойданные старые или выдуманные, ошибки на реальных данных не видны
Консоль запросов на боевой базереальные данныенет защиты от тяжелого запроса и от записи в обработке
Ревью кода глазамибесплатнозависит от внимательности и знания конфигурации

Что можно проверить через Жёлтый мост

Проверка идет в три шага, и каждый ловит свое.

Первый шаг: валидатор до отправки в базу. Мост проверяет текст модуля или скрипта BSL Language Server и возвращает замечания по строкам. Он ловит синтаксические ошибки, пустые блоки, типовые нарушения стандартов 1С. Логику он не проверяет: запись объектов в цикле или неверный регистр валидатор пропустит, это видно только на данных.

Второй шаг: запрос выполняется только на чтение. Язык запросов 1С данные не меняет. Ошибка в имени поля или таблицы приходит с текстом от 1С и меткой в месте ошибки, по ней запрос правится за минуту. Для больших регистров ставьте период, отбор и ПЕРВЫЕ N.

Третий шаг: скрипт с записью идет пробным прогоном. Скрипт выполняется в транзакции, результат виден, после чего транзакция откатывается и данные не меняются. На ключе может действовать режим "только пробный прогон": тогда даже скрипт, отправленный на настоящую запись, будет откачен. Режим включает администратор сервиса по просьбе владельца ключа.

Код со стороны на рабочей базе
Шаг 1валидатор: синтаксис и стандарты, до базы
Шаг 2запрос: только чтение, ошибка с меткой места
Шаг 3скрипт: пробный прогон, транзакция откатывается
Итогясно, что код делает на реальных данных, база не изменилась

Как сделать

1. Выпустите для проверки отдельный ключ базы и попросите поддержку включить на нем режим "только пробный прогон".

2. Отправьте текст модуля на проверку валидатором и исправьте замечания уровня Error и Warning.

3. Запрос выполните через мост с ограничением строк и посмотрите результат.

4. Скрипт с записью запустите пробным прогоном и сверьте, что именно он изменил бы.

5. Когда результат устраивает, запустите код в базе обычным способом или на ключе без ограничения пробного прогона.

Что учесть

Не уверены, как подключается именно ваша база - в 1С:Фреш, в аренде, своя серверная или файловая? Выберите свой случай на главной: покажем, что мешает и что меняет мост.

Проверьте на своей базе. Подключение занимает около пятнадцати минут: обработка из кабинета, ключ, готовый текст для ИИ. При регистрации даются три дня работы одной базы, карта не нужна.
Настроить у себя Другие задачи