Реализация конфигурации с нуля. Портал для клиентов организации с синхронизацией с учетной системой
Однажды мне поручили полностью создать с нуля конфигурацию. Для многих разработчиков 1С это желанная, но при этом весьма нечастая задача. Мне нужно было разработать «Портал клиента», используемый как веб-сервис и синхронизированный с учетной системой клиента — «Комплексной автоматизацией». Это был интересный опыт, поэтому я решила рассказать о нем подробно.
О программе
«Портал клиента» в 1С создан, чтобы было удобно работать с заказами. В нем доступна текущая информация о доступных товарах, а также оформление заявки на требуемую номенклатуру. Пользователь регистрирует ее к обмену и отправляет в комплексную. Работники компании оценивают, можно ли это реализовать, формируют заказ и утверждают его у клиента тоже через синхронизацию с «Порталом». Документация по согласованному заказу загружается в систему, их можно сохранить в «цифре» или напечатать в pdf.

Про ТЗ
Каждая крупная задача начинается с техзадания. У меня это были согласованные с клиентом пользовательские скрипты. При первом взгляде на большое ТЗ было немного страшно, многое казалось непонятным. Я несколько раз прочла его от начала до конца, чтобы понять детали. Сейчас мне уже ясно, что сначала следует оценить общую ситуацию, а о деталях думать уже в процессе. Сразу разобраться со всеми вопросами не выйдет: по ходу работы всегда будет возникать что-то, что понадобится поменять и доработать.
Про технологический стек и сложность системы
«Портал клиента» имел сравнительно узкий функционал, поэтому реализовать его мог один разработчик за несколько месяцев. Но интересно было то, что в нем сочеталось много технологий. Это редко встречается одной задаче и сильно разнообразит рабочий процесс. Мне нужно было внедрить БСП, синхронизировать данные (включая файлы) с помощью HTTP-сервисов и ограничить права доступа через RLS.
Первоначальная задача – внедрение БСП, и по моему мнению, это должно быть включено в создание любой конфигурации. БСП содержит много полезных фичей для разработчика, освобождающих от самостоятельного написания рутинных функции.
Конкретно в своей задаче я применяла лишь некоторые из возможностей БСП:
-
Администрирование.
-
Работа с пользователями.
-
Работа с файлами.
Это сделало мою работу гораздо проще. Клиенту данные функции в той мере, как это обычно бывает в стандартных конфигурациях 1С, не требовались. Но создать облегченный интерфейс к уже имеющемуся функционалу было сильно проще в сравнении с самостоятельным написанием этой упрощенной редакции.
«Портал» предназначался для сотрудников из разных предприятий, поэтому важное значение отводилось тому, чтобы у них не было доступа к конфиденциальной информации. С этой целью я разграничила права на уровне записей. В системе с ограниченным списком пакетом справочников и документации такой простой механизм реализовать довольно просто.
Большое значение в этой разработке имели обмены. Чтобы их реализовать, я применяла планы обмена и HTTP-сервисы:
-
Планы повысили удобство регистрации всех изменений, требуемых для обмена информацией между системами. С данным инструментом я сталкивалась в первый раз, и мне понравилось его исследовать.
-
HTTP-сервисы помогли мне организовать сам информационный обмен между системами. Я применяла готовую библиотеку «Коннектор», которая сильно упростила работу с запросами.
То, что я создавала программу одна, помогло мне организовать работу в соответствии с моим понятием «идеального кода». Я стремилась как можно сильнее упростить весь функционал для последующей доработки. Создавать общие функции для схожих сценариев слегка труднее и требует больше времени, чем специфические инструменты для отдельных кейсов, но в перспективе такой подход себя оправдал. Мне хотелось написать код, который в дальнейшем будет проще и приятнее дорабатывать. И как только возникли новые требования, я себя за то похвалила.
Особенно усердно я «наводила красоту» в коде для обменов. Мне хотелось создать универсальный интерфейс для передачи любой информации между системами, позволяющий без проблем добавлять новые объекты. Это в дальнейшем получилось у junior-разработчика, сопровождавшего систему уже после того, как она была готова.
Про красоту
Мне нравится работать над обликом программы, чтобы в результате он получился эстетичным и нестандартным. Каких-либо четких требований к внешнему виду системы я не предъявляла. Просто для себя изменила цветовую схему и добавила иконки – и была приятно удивлена, когда эти изменения утвердили и решили оставить. Интерфейс изменился так, что меня даже спрашивали, а правда ли это 1С.
Моя система имеет 2 рабочих места: клиентское и администраторское. Второе сначала не входило в ТЗ, я создала его по личной инициативе. Хотелось продумать свою систему до последней детали и сделать ее удобной для всех пользователей.
Когда что-то пошло не так
В работе над большими задачами всегда что-то идет не так. В данном кейсе проблемой стало синхронизировать конфигурацию с учетной системой.
Сначала все казалось несложным. Я четко продумала архитектуру, по которой две базы данных взаимодействовали друг с другом. Чтобы упростить создание сервисов, я использовала внешний модуль «HTTP-коннектор». Оно включает большой стек технологий для передачи информации между системами. Я ранее уже работала с этим модулем, он помогал решить любую задачу по взаимодействию в рамках HTTP-сервиса. Но в тот момент его возможности оказались недостаточными.
Моя задача подразумевала передачу файлов. Сначала я использовала типовую отправку в base64. Это сработало для обычных pdf, но архивы передавались только пустыми. Попытка изучить модуль и через него реализовать обмен файлами тоже ничего не дала. В итоге, потеряв немного время, я решила написать эту функцию сама.
Итог
Уверенно заявляю: создание собственной конфигурации — это увлекательно и не страшно, хотя вначале может показаться иначе. Если такая задача допускает большую свободу действий, то рабочий процесс и его результат приносят удовольствие.
Подпишитесь на Телеграм-канал, чтобы быть в курсе