Top.Mail.Ru

Реализация конфигурации с нуля. Портал для клиентов организации с синхронизацией с учетной системой

Анастасия Косаурова
Разработчик 1С

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


О программе

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

file.pPEPYO.png

Про ТЗ

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


Про технологический стек и сложность системы

«Портал клиента» имел сравнительно узкий функционал, поэтому реализовать его мог один разработчик за несколько месяцев. Но интересно было то, что в нем сочеталось много технологий. Это редко встречается одной задаче и сильно разнообразит рабочий процесс. Мне нужно было внедрить БСП, синхронизировать данные (включая файлы) с помощью HTTP-сервисов и ограничить права доступа через RLS.

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

Конкретно в своей задаче я применяла лишь некоторые из возможностей БСП:

  • Администрирование.

  • Работа с пользователями.

  • Работа с файлами.

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

«Портал» предназначался для сотрудников из разных предприятий, поэтому важное значение отводилось тому, чтобы у них не было доступа к конфиденциальной информации. С этой целью я разграничила права на уровне записей. В системе с ограниченным списком пакетом справочников и документации такой простой механизм реализовать довольно просто.

Большое значение в этой разработке имели обмены. Чтобы их реализовать, я применяла планы обмена и HTTP-сервисы:

  • Планы повысили удобство регистрации всех изменений, требуемых для обмена информацией между системами. С данным инструментом я сталкивалась в первый раз, и мне понравилось его исследовать.

  • HTTP-сервисы помогли мне организовать сам информационный обмен между системами. Я применяла готовую библиотеку «Коннектор», которая сильно упростила работу с запросами.

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

Особенно усердно я «наводила красоту» в коде для обменов. Мне хотелось создать универсальный интерфейс для передачи любой информации между системами, позволяющий без проблем добавлять новые объекты. Это в дальнейшем получилось у junior-разработчика, сопровождавшего систему уже после того, как она была готова.


Про красоту

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

Моя система имеет 2 рабочих места: клиентское и администраторское. Второе сначала не входило в ТЗ, я создала его по личной инициативе. Хотелось продумать свою систему до последней детали и сделать ее удобной для всех пользователей.


Когда что-то пошло не так

В работе над большими задачами всегда что-то идет не так. В данном кейсе проблемой стало синхронизировать конфигурацию с учетной системой.

Сначала все казалось несложным. Я четко продумала архитектуру, по которой две базы данных взаимодействовали друг с другом. Чтобы упростить создание сервисов, я использовала внешний модуль «HTTP-коннектор». Оно включает большой стек технологий для передачи информации между системами. Я ранее уже работала с этим модулем, он помогал решить любую задачу по взаимодействию в рамках HTTP-сервиса. Но в тот момент его возможности оказались недостаточными.

Моя задача подразумевала передачу файлов. Сначала я использовала типовую отправку в base64. Это сработало для обычных pdf, но архивы передавались только пустыми. Попытка изучить модуль и через него реализовать обмен файлами тоже ничего не дала. В итоге, потеряв немного время, я решила написать эту функцию сама.


Итог

Уверенно заявляю: создание собственной конфигурации — это увлекательно и не страшно, хотя вначале может показаться иначе. Если такая задача допускает большую свободу действий, то рабочий процесс и его результат приносят удовольствие.

Разработка и новости из мира 1С

Подпишитесь на Телеграм-канал, чтобы быть в курсе

Эту статью хорошо дополняют
Доставка в 1С:ERP. Инструкция по работе с базовым функционалом
Склад в 1С: ERP — обзор возможностей (часть 3)
Частичная ликвидация основных средств в 1С
Модернизация основного средства в 1С
Основы бюджетирования и способы его автоматизации в 1С
Разукомплектация основного средства в 1С
Основные отличия 1С: Бухгалтерия 8 ПРОФ от КОРП
Чем различаются 1С: Документооборот ПРОФ и КОРП
Назначение и особенности 1С: Бухгалтерия 8
Свяжитесь с нами