Из чего состоит конфигурация в 1с тест
Данная статья является ознакомительно-информационной и не содержит никакой рекламы и особенно попыток извлечь материальную прибыль. Задача статьи — пролить свет на созданную возможность тестирования кода конфигураций, кратко ознакомить с успешно использующимся инструментом, услышать отзывы и сделать выводы. Возможно это ненужный велосипед и кто-то поделится правильным подходом в тестировании для данной платформы.
Разработка на платформе 1С: Предприятие — не самый сложный процесс. Самое сложное — принять концепцию написания кода на родном языке :)
Но не смотря на то, что в 8й версии платформы был совершён положительный качественный скачок в устройстве платформы и встроенного языка (например, появление концепции MVC для объектов метаданных конфигурации) многие народные кодеры продолжают выдавать мегабайты «мусора», который каким-то чудом работает в рамках того, что смог/успел проверить такой кодер.
У меня нет богатого «опыта» работы в различных франчайзи, у меня за все годы перед глазами только опыт единственного отдела, который выпускает коробочные продукты, продукты продаются, клиенты находят баги, терроризируют техподдержку, техподдержка бегает к разработчикам, разработчики радостно фиксят найденные баги, попутно внося разнообразные новые, короче говоря — работа есть всем и хватит её надолго.
Сколько времени уходит на фикс багов, а сколько на создание нового функционала — пропорция известна лишь приблизительно. Баги, найденные клиентами, воспринимаются как неизбежное зло, и для уменьшения времени на их исправление прибегают к усиленному ручному тестированию релизов и наймом/воспитанием грамотных разработчиков. Ручное тестирование отделом QA это достаточно трудоёмко и нет возможности точно определить золотую середину соотношения глубины тестирования к потраченному на тестирование времени. Про наличие огромного количества талантливых разработчиков вообще говорить не приходится.
Во «взрослых» языках программирования подобные проблемы стараются решать повсеместным тестированием. Начиная с уровня разработчика — unit-тестами, далее функциональными и регрессионными, и заканчивая интеграционными тестами. В особо интересных случаях тесты запускаются на каждый чих коммит в определённую ветку репозитория.
К сожалению фирма «1С» не балует разработчиков на своей платформе какими-либо достойными инструментами, хорошо, хоть репозиторий/хранилище сделали.
Несколько лет назад, приступая к новому проекту, лично мне надоели регулярные удары одними и теми же граблями по лбу. С руководством было оговорено время на разработку своей наколенной системы тестирования в том виде как я её видел и работа закипела.
Применение.
Лично мне на одном проекте данная система сэкономила не менее года времени проведённого в отладчике. Ещё один проект уже несколько лет использует систему для функциональных тестов огромного количества вариантов скидок/оплат и т.п. Ещё три проекта начинают её использовать. Вообще, конечно, внедрять такую систему «снизу» это как долбиться лбом в стену небоскрёба. Но если долбить каждый день, то результат рано или поздно появится. Главное — успешный пример и поддержка «сверху».
Описание.
- модульные тесты;
- функциональные тесты;
- регрессионные тесты*;
- интеграционные тесты;
Устройство.
Так как система создавалась ещё во времена платформы 8.1, то поддержки управляемых форм в ней нет, ибо мне уже не надо, а текущим проектам ещё не надо. Но основной функционал системы это тестирование кода и весь недостаток в том, что обработка тестирования написана не на управляемых формах.
Основным интерфейсом для создания тестов и их выполнения является внешняя обработка. Обработка запускается непосредственно в информационной базе, конфигурацию которой и хотят протестировать.
Сами тесты хранятся в отдельной информационной базе, куда подключается и авторизуется внешняя обработка:
Рабочая форма выглядит так:
1. Текущий проект
2. Имя пользователя системы тестирования
3. Тесты можно разбивать на группы, это удобно при настройке автоматического тестирования и позволяет структурировать сами тесты.
4. Выбран тест с кодом 400, указано имя теста, тестируемый метод находится в форме встроенной обработки «Транслятор», последней колонкой выведено имя тестируемого метода.
5. Сюда вставляется полная сигнатура тестируемого метода, которая автоматически парсится (нажатием на кнопку 8) на входящие параметры — 6 и результаты — 7.
6. Тут задаются входящие параметры примитивных и ссылочных типов, также можно указать путь к файлу, если установлен флажок Файл.
7. У выбранного теста всего одно возвращаемое значение функции, для него предопределено имя _ВозвратПерем.
8. Распарсить сигнатуру метода на входящие параметры и возвращаемые результаты.
Для понимания дальнейшего повествования необходимо отвлечься на поле 5, где есть ещё немного вкладок.
Перед выполнением:
Поле предназначено для выполнения произвольного кода перед вызовом тестируемого метода. Можно как угодно видоизменить входящие параметры, подготовить коллекции или объекты информационной базы.
Аналогичное поле После выполнения позволяет обработать полученные результаты вызова тестируемого метода до начала сравнения их с сохранёнными ранее эталонными значениями.
Выполняемый код:
Тут показан весь код, который будет выполнен при запуске теста.
Вкладка Описание — здесь можно подробно описать что это за тест.
Ну и наконец вкладка Версии:
Здесь перечислены все версии конфигураций текущего проекта, заведённые в базе тестов. Создатель теста может указать на каких версиях данный тест должен проходить, а для каких тест не применим. Эта информация используется для автоматического тестирования.
9. Выполнить тест. Выполняется код, видимый на вкладке Выполняемый код. Поле 7 заполняется результатами работы выполняемого кода.
10. Кнопка сохранения полученных после нажатия кнопки 9 результатов в качестве эталона.
11. Запуск теста и сравнение результатов с ранее сохранённым эталоном.
12. Просмотр сохранённых эталонных значений.
Пример.
Итого.
В принципе, описанного функционала хватает для решения большинства задач для тестирования определённой конфигурации в полу-автоматическом режиме. Но помимо этого на серверной стороне есть возможность настройки автоматического тестирования набора конфигураций (в рамках одного проекта) по расписанию (регламентные задания). Система умеет забирать из хранилища текущую версию конфигурации, накатывать её на тестируемую базу и запускать указанные группы тестов. По выполнению перечисленным наблюдателям высылается письмо с детальными результатами теста.
Система не создавалась для продажи, система много где не доведена до ума, но даже то, что уже есть сильно помогает избегать как минимум глупых ошибок из серии — поправил в одном месте, отвалилось в трёх других.
Войдите как ученик, чтобы получить доступ к материалам школы
Создание конфигураций 1С: основы
Автор уроков и преподаватель школы: Владимир Милькин
Наконец, мы приступаем к созданию и доработке конфигураций 1С. Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.
Конфигурация, конфигурация . а что это вообще такое?
Из чего состоит 1С
Давайте ещё раз вспомним, что 1С делится на две большие части:
- Это собственно сама программа 1С (её ещё называют платформой 1С:Предприятие).
- И данные с которыми работает эта платформа (их ещё называют базой данных).
У платформы есть версия. Раньше использовалась "семёрка" (версия 7.7), теперь используется 8.3 - это самая последняя версия платформы - её мы используем в наших уроках.
Какие бывают базы
Платформа обычно одна, а вот баз данных может быть сколь угодно много, это и:
- бухгалтерские базы (1С:Бухгалтерия)
- базы для управления персоналом и расчетом зарплаты (1С:Управление персоналом)
- базы для управления торговлей (1С:Управление торговлей)
- базы для автоматизации практически любой другой отрасли (парикмахерские, автосервисы, салоны красоты, общепиты и другие)
Конфигурация - основа базы
Так вот в основе любой базы данных 1С лежит конфигурация, которая определяет какие именно данные мы сможем хранить в базе и каким образом мы сможем их обрабатывать. Можно сказать, что конфигурация - это словарь базы данных.
Таким образом у бухгалтерской базы - своя конфигурация, у зарплатной своя, а у торговой своя. Эти конфигурации в чём-то похожи друг на друга, но в чём-то отличаются. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Эти отличия связаны со спецификой отрасли, которую автоматизирует база.
Как выглядит платформа
Это набор исполняемых файлов (программ), которые устанавливаются в папку "Program Files" и обычно запускаются ярлыком с рабочего стола:
Как выглядит база данных
Самый главный файл "1Cv8.1CD" - именно в нём хранится база. Все остальные файлы являются служебными и при их удалении мы потеряем разве что журнал регистрации.
Как выглядит конфигурация
На рисунке представлено так называемое "дерево конфигурации", которое состоит из различных разделов, с которыми мы познакомимся позже. Повторюсь, то что мы видим в дереве конфигурации это ещё не сами данные, а только виды данных, которые мы сможем хранить в базе (например, "Банки", "Валюты" и т.п.).
Конфигурация "зашита" внутри базы (файл "1Cv8.1CD") вместе с данными.
Сравнение с Word
Если вам всё ещё не понятна разница между платформой и базой данных, то можно рассмотреть ещё такую абстракцию:
Платформа 1С - это программа Microsoft Office Word для работы с текстовыми документами, а база данных - это текстовый документ с которым работает Word. Сама программа Word не хранит в себе никаких данных, но вот файлы, которые мы создаём при помощи него как раз и являются хранилищем различной информации.
Когда мы запускаем ярлык 1С с нашего рабочего стола - мы запускаем платформу.
. мы делаем выбор, какую из них открыть и она загружает её в память компьютера.
Два режима работы с базой
Как мы уже говорили выше любая база состоит из собственно данных и конфигурации (словаря), которая определяет как с этими данными можно работать. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Именно поэтому существует два отдельных режима работы c базой данных:
- режим конфигуратора (когда мы работаем только с конфигурацией базы, не затрагивая её данные)
- режим предприятия (когда мы работаем только с данными базы).
Ещё можно сказать, что режим конфигуратора предназначен для программистов, а режим предприятия - для пользователей.
И то, что программист придумает в режиме конфигуратора будет определять то, что пользователь увидит в режиме предприятия.
Переключение между этими двумя режимами производится вот этими двумя кнопками:
Установка платформы
Для обучения программированию нам понадобится 1С 8.3 (не ниже 8.3.13.1644).
На вашем рабочем столе должен появиться вот такой ярлык:
Создаём пустую базу
Итак, давайте же создадим нашу базу данных, но не так как мы это делали на самом первом уроке школы (ссылка) - на этот раз мы сделаем это осознанно, с объяснением каждого шага:
1. Запустим платформу 1С на нашем рабочем столе. Этот ярлык ведёт к исполняемому файлу из папки "C:\Program Files\1cv8t\".
2. Перед нами открылся список баз 1С:
В нём уже присутствует база "Учебная" из прошлых уроков. Обратите внимание на то, что при выделении базы внизу пишется путь к её папке. Если мы откроем эту папку в проводнике, то обнаружим там тот самый файл "1Cv8.1CD", о котором шла речь выше.
3. Нажмём кнопку "Добавить".
4. Выберем пункт "Создание новой информационной базы" и нажмём кнопку "Далее":
Второй пункт нужен, если мы принесли уже готовую базу данных с другого компьютера и захотели подключить её папку в наш список баз.
5. Выберем пункт "Создание информационной базы без конфигурации . " и нажмём кнопку "Далее":
Мы выбрали второй пункт, потому что будем создавать базу данных с нуля, а не из шаблонов, которые могут присутствовать у нас на компьютере. Вообще при разработке новой базы она почти всегда создаётся с нуля.
6. В качестве имени базы укажем "Азы" и нажмём кнопку "Далее":
В качестве имени базы можно указывать любое подходящее по смыслу название.
7. В качестве каталога базы укажем любую пустую папку (в данном случае это папка "Азы" в моих документах). Нажмём кнопку "Далее":
Вообще же лучше выбирать местом для хранения баз данных диск отличный от системного. Совсем хорошо, если это отдельный физический диск.
8. Укажем вариант аутентификации "Выбирать автоматически", режим запуска "Толстый клиент". В качестве версии 1С:Предприятия ничего не будем указывать, нажмём кнопку "Готово":
Толстый клиент, тонкий клиент, веб-клиент - это всё варианты платформы 1С. Тонкий и веб-клиент предназначены для работы с базой данных через интернет. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Толстый клиент - предназначен для всего остального, в том числе только он позволяет работать с базой в режиме конфигуратора. А это как раз то, что нам требуется, ведь мы сейчас будем именно разрабатывать.
9. В списке появилась наша база "Азы", которую мы только что создали. Выделим её и внизу отобразится путь к папке с базой:
Зайдём в эту папку через проводник и увидим там уже знакомый файл "1Cv8.1CD", который содержит всю базу данных:
Конфигурация, с точки зрения пользователя, это программное решение, заточенное под определенные бизнес-задачи. Например, есть конфигурация 1С:Управление торговлей, для автоматизации торговых операций. С точки зрения разработчика, бизнес-логика данного программного решения реализована с помощью конкретных объектов конфигурации - электронных форм ввода, отчетов, справочников, алгоритмов etc. Эти объекты сгруппированы в виде дерева конфигурации:
Объекты конфигурации, купленной у какого-либо вендора, по умолчанию защищены от внесения изменений. Если функциональность такой конфигурации не закрывает каких-то бизнес-задач, то ее можно доработать - внести изменения в типовые объекты или добавить новые. Для этого типовую конфигурацию придется снять с поддержки - через меню Конфигурация -> Поддержка -> Настройка поддержки, Включить возможность изменения:
Далее можно будет внести доработки. Измененная конфигурация будет отличаться от типовой; оба варианта (основная конфигурация, измененная, и конфигурация поставщика, исходная типовая) будут храниться в базе данных, при необходимости их можно просмотреть и сравнить:
После внесения изменений, их нужно "спроецировать" на ту конфигурацию, в которой хранятся непосредственно бизнес-данные - на конфигурацию базы данных. Например, новый реквизит после добавления в основную конфигурацию не будет сразу доступен для пользователя, так как конфигурация базы данных еще не изменена. Для обновления конфигурации базы данных нажимаем F7; после обновления конфигурация базы данных становится равной основной конфигурации:
Подводя итог. В каждой базе данных 1С одномоментно существует три конфигурации: конфигурация поставщика, основная конфигурация и конфигурация базы данных. В типовом решении, без включенной возможности изменения, все три равны между собой.
Каждая конфигурация состоит из прикладных объектов, сгруппированных в дерево конфигурации по принципу схожести. Например, дерево объектов типа Документ:
Каждый из объектов конфигурации может нести в себе определенную логику, задаваемую алгоритмами; алгоритмы прописываются в модулях программы с помощью встроенного языка 1С:
Число объектов конфигурации может быть очень велико; для их произвольной классификации по назначению используется механизм подсистем. Каждый объект конфигурации может быть включен в одну или несколько подсистем. Отбором пр подсистеме можно выбрать весь перечень объектов, имеющих отношение к данной прикладной задаче:
Вопрос 01.02 экзамена 1С:Профессионал по платформе. В каком объекте содержится редактируемая пользователем информация?
- Объект конфигурации
- Объект встроенного языка
- Объект информационной базы
- Верны ответы 1 и 3
- Верны все варианты
Вопрос 01.05 экзамена 1С:Профессионал по платформе. Выберите верный набор ассоциаций "Объект" - "тип файла":
Правильный ответ первый. External processor file это расширение внешних обработок, External report file расширение внешних отчетов, Configuration file это расширение файла конфигурации.
- Объекты конфигурации
- Объекты встроенного языка
- Объекты информационной базы
- Верны ответы 1 и 3
- Верны все варианты
- Объекты конфигурации
- Объекты встроенного языка
- Объекты информационной базы
- Верны ответы 1 и 3
- Верны все варианты
- Основная конфигурация
- Конфигурация базы данных
- Конфигурация поставщика
- Внешние конфигурации
- свойства Комментарий у объекта конфигурации
- создания реквизита "Классификация"
- с помощью объекта конфигурация Подсистемы
- верны варианты 1 и 2
- верны все варианты
- Только одна
- Только две (рабочая и демонстрационная)
- Неограниченно
- Определяется комплектом поставки прикладного решения
- Определяется в настройках конфигурации
- Одна
- Две
- Три
- Сколько угодно
Вопрос 03.13 экзамена 1С:Профессионал по платформе. В каком случае в окне конфигурации доступно изменение метаданных?
- Всегда
- Только для основной конфигурации
- Для основной конфигурации и конфигурации базы данных
- Для конфигурации поставщика
- Для конфигурации открытой из файла
Правильный ответ второй. Редактировать можно только основную конфигурацию.
Читайте также: