Установка КЗК 2.0

При установке «Компилятора» выберите каталог, куда установлено 1С:Предприятие 7.7. По умолчанию, это каталог C:\Program Files\1Cv77\BIN.

Можно ли компилировать не всю конфигурацию, а только часть функционала?

Да, можно. Для этого надо вынести в дополнительный глобальный модуль все функции, которые вы хотите защитить. Затем дополнительный глобальный модуль компилируется в π-код. Данная функциональность появляется с версии ЭКСПЕРТ.

Из-за КЗК-2 медленнее происходит загрузка модулей?

Наоборот, загрузка модуля происходит намного быстрее, т.к. процедура компиляции в π-код уже сделана заранее.

В чем основное различие между СТАНДАРТОМ и ЭКСПЕРТОМ?

См. таблицу сравнения версий

В чем отличие КЗК-2 от первой версии (Inserter 2.2)?

Новая версия КЗК — это совершенно новый продукт, а не доработка первой версии. Методом защиты в КЗК-2 является компилирование модулей (аналог поставки без исходных кодов в версии 8.х). Фактически КЗК-1 и КЗК-2 объединяет только название.

Почему компилирование модулей надёжней в плане защиты, чем их шифрование?

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

При компилировании модуля его исходный текст полностью исключается из поставки конечному пользователю. Вместо исходного кода передаётся уже подготовленный для выполнения псевдо-код (п-код). Поэтому злоумышленник, даже получив доступ к исполняемому псевдо-коду, не сможет восстановить исходный код в первозданном виде. Для восстановления исходного кода ему потребуется написать специальную программу — декомпилятор (создание которой уже само по себе намного сложней полного переписывания защищаемого кода). Но даже имея на руках готовый декомпилятор, злоумышленник сможет получить код на языке 1С, доработка которого до приемлемого вида по сложности сравнима с тем же переписыванием защищённого модуля. Помимо всего прочего, КЗК-2 содержит средства не просто компиляции модулей, но так же и дополнительной обработки скомпилированного кода, которая намного усложняет декомпиляцию.

Чем отличаются разные версии КЗК-2? Разве мне недостаточно будет версии Стандарт для компилирования любых модулей?

Базовый функционал компилирования у всех версий одинаков и действительно для защиты любых модулей достаточно будет самой простой версии. Разница версий заключается в дополнительном функционале, который растёт от версии к версии. Для некоторых пользователей этот дополнительный функционал оказывается критичным, им недостаточно просто компилирования модулей.

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

Если я скомпилирую конфигурацию с помощью КЗК-2, то как же мне потом обновлять ее у конечного клиента? Компиляция как-то изменяет формат файла 1Cv7.md?

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

Возможно ли использовать КЗК-2 на распределённых базах?

Да, т.к. формат файла конфигурации полностью сохраняет свою структуру. Работа в распределённой базе ни чем не будет отличаться от работы с незащищённой конфигурацией.

В описании к демо-версии написано, что компилирование возможно только на локальных базах и только в формате базы DBF. Смогу ли я использовать КЗК-2 на базе SQL?

Ограничение по работе с локальной DBF базой относится только к работе самого Компилятора. Для компилирования конфигурации Вам необходимо будет создать временную локальную базу в формате DBF, в которую загрузить нужную конфигурацию. Затем, запустив на этой временной базе Компилятор, Вы можете скомпилировать свою конфигурацию. А вот после компиляции Вы можете использовать полученную конфигурацию на любой базе, в том числе и на базе в формате SQL. Для этого Вы обычными методами (загрузка или объединение в Конфигураторе) загружаете скомпилированную конфигурацию в нужную базу и спокойно продолжаете работать.

Когда я смотрел демо-версию, при старте скомпилированных модулей выскакивало окошко с предупреждением. Будет ли появляться такое окошко в полной версии?

Нет. Это окошко — часть ограничений демо-версии. На полной версии ни каких задержек при старте скомпилированного модуля нет.

Кстати, о задержках. А как влияет компилирование с помощью КЗК-2 на скорость работы модулей? Сильно ли замедляется выполнение скомпилированных модулей?

На самом деле скорость выполнения скомпилированного модуля такая же, как скорость выполнения обычного модуля. Ведь фактически само 1С:Предприятия перед выполнением обычного модуля проводит его компиляцию. Разница в скорости работы будет только в момент загрузки модуля в память — скомпилированный модуль начинает свою работу примерно в 4 раза быстрей, чем незащищённый модуль, т.к. нет потери времени на выполнение компиляции, модуль просто разворачивается в памяти и тут же начинает работу.

Зачем покупать полную версию, если можно «ломануть» демо-версию и получить вполне пригодную для работы программу?

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

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

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

Защищаю конфигурацию, которая находится в активной доработке и каждый раз перед отправкой клиенту её необходимо компилировать. Обязательно ли надо каждый раз вводить пароль на смену лицензии?

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

Возможно ли повторно скомпилировать модуль с другими условиями?

Функционал перекомпилирования модулей присутствует в КЗК-2. Однако, его рекомендуется использовать только в исключительных случаях и очень осторожно и внимательно, т.к. это может привести к полной неработоспособности защищаемого модуля. Для полноценной работы всё же лучше каждый раз заново компилировать открытый модуль с нужными условиями.

Мои пользователи перевели на компьютере дату на год назад и перестали работать скомпилированные модули. В чем может быть дело?

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

На каких релизах 1С:Предприятия могут работать скомпилированные модули?

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