ЧТО ТАКОЕ ЗАКРЫТЫЙ КОД И ЗАЧЕМ ОН НУЖЕН
Конфигурации «1С» могут поставляться с открытым исходным кодом и без него, объясняет Александр Романович. В первом случае клиент видит в режиме запуска «Конфигуратор» код программы и результат ее работы, а во втором — только результат работы алгоритма, поскольку код уже заранее скомпилирован программистом. Именно при втором варианте и принято говорить, что код закрыт.
«Это не наше изобретение, а обычная практика. Подобные методы применяют многие. Сейчас популярны готовые решения для защиты конфигураций, которыми пользуются десятки компаний. И все они используют опять-таки закрытый код».
Александр Романович,
ведущий программист «Хьюмен систем»
Программист уточняет, что большинство компаний, у которых есть авторские алгоритмы, защищают свою интеллектуальную собственность, т. е. не поставляют эти алгоритмы с открытым кодом. В основном не закрывают те, кому нечего закрывать, поскольку продают готовые коробочные решения без своих собственных алгоритмов.
Важно понимать, что конфигурация закрывается не вся — лишь отдельные ее функции, которые нет необходимости менять.
«Страхи основаны на том, что люди чаще всего не представляют объем закрытых модулей, отсюда и ошибочное мнение, что в программе ничего нельзя изменить. На самом же деле закрыто разве что менее процента функционала программы. В итоге при поддержке программы закрытых модулей вообще не видно, а конфигурации с закрытым кодом обновляются как обычные».
НА КАКИЕ ФУНКЦИИ РАСПРОСТРАНЯЕТСЯ ЗАКРЫТЫЙ КОД
В конфигурациях от «Хьюмен систем» без исходного кода поставляются лишь те функции, которые компания считает своей важной интеллектуальной собственностью. Причем закрытый код есть только в конфигурациях «1С:Управление торговлей», «Управление финансами для 1С:8» и «Моя бухгалтерия 8», уточняет Александр. К примеру, если программа «Управление торговлей» имеет считанные закрытые модули, то «Моя бухгалтерия 8» написана с нуля и в ней значительно больше закрытого кода, но даже в таком случае он все равно не превышает 1%.
«Мы закрываем исключительно служебные вещи для работы с ключами и сервисами, а также те алгоритмы, которые не должны в наших конфигурациях работать по-другому. Скажем, абонентский номер для текущего обновления: его можно внести в константы вручную, а можно автоматически получить с нашего сайта www.hs.by, для чего будет использоваться функция без исходного кода. Для получения данных с другого ресурса программист напишет новую функцию, а существующую менять просто нет смысла. Кроме того, есть вещи у нас в конфигурациях, которые работают именно так и не должны по-другому. Для всех клиентов любого масштаба они одинаковые и не могут отличаться. Например, для конфигурации „Управление торговлей“ — это функция, которая получает данные с нашего сервиса, а для „Моя бухгалтерия 8“ — функция, которая рассчитывает курс валют либо пишет данные в наш ключ».
Представитель «Хьюмен систем» подчеркивает: такой подход гарантирует, что функции без исходного кода работают так, как их задумывал разработчик. Данные будут поступать именно с сайта «Хьюмен систем», курс будет рассчитан верно, а при отправке данных клиента в банк их получит именно банк, а не кто-то другой.
ЧТО ЭТО ОЗНАЧАЕТ ДЛЯ ПОЛЬЗОВАТЕЛЯ?
Часто ли у клиентов возникает необходимость что-то менять в закрытом коде? По словам Александра, за все время существования конфигурации специалисты «Хьюмен систем» ни разу не сталкивались с необходимостью такой модификации.
«Более того, наши штатные программисты также не имеют доступа к исходному коду „закрытых“ функций. И даже когда выполняют сложнейшие работы, ни у кого из них не возникает потребность в изменении закрытых функций. По сути, не только не приходилось менять, не было даже запросов на модификацию закрытых функций. И, как показывает практика, даже предприятия, у которых есть программисты, дорабатывающие конфигурацию под нужды своей компании, не сталкиваются с закрытым кодом. Они программируют, меняют всю систему, перерабатывают, делают под себя новые объекты, отчеты, обработки, меняют типовой функционал полностью и все равно не доходят до этих закрытых функций. За годы работы были лишь единичные случаи, когда программисты, в том числе наши штатные, уточняли алгоритмы работы таких функций».
Специалист обращает внимание, что структура программы полностью открыта, и сторонние разработчики могут вносить любые изменения в программу с закрытым кодом, кроме небольшого списка служебных функций. Причем обновлять такие конфигурации клиент может как самостоятельно, так и привлекая специалистов. Те же закрытые функции нельзя изменять, но можно использовать: любой сторонний разработчик может вызывать закрытые функции в своих алгоритмах в готовом виде. У большинства из них есть описание, и при необходимости компания проконсультирует, как они работают.
В индивидуальных доработках закрытый код и вовсе не применяют: модули, разработанные специально для клиента, поставляются только с открытым исходным кодом. В итоге и штатные программисты «Хьюмен систем», и сторонние могут как создавать новые объекты, так и изменять существующие, кроме модификации закрытых функций.
ТРИ ФАКТА ПРО ЗАКРЫТЫЙ КОД
1. Закрытый код не мешает пользователю полноценно использовать программу «1С», даже со своими доработками.
2. В «Хьюмен систем» закрытый код есть только в программах «1С:Управление торговлей», «Моя бухгалтерия 8» и «Управление финансами для 1С:8» и охватывает менее 1% функционала программы. Чаще всего это служебные функции.
3. При индивидуальных доработках вопросы про закрытые функции встречаются крайне редко. За последние 10 лет в «Хьюмен систем» они возникали всего один-два раза, а потребность в изменении таких функций не возникала вообще.
УПРАВЛЯЕМЫЕ ФОРМЫ: ЧТО ЭТО ТАКОЕ И КОМУ ОНИ НУЖНЫ
Управляемые формы — еще одна характеристика программ «1С», о которой много говорят, но не все понимают, для чего она нужна. Обычные формы разрабатываются программистом от начала и до конца. А при разработке управляемых программист декларирует только элементы, которые будут на этих формах, объясняет Александр Романович. Окончательную же настройку под себя (как это форма будет выглядеть и какое у нее будет поведение) может делать пользователь. По мнению специалиста, это плюс, поскольку, если какие-то процессы в компании меняются, пользователь может сам их подстроить.
«Второе важное отличие управляемых форм: при их разработке программист разделяет код на тот, который выполняется на сервере, и тот, который выполняется на компьютере пользователя. Это может быть важно, если нужно работать по сети с ограниченной пропускной способностью — через интернет, например. Основная часть расчета будет выполняться на сервере. Но, скажем, человек — на другом конце мира, у него нет компьютера с установленной „1С“, и он может зайти через браузер с того же телефона и посмотреть какой-то отчет или внести данные».
Нужно это далеко не всем пользователям и не для всех функций, подчеркивает наш собеседник. Настройка того же интерфейса требует дополнительных знаний. И нужно разбираться, как это работает, чтобы настроить под себя.
«Такие возможности нужны в первую очередь для оперативного и управленческого учета, поэтому управляемые формы мы используем на программах „1С:Управление торговлей“, „1C:ERP“, „1C:Документооборот“. И эти конфигурации разработаны фирмой „1С“ изначально на управляемых формах. В то время как в конфигурации „Моя бухгалтерия 8“, которую мы разрабатывали сами, основные процессы написаны на обычных формах, и иногда клиенты считают, что это что-то старое. Но мы осознанно оставили обычные формы, так как реальной необходимости менять их не видим».
В итоге у «Хьюмен систем» конфигурации, которые связаны с управленческим и оперативным учетом, используют управляемые формы, а та же «Моя бухгалтерия 8» — как обычные, так и управляемые. В последнем случае смешанный подход объясняют тем, что слишком много процессов регулируется законодательством и программист сразу при разработке какого-то модуля уже знает, как это должно работать. Пользователю не нужно ничего донастраивать. А общие и сервисные механизмы реализованы на управляемых формах, или те же дополнительные отчеты, где нужны гибкие отборы, обработки служебные, чтобы гибко настроить под свои задачи.
«Индивидуальные доработки „Моя бухгалтерия 8“ могут быть как на обычных формах, так и на управляемых. Если мы говорим про регламентированные операции, в данном случае проще разработать конфигурацию, используя обычные формы. Пользователь сразу получит готовый результат, который к тому же проще поддерживать. Да, управляемые формы можно разработать быстрее, пользователю будет даже проще в них разобраться, но для каких-то вещей, которые требуют быстрого обновления того же законодательства, обычные формы все же оперативнее».
Автор: Ольга Пасияк
Фото: Freepik, Envato Elements