Вернуться в начало

Пароль внешнего отчета

Изложенное в этой статье известно большинству специалистов по настройке бухгалтерских программ фирмы „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 — она-то нам и нужна. Откроем ее для редактирования. На экране появится следующий текст:

Текст ветки 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 г.

Hosted by uCoz