Пароль внешнего отчета
Изложенное в этой статье известно большинству специалистов по настройке бухгалтерских программ фирмы 1С. Описанный ниже способ снятия пароля внешнего отчета (обработки) 1C:Предприятие 7.7 я узнал на форуме http://1c.realnet.ru/cgi-bin/forum.cgi из сообщения от 26.08.2004 г. посетителя под ником DeiMos.
Цитата из книги 1С:Предприятие 7.7. Конфигурирование и администрирование. Часть 1 (стр. 211): Внешний отчет (обработка) может быть защищен паролем от несанкционированного редактирования в режиме «Конфигуратор» и исполнения в режиме запуска «1С:Предприятие». Для установки пароля на внешний отчет выберите пункт «Установить пароль» из меню «Действия» главного меню Конфигуратора (конец цитаты). Однако, практика показывает, что такая защита легко преодолевается.
Файл типа *.ert, в котором хранится внешний отчет, представляет собой compound file на русский язык это понятие переводят как составной файл, структурированный файл или структурированное хранилище. Подробнее о таких файлах можно узнать на сайте MSDN Library (библиотека Microsoft Developer Network сети ресурсов в интернете и вне его, созданной фирмой Microsoft для помощи разработчикам программ, использующим в своих разработках продукты и технологии фирмы Microsoft) в разделе Containers: Compound Files. Составные файлы сейчас широко распространены. Например, ими являются документы MS Word, книги MS Excel. Файлы типа *.md, в которых хранятся конфигурации системы 1С:Предприятие 7.7 это тоже составные файлы.
Для снятия пароля внешнего отчета необходимо иметь программу для просмотра и редактирования составных файлов. В этом качестве я использую плагин DocFile Browser для файлового менеджера FAR Евгения Рошаля (официальный сайт этого файлового менеджера www.farmanager.com). Упомянутый плагин можно найти на сайте www.7-zip.org его автора Игоря Павлова, в разделе Утилиты.
Итак, откроем FAR. Найдем файл внешнего отчета, защищенный паролем. С помощью плагина DocFile Browser просмотрим его содержимое (для экспериментов я создал внешний отчет в Конфигураторе, установил на него пароль и сохранил в файле Проба.ert):
Container.Contents Container.Profile Dialog Stream Inplace description Main MetaData Stream MD Programm text Page.1
Обратите внимание на ветку Container.Profile она-то нам и нужна. Откроем ее для редактирования. На экране появится следующий текст:
{ {"MoxelName","",""}, {"MoxelPos","0",""}, {"UUID","78B3AB515C5506AB0BD56BAB7A52AA79",""}, {"Entry","1",""}, {"MoxelNextMode","1",""}}
Легко догадаться, что перед нами массив неких реквизитов, каждый из которых характеризуется тремя значениями в кавычках. Первое из них имя реквизита, второе значение реквизита. Нас интересует реквизит с именем UUID, в его буквенно-цифровом значении длиной в 32 символа и закодирован пароль: 78B3AB515C5506AB0BD56BAB7A52AA79. Заменим эту последовательность на D41D8CD98F00B204E9800998ECF8427E и сохраним ветку Container.Profile. Закроем содержимое файла Проба.ert.
Теперь можно заниматься несанкционированным редактированием или исполнением этого отчета в 1С:Предприятии 7.7 сколько угодно запрос на ввод пароля выдаваться не будет. Откуда же можно узнать волшебную последовательность букв и цифр? Создайте в Конфигураторе внешний отчет, пароль не устанавливайте. Сохраните этот отчет в файле. Просмотрите, как было описано выше, содержимое полученного файла, откройте ветку Container.Profile. Скопируйте значение реквизита UUID это и будет искомый золотой ключик.
ИВv, июль 2005 г.