При коллективной разработке в 1С использование Хранилища конфигурации является стандартной практикой. Однако разработчики часто сталкиваются с дилеммой: для проверки работы нового отчета или алгоритма требуются тестовые данные. Чтобы эти данные появились, часто нужно создать временные объекты (документы, регистры, обработки), которые не должны попасть в основную конфигурацию и, тем более, к конечному пользователю. Рассмотрим подробнее, как организовать процесс тестирования эффективно и безопасно.
Разберем самый надежный метод, который позволяет избежать блокировки объектов в хранилище другими участниками процесса. Суть заключается в том, что основная разработка ведется в базе, подключенной к хранилищу, а тестирование — в ее копии.
Проанализируем шаги этого метода:
.dt) или просто скопируем папку с файловой базой..cf.Важный момент: если за время вашей работы в копии другие разработчики внесли изменения в хранилище, перед финальным переносом кода необходимо обновить основную конфигурацию из хранилища, чтобы избежать конфликтов версий.
Если для тестирования отчета вам нужно просто записать данные в существующий регистр, нет необходимости создавать новый документ-регистратор в метаданных. Мы можем воспользоваться внешними обработками (файлы .erf).
Рассмотрим пример кода, который можно разместить во внешней обработке для программного заполнения регистра сведений без создания лишних объектов в дереве конфигурации:
МенеджерЗаписи = РегистрыСведений.ЦеныНоменклатуры.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Тестовый Товар");
МенеджерЗаписи.Цена = 100;
МенеджерЗаписи.Валюта = Справочники.Валюты.НайтиПоКоду("643");
МенеджерЗаписи.Записать();
Использование внешних обработок позволяет манипулировать данными в регистрах напрямую. Если же регистр является подчиненным регистратору, мы можем программно создать существующий в конфигурации документ, заполнить его и провести, а после завершения тестов — просто удалить этот документ из базы.
Выясним, почему расширения являются наиболее прогрессивным методом для временных правок. Механизм расширений позволяет добавлять новые объекты метаданных, которые существуют «поверх» основной конфигурации.
Разберем алгоритм работы с расширением:
Обратите внимание: использование расширений требует, чтобы режим совместимости конфигурации был не ниже 8.3.6, а для полноценной работы с данными — еще выше.
Существуют специализированные инструменты, такие как «Инструменты разработчика» (ИР) или консоли запросов с возможностью редактирования. Проанализируем, как они помогают в нашей ситуации.
Вместо того чтобы создавать объект-регистратор, вы можете открыть консоль ИР, выбрать нужный регистр и вручную добавить в него записи. Это позволяет имитировать наличие данных для отчета мгновенно. После выполнения тестов эти записи так же легко удаляются, не оставляя следов в структуре метаданных. Это исключает необходимость вообще что-либо менять в дереве объектов конфигурации.
Подводя итог, выделим лучшие практики при работе с хранилищем:
Помните, что порядок в хранилище конфигурации — это залог стабильности проекта и отсутствия ошибок при обновлении рабочих баз пользователей.