Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

10 Апрель 2020, 06:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: После защиты паролем через библиотеку, макрос перестал работать  (Прочитано 904 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Стартовое сообщение: 7 Февраль 2020, 10:54 »

Приветствую всех жителей форума!
Избитая тема "защиты данных паролем" задаёт новые загадки.
Недобросовестные пользователи внутренней отчётности, которая влияет на премию конкретных сотрудников, узнали что пароль на защиту листа находится в меню Сервис => макросы
и просто снимают его не напрягаясь перебором и прочими техническими штуками.
Естественно я попытался поставить пароль на сам макрос (Сервис=> Управление макросами=> Макросы LibreOffice BASIC=> Управление=> Библиотеки=> Выбираем наш файл с макросами (не стандарт) и вводим пароль.
Всё здорово!
Только теперь при нажатии кнопки макроса выходит сообщение вида:

"Ошибка сценария при выполнении сценария Basic vnd.sun.star.script:VBAProject.Module1.Текст?language=Basic&location=document."

Но если войти в редактор макросов и ввести тот самый пароль, то макрос вполне нормально работает.
Я так полагаю что где-то есть параметр типа "на чтение" или "на исполнение".
Подскажите пожалуйста, кто в курсе: как добиться выполнения макроса, не снимая пароля.

Файлик примера приложен.
Всем Спасибо!



* Книга1.ods (37.3 Кб - загружено 5 раз.)
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 769


« Ответ #1: 7 Февраль 2020, 11:29 »

Тут целая куча проблем.
Во-первых, проекты VBA (VBAProject, то есть те, которые остались после конвертирования из MS Office) вообще не поддерживаются при шифровании. Сохраните макрос в нормальной библиотеке ЛО.

Во-вторых, у запароленных библиотек есть проблемы с локализованными строками (например, решённый баг 57113, а также нерешённый баг с локализованными именами функций - но эта проблема Вас не затронет, если Вы используете русский интерфейс ЛО.)

В третьих, VBASupport, похоже, не работает даже в нормальных библиотеках с паролем.
Записан

С уважением,
Михаил Каганский
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #2: 7 Февраль 2020, 12:08 »

А есть возможность не хранить пароль в тексте макроса, чтобы он не был виден непосвящённым пользователям?
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 769


« Ответ #3: 7 Февраль 2020, 12:12 »

не хранить пароль в тексте макроса

Это о чём? где пароль хранится в тексте макроса? Шокирован
Записан

С уважением,
Михаил Каганский
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #4: 7 Февраль 2020, 12:14 »

в тексте макроса перед выполнением операций макрос снимает защиту с листа "
ActiveSheet.Unprotect "ПАРОЛЬ"

А после выполнения операций

ActiveSheet.Protect "ПАРОЛЬ"
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 769


« Ответ #5: 7 Февраль 2020, 12:15 »

Зачем?
Записан

С уважением,
Михаил Каганский
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #6: 7 Февраль 2020, 12:20 »

В книге масса значений, подгруженных из достоверных источников, которые запрещено менять.
Бывали случаи когда сотрудники (у нас их более 30) "ручками" корректировали себе показатели, чтобы повысить премии.
Выловить это достаточно сложно.
Поэтому редактирование возможно только тех ячеек, которые не защищены (они под контролем находятся)
Простая защита (без пароля) просто отключается.
С паролем работала несколько лет.
Но появилось несколько умников, которые просто смотрят в тексте макроса пароль.
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 769


« Ответ #7: 7 Февраль 2020, 12:22 »

Я не спрашивал, зачем нужен пароль (пусть даже и слабенький: защита листа - это ерунда, которую может обойти любой желающий, не зная пароля).

Я спрашивал: зачем Вы снимаете пароль в макросе (и затем приходится его возвращать)?
Записан

С уважением,
Михаил Каганский
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #8: 7 Февраль 2020, 12:27 »

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

Поэтому сначала снимаю защиту, потом обрабатываю ячейки, потом ставлю защиту.
 
Записан
mikekaganski
Мастер
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 769


« Ответ #9: 7 Февраль 2020, 12:30 »

на защищённом листе макрос не работает, поскольку лист защищён.

Вы пробовали? По крайней мере Ваш макрос прекрасно меняет защищённые ячейки B2 и B3 в ЛО 6.4.0.3, даже если убрать строки со снятием/возвращением пароля.
Записан

С уважением,
Михаил Каганский
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #10: 7 Февраль 2020, 12:44 »

А вот для меня это новость!!!
Excel так не умеет...
При изменении макросом защищённой ячейки он ругается!
Про Libre этой возможности я просто не знал.
Получается, что можно защитить лист (от дурака) своим паролем и не париться со снятием и постановкой защиты ...
Я попробую более сложные вещи, со скрытием и раскрытием строк, столбов и прочих нюансов
Спасибо огромное, за просвещение!
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 900



« Ответ #11: 7 Февраль 2020, 12:46 »

Бывали случаи когда сотрудники (у нас их более 30) "ручками" корректировали себе показатели, чтобы повысить премии.
оффтоп, но вам не кажется, что тут что-то не так? А где контроль за их фактическими показателями со стороны руководителя подразделения?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #12: 7 Февраль 2020, 13:20 »

Так на местах "руководители подразделения" и щёлкают клювами, пропуская эти вещи...
А когда выгруженные отчёты попадают в фин-отдел, там уже не видно тех показателей, на которых всё основано.
Потом конечно всё всплывает в итоге, но время уходит и силы тратятся...
Но это уже другая тема Улыбка
 
Записан
Konstanta
Форумчанин
***
Offline Offline

Сообщений: 59


« Ответ #13: 7 Февраль 2020, 13:37 »

При удалении снятия защиты в реальном рабочем файле макрос всё же ругается на то, что невозможно изменить защищённые ячейки.
Так что тема актуальна.
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 171


« Ответ #14: 8 Февраль 2020, 16:35 »

Konstanta - Calc (особенно некотоорые старые версии) - легко обходят все Excel-примочки защиты с паролями листов/книг итп, Sheet().Visible = xlVeryHidden и прочим. Поэтому защитить ничего надежно не получится.

Кроме того, подсунув невалидные данные в ячейки - можно вызвать Runtime Error и перехватить момент снятия защиты.

Все эти защиты - от самого себя. А когда в офисе свирепствует чума KPI или что-то подобное - нужно менять инструмент или не отдавать его на сторону.

Если персонал дорос до автоподбора паролей листов - дойдет и до прямой правки XLS/ODS-файлов. Тут нужно базу данных с правами на уровне движка СУБД и безопасностью на базе ролей. Чаще всего что-то такое уже есть в офисе (1С итп.)
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!