декомпилятор 1с не хватает прав

Защита модулей паролем и их декомпиляция в 1С 8.3 и 8.2

Наверняка каждый разработчик заботится о том, чтобы его программы были защищены от нелегального распространения. Особенно если эта разработка – коммерческий, тиражируемый продукт.

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

В данной статье я хочу разобраться, как установить защиту и снять её, если Вы забыли пароль.

Установка защиты на модуль 1C

Возьмем любой модуль любого объекта. Я взял навскидку первый же документ – «Авансовый отчет». Если поставить курсор на текст кода модуля, в главном меню появится пункт «Текст». В этом пункте есть подпункт «Установить пароль».

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Программа меня тут же предупредила о том, что нельзя защитить модуль, имеющий директивы препроцессора:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Напоминаем, директивы препроцессора — это такие конструкции, как #Если, #Тогда, #Конец и т.п.

Что же, посмотрим, во что это выльется. Устанавливаем пароль.

После установки пароля при попытке закрыть модуль выходит сообщение об ошибке:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Игнорируем ошибку и сохраняем конфигурацию. Интересно, откроется ли документ. Запускаем программу в режиме «Предприятия».

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

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

Вывод однозначный: не все модули можно защитить. Однако ничего Вам не мешает вынести функции и процедуры с директивами препроцессора в отдельный модуль.

Пробуем защитить общий модуль. Случайным выбором пробую защитить 10 общих модулей. Примерно половина защитились без всяких замечаний. При попытке защитить вторую половину просто вышло сообщение, что модуль нельзя защитить.

Осталось проверить обработки. Возьмем для интереса внешнюю. Защита прошла без проблем.

Проверка надежности защиты с помощью декомилятора модулей 1С

Посмотрим теперь, удастся ли обойти защиту. Покопавшись немного в интернете, я наткнулся на «декомпилятор модулей» (скачать можно по ссылке), который якобы способен снять пароль. Декомпилятор представляет собой внешнюю обработку на обычных формах. Хорошо, пробуем. Начнем все с той же внешней обработки, на модуль которой я установил пароль.

Запускаем 1С в режиме предприятия и открываем обработку с декомпилятором через «Файл» – «Открыть». Замечу, что обработка, которую я нашел, написана на обычных формах, и запускать ее нужно под толстым клиентом:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Нажимаем «Декомпилировать» и получаем сообщение, что все прошло успешно:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Пробуем открыть модуль в конфигураторе, и он прекрасно открывается.

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

Теперь осталось проверить, как декомпилятор справится с общими модулями. Сохраняем конфигурацию в файл.

Выбираем в обработке:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

После нескольких минут получаем сообщение:

декомпилятор 1с не хватает прав. Смотреть фото декомпилятор 1с не хватает прав. Смотреть картинку декомпилятор 1с не хватает прав. Картинка про декомпилятор 1с не хватает прав. Фото декомпилятор 1с не хватает прав

Загружаем конфигурацию из файла и проверяем защиту. Защита полностью снята.

Тестирование проводилось на платформе 8.3.9.1818, конфигурация «Бухгалтерия предприятия 3.0.44.188».

Самое интересное, что модуль данного «декомпилятора» тоже защищен. Но обработка не позволяет снять защиту с самой себя.

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

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Не хватает прав на внешнюю обработку

Добрый день.
В Рознице 2.1.2.8 не устроил стандартный РМК_управляемый. Сохранил его как внешнюю обработку и доработал.
Пользователь с правами кассира запускает стандартный и работает в РМК без проблем.
После добаления ему прав на Использование внешних обработок, он стал запускать мой РМК через Файл-> Открыть и т.д. (без регистрации в дополнительных обработках в самой базе), но при аннулировании чека и прочих вещах пишет ошибку, что не хватает прав в строке с
обращением к ПараметрыСеанса.ПараметрыКлиентаНаСервере(..).

Просмотрел настройки прав и не нашёл, где поставить галочку заветную.

Посоветуйте, что дальше делать.

В модуль «Длительные операции» стр 164 втавить следующий текст «//Вл + что бы не останавливалось на внешних отчетах
Если НЕ Задание.Наименование = «Варианты отчетов: Формирование отчета» тогда
ВызватьИсключение(ТекстОшибки);
иначе
Возврат Истина;
КонецЕсли;
» заменяющий одну строку «ВызватьИсключение(ТекстОшибки);»

ошибка вызвана этим: <ОбщийМодуль.ОбновлениеИнформационнойБазы.Модуль(23)>: Ошибка при получении значения атрибута контекста (ПараметрыКлиентаНаСервере)
Запустить = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить(«ЗапуститьОбновлениеИнформационнойБазы»);
по причине:
Нарушение прав доступа!
Получается, что он не может получить просмотреть Параметры Сеанса.
что нужно сделать без изменения конфигурации, пока ищу.

(13) more, (1) sapozhnikovfa, в более свежих релизах это исправлено!

Добавлен новый общий модуль «ОбновлениеИнформационнойБазыСлужебныйПовтИсп» с галочками: Сервер, Внеш соединение, Клиент (обычное) и стоит «Повторное использование возвращенных значение» = «На время сеанса».

В этот общий модуль перенесена функция «НеобходимоОбновлениеИнформационнойБазы()»

В старой процедуре «НеобходимоОбновлениеИнформационнойБазы()» из общего модуля «ОбновлениеИнформационнойБазы» вызывается новая процедура:

А ошибка ранее была собственно в том что при повторном вызове данной процедуре в старом общем модуле у пользователя с ограниченными правами не мог установиться

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *