Top.Mail.Ru

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

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

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

О конфигурации

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

file.pPEPYO.png

Про ТЗ

Любая объёмная задача начинается с ТЗ. Моим техническим заданием являлись пользовательские сценарии, утвержденные клиентом. Сначала было немного страшно, когда впервые увидела довольно объемное задание, в котором многое казалось непонятным. Я много раз читала его от и до, пытаясь вникнуть в каждую деталь. Сейчас понимаю, что достаточно представить картину в целом, а в деталях разбираться по ходу процесса. Никогда не получится решить все вопросы заранее. Все равно что-то возникнет в процессе, что-то придется менять, что-то адаптировать.

Про технологии и сложность конфигурации

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

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

Я в своей разработке использовала только часть подсистем БСП:

— Администрирование;

— Работа с пользователями;

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

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

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

Важную роль в данной разработке играл обмены. Для их реализации использовались планы обмена и http-сервисы. Планы обмена позволяли удобно регистрировать все нужные мне изменения для отправки между системами. Я работала с ними впервые и была рада изучить новый механизм, который оказался очень удобным. Http-сервисы были использованы для передачи зарегистрированных данных между двумя системами. Я использовала готовую библиотеку "Коннектор" для работы с запросами, и это значительно облегчило мне работу.

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

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

Про красоту

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

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

Про то, что идет не по плану

В любой большой задаче что-то должно пойти не так. В моем случае это была синхронизация с учетной системой. Изначально казалось все просто. Была продумана четкая архитектура взаимодействия двух баз между собой. Для упрощения написания сервисов было решено использовать стороннее расширение "http-коннектор". Оно содержит в себе множество готовых методов для обмена между различными системами. Я работала с этим модулем раньше и всегда могла с помощью него решить все проблемы взаимодействия в рамках http-сервиса. Но на этот раз мне его не хватило.

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

Подводя итоги

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


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

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

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