Законна ли обфускация кода в 1С и что делать, если вы получили конфигурацию с нечитаемым текстом

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

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

Что такое обфускация в 1С и как она выглядит

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

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


Функция ___a_() Экспорт 
  Перейти ~a__; 
  ~___a:Перейти ~_a_; 
  ~_a:Перейти ~__a; 
  ~__a__:Возврат "Проверка ""нетленки"" на наличие в тексте ""ковычек"""; 
  ~__a:Перейти ~___a; 
  ~_a___:Возврат -1; 
  ~__a_:Возврат Новый СписокЗначений(); 
  ~a__:Перейти ~_a; 
  ~a___:Возврат ИСТИНА; 
  ~_a__:Возврат ""; 
  ~_a_:Перейти ~a___; 
КонецФункции

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

Законно ли это: юридический аспект

Выясним, нарушает ли исполнитель закон, передавая такой код. Здесь ключевое значение имеет текст договора и Технического задания (ТЗ). Если в ТЗ прямо указано, что конфигурация должна быть выполнена с открытым исходным кодом, то обфускация может быть признана ненадлежащим исполнением обязательств.

Рассмотрим важные юридические нюансы:

  1. Определение открытого кода: В общепринятой практике (и в контексте 1С) под открытым кодом понимается возможность его изучения и модификации. Обфускация блокирует возможность модификации, что противоречит сути «открытости».
  2. Исключительные права: Если по договору исключительные права на разработку переходят заказчику (ст. 1296 ГК РФ), то он должен получить актив, которым может распоряжаться. Код, который невозможно поддерживать без участия автора, ограничивает права владельца.
  3. Злоупотребление правом: Намеренное запутывание кода с целью удержания клиента на абонентской плате может быть квалифицировано судом как злоупотребление правом (ст. 10 ГК РФ).

Стандарты фирмы «1С» для партнеров-франчайзи

Если исполнителем является официальный партнер фирмы «1С» (франчайзи), ситуация для заказчика упрощается. Фирма «1С» предъявляет жесткие требования к качеству кода, который пишут партнеры. Существует «Система стандартов и методик разработки», где четко прописано, что идентификаторы (переменные, процедуры) должны быть понятными. Например, вместо а1 должно быть СуммаДокумента.

Использование обфускатора в заказной разработке — это грубое нарушение партнерского договора. Жалоба в контрольную группу фирмы «1С» (отдел «К») может привести к серьезным санкциям для франчайзи, вплоть до лишения статуса.

Пошаговый план действий по возврату исходного кода

Если вы обнаружили обфускацию, разберем по шагам, как правильно действовать:

Шаг 1: Проверка договора и ТЗ. Найдите все упоминания слов «открытый код», «исходный код», «сопровождение сторонними специалистами». Даже если четких критериев оформления кода нет, сам факт наличия ТЗ на разработку подразумевает передачу пригодного к использованию продукта.

Шаг 2: Фиксация состояния. Пригласите независимого специалиста или эксперта, который задокументирует, что код является нечитаемым и не соответствует стандартам разработки 1С. Это пригодится для суда.

Шаг 3: Переговоры с руководством исполнителя. Зачастую обфускация — это личная инициатива обиженного программиста, о которой руководство франчайзи может не знать. Сообщите им, что вы намерены подать официальную жалобу в фирму «1С» и обратиться в суд.

Шаг 4: Досудебная претензия. Подготовьте официальную претензию. В ней укажите, что работа выполнена ненадлежащим образом, так как переданный код не позволяет осуществлять поддержку продукта, предусмотренную договором. Требуйте предоставления оригинальных (необфусцированных) модулей в течение определенного срока.

Шаг 5: Обращение в 1С. Напишите письмо на адрес k@1c.ru с подробным описанием ситуации, приложив копии договора и примеры «запутанного» кода. Фирма «1С» дорожит репутацией и часто выступает медиатором в таких спорах.

Практические советы по технической части

Пока идут юридические споры, проанализируем ситуацию с технической стороны:

Резюме

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

← На главную