Настройка и анализ прав доступа v.1.21, для 8.1 и толстого клиента 8.2




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

99 Comments

  1. WiseSnake

    Спасибо! Сделано добротно. Мне понравилось. Будем пробовать…

    Reply
  2. Istur

    (1) )) Это не конечный вариант, буду дорабатывать дальше))

    Reply
  3. Istur

    )) Это не конечный вариант, буду дорабатывать дальше))

    Reply
  4. Алексей_Ч

    Отличный отчет. Спасибо.

    Reply
  5. Serj1C

    Не просто отчет. Ооочень удобно, красиво, качественно.

    Reply
  6. AdProg

    Спасибо 🙂

    Reply
  7. artbear

    Отличная обработка!

    К сожалению, работает только с типовыми!

    У меня собственные конфы, есть некие полезные вставки от типовых, есть простейший справочник «Пользователи».

    После небольшого допиливания обработка заработала и в моих нетиповых конфах 🙂

    (0) Для большей универсальности можно сделать следующее:

    1. Не во всех конфах в справочнике «Пользователи» есть доп.реквизит ЭтоГруппа

    Для исправления в процедуре «СформироватьЗапросДляПостроителя()» можно

    а) либо тупо сделать Попытка-Исключение, в попытке твой запрос, в исключении тот же запрос, но ЭтоГруппа = Ложь

    б) либо проверить метаданные у справочника Пользователи

    2. Не во всех конфах есть ШрифтыСтиля.ШрифтВажнойНадписи

    Для исправления я выделил спец. метод

    // — Артур — 19.08.2009 — если в системе нет стиля ШрифтыСтиля.ШрифтВажнойНадписи

    Функция ПолучитьШрифтСтиля_ШрифтВажнойНадписи()

    Попытка

    Возврат ШрифтыСтиля.ШрифтВажнойНадписи;

    Исключение

    //ОписаниеОшибки()

    Возврат ШрифтыСтиля.ШрифтТекста;

    КонецПопытки;

    КонецФункции

    и вместо прямого использования ШрифтыСтиля.ШрифтВажнойНадписи подставляю данную функцию.

    После этого обработка без проблем заработала.

    Reply
  8. wolf_az

    Классно!

    Reply
  9. Ziggurat

    Замечательная обработка.

    Reply
  10. Kuzkin_otets

    Спасибо! Намного удобнее стандартной настройки!

    Reply
  11. Ruslan_Zakharov

    Отличный отчет! Большой плюс! Разработчику Respect

    Reply
  12. Hoochie

    Спасибо!

    Reply
  13. SMIX

    Отличная обработка! Для работы с УПП — вещь очень полезная и удобная.

    Reply
  14. sound

    Отлично

    Reply
  15. EugeneK

    великолепно , маладца. еще могу предложить вместо Да/Нет рисовать +/- разными цветами — понагляднее будет.

    Reply
  16. zzerro

    О… Спасибо, замечательная разработка, плюс адназначна

    Reply
  17. Zevik

    Спасибо, отличная вещь!

    Reply
  18. YVolohov

    (7) для самописных и прочих нетиповых конфигураций (сам Бог велит пропиарится ))) http://www.infostart.ru/projects/4422/

    меньше функционала, по сравнению с обработкой автора, зато подходит для любой конфы

    Reply
  19. icq65312855

    Сделано хорошо.

    Неплохо было бы добавить побольше отборов для таблиц с правой стороны

    Reply
  20. artbear

    (18) Знаю, юзаю, но люблю конкуренцию 🙂

    Reply
  21. YVolohov

    Кстати, просмотрел только что код обработки автора, явно заслуживает еще одного плюса.

    Reply
  22. Арчибальд

    Приступаю к администрированию 8-ки… Как честный человек, плюсануть просто обязан. :)))

    Reply
  23. YVolohov

    (22) Давно пора, клюшки конечно бессмертны, но … все же не совсем 🙂

    Reply
  24. Ish_2

    (22) Тихо съезжай с 77. Мы никому не скажем..

    Reply
  25. Арчибальд

    (23) А я совсем не :((

    (24) Съехать не удастся. Могу наехать :))

    Reply
  26. Istur

    (7) Тестировал только на типовых конфигурациях и если после в принципе незначительных изменений работает в самописной — то это сильно радует)) Чуть попозже сегодня вставлю ваш код в обработку, спасибо))

    Reply
  27. Istur

    (13) Специально созвалал под УПП, все остальные обработки по данной тематике были не всегда удобны(( Когда 50-60 ролей и двузначное-трехзначное количество пользователей…

    Reply
  28. Istur

    (15) Хорошая идея, буду реализовывать))

    Reply
  29. Istur

    (18) Прямое большинство конфигураций типовые, или на основе типовых всё же)) И после небольшой доделки, согласно (7) я думаю она будет подходить для многих самописных)) Странно, но на твою обработку я до этого не натыкался(( Красиво сделано и по сравнению с «Матрицей ролей пользователей» больше функционала)) Правда в ключевых для меня вопросах те же проблемы((

    Reply
  30. Istur

    (19) Какие именно отборы нужно добавить?

    Reply
  31. Istur

    (20) Конкуренция дает лучшее качество))

    Reply
  32. Istur

    (21) Спасибо, Ярослав)) Да кризис, времени свободного много, и хотелось написать качество.. Надеюсь получилось))

    Reply
  33. Istur

    Всем спасибо за слова благодарности, приятно понимать, что работа выполнена не напрасно))

    Reply
  34. YVolohov

    (29) Она изначально такой задумывалась, использование исключительно средств платформы, поддержка любой конфигурации. Естественно пришлось урезать функционал.

    Сейчас доделываю отчет в расшифровке по правам доступа к отдельным полям (RLS). На днях думаю закончить и выложить.

    Reply
  35. Istur

    (34) Так (RLS) — это работа со справочником «Пользователи», то есть отход от универсальности? Чем кстати будет отличаться от http://infostart.ru/projects/3956/ ? А так буду ждать, у тебя интересные разработки))

    Reply
  36. Istur

    (7) — Теперь работает и в конфигурациях, где справочник «Пользователи» не иерархический. Проблему со шрифтом тоже исправил.

    Reply
  37. artbear

    (36) Ага, спасибо.

    На самом деле еще печать не универсальна 🙂

    {Форма.ФормаВыбораПечатныхФорм(16,11)}: Переменная не определена (РаботаСДиалогами)

    Если Не <<?>>РаботаСДиалогами.ПроверитьМодифицированностьВФорме(Объект, ВладелецФормы) Тогда

    Но ИМХО это уже мелочь.

    Reply
  38. mwoleg

    Отличная обработка! Для работы с УПП — вещь очень необходимая и удобная.

    Reply
  39. Kruzo

    Только для УПП? Для БП не подходит?

    Reply
  40. athlete

    Большой плюс и респект автору!

    Пожелания рекомендации:

    1. Поддержу EugeneK по поводу рисовать +/- разными цветами вместо Да/Нет, А лучше добавить выбор в настройках.

    2. Добавить разделители на некоторых страницах, например «Роли», чтобы можно было поднять вверх и сделать шире поле «Метаданные, к которым нет доступа». На мониторах разное разрешение и фиксированный интерфейс не всегда удобно.

    3. Если возможно добавить работу с профилями.

    4. Не плохо было бы добавить отчеты по Ролям (К каким метаданные роль имеет доступ к каким нет по каждому из метаданных) и По метаданным (Кто может читать, редактировать и тд по каждому из метаданных)

    5. В отборе по подсистемам добавить пункт «Без подсистемы» или как то так

    Reply
  41. YVolohov

    (35) Не совсем, RLS можно реализировать как на уровне конфигурации (это сделано в типовых) так и на уровне платформы (тоже используется в типовых в некоторых объектах).

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

    Отчет, кстати я закончил и выложил.

    Reply
  42. Larkin

    Конечно +! Отлично сделано! Спасибо )

    Reply
  43. Istur

    (37), Черт, я специально переносил все процедуры из общих модулей в обработку, а эту не углядел чего-то(( Исправил, щас наконец все должна стать универсальной, потестируй битте))

    (39) Подходит для всех конфигураций

    (40) 1 — реализовал, 2,3 — чуть позже, 4 — не понял.. то есть добавить еще 2 печатные формы?, 5 — пункт «Без подсистемы» — расшифруйте, тоже не понял.

    Reply
  44. athlete

    (43) 4 — да еще печатные формы, чбы можно было расчечатать что может пользователь (профиль, роль) по метаданным а чего не может

    И наоборот для каждого объекта метаданных кто может все, кто читать кто редактировать и ну конечно с отборами и настройками. Что бы можно было распечать эти данные и согласовать с начальством. (где + добавить, а где убрать).

    5 — Если метаданные не принадлежат ни одной подсистеме (Например Которые добавили самостоятельно и не включили ни в одну из подсистем). Т.е. отбор как на закладке подсистемы «Нет ни в одной подсистеме»

    Reply
  45. Поручик

    (43) Перед именеми процедур лучше поставить свой уникальный префикс

    {ВнешняяОбработка.НастройкаИАнализПравДоступа(3,9)}: Процедура или функция с указанным именем уже определена (НайтиПользователяИБ)

    Функция <<?>>НайтиПользователяИБ(ИмяПользователя) Экспорт

    {ВнешняяОбработка.НастройкаИАнализПравДоступа(728,11)}: Процедура или функция с указанным именем уже определена (НапечататьДокумент)

    Процедура <<?>>НапечататьДокумент(ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = «», Ссылка = Неопределено, ИсточникМакета = Неопределено) Экспорт

    Reply
  46. Istur

    (45) Значить у вас в глобальный модуль, в который были добавлены указанные процедуры, как я понимаю.. Все, поставил префиксы)))

    Reply
  47. Поручик

    Вот теперь зашибись.

    Я-то мог и сам с процедурами вывернуться, но вдруг кто-то не сможет. :))

    Reply
  48. athlete

    (46)

    При печати выдает:

    1.

    {Форма.ФормаВыбораПечатныхФорм(19)}: Метод объекта не обнаружен (ПолучитьСтруктуруПечатныхФорм)

    СтруктураВнутреннихПечатныхФорм = Объект.ПолучитьСтруктуруПечатныхФорм();

    Надо заменить на СтруктураВнутреннихПечатныхФорм = Объект.Обр_ПолучитьСтруктуруПечатныхФорм();

    2.

    {Форма.Форма(866)}: Метод объекта не обнаружен (Печать)

    ЭтотОбъект.Печать(Расшифровка, 0, Форма.НаПринтер,ЭтаФорма);

    Заменить на

    ЭтотОбъект.Обр_Печать(Расшифровка, 0, Форма.НаПринтер,ЭтаФорма);

    Reply
  49. Istur

    (48) исправил.

    Reply
  50. athlete

    Istur, еще одно пожелание:

    Включите, пожалуйста, текст документа «Описание блоков прав доступа.doc» в справку обработки или повесьте кнопку, которая выводила бы табличный документ с данным описанием.

    Reply
  51. Merlin12042009

    классно

    Reply
  52. Istur

    (50) Да, Валерий, чего ступил я с этим вордом, надо было сразу в табличный документ вставлять)) Вставил)) Я добавил еще работу со справочником «Группы пользователя», в пункте 3 вы об этом говорили? Или о Справочнике «Профили полномочий пользователя».. Если о втором, то как именно хотите, чтоб я реализовал, конкретные пожелания есть? А так спасибо тебе, даешь идеи для совершенствования)))

    (42), (51) Спасибо на добром слове, стараюсь)))

    Reply
  53. athlete

    (53) Нет, я в сообщении имел ввиду именно Профили полномочий пользователей, которые так недавно появились в стандартных конфигурациях УПП и КА. Про «Группы пользователя» потом уже вспомнил, но писать не стал, ну теперь вроде ты сам сделал. Еще конечно можно добавить «дополнительные права пользователей» для универсальности, которые есть во многих обработках.

    Как реализовать профили пока не знаю, надо подумать, сейчас как раз объект есть (УПП) где полный бардак с правами. Я обязательно обмозгую и отпишусь.

    Первоначально идея такая, так как при создании пользователя ему можно присвоить права из профиля, то для меня было бы удобно видеть все то, что видно сейчас для пользователя + изменение настроек. По сути, пользователь = профиль. По моему так.

    Reply
  54. athlete

    Пожелание по «юзабилетности» — единообразию и удобству. Желательно чтобы на первой закладке Объект который мы настраиваем был слева, а значения настройки справа. Т.е. для этого оставить только два табличных поля с деревьями, которые заполнялись бы динамически.

    1. Назначение ролей и групп пользователям

    Наверное это самый сложный вариант для реализации, единственное что приходит в голову это пользователи как и сейчас слева, а справа в табличном поле двухуровневое дерево (с плюсиками равертки/свертки) с двумя основными ветками — роли и группы пользователей.

    2.Назначение ролям пользователей

    Роли — слева, а пользователи «с галочками» — справа

    3.Назначение группам пользователей

    Группы пользователей — слева, а пользователи «с галочками» — справа

    Не особо понятно назначение табличного поля «Группы пользователей» на закладке «Пользователи». Может я тублю?

    Reply
  55. athlete

    На закладнке «Пользователи» Ругается на при сворачивании разворачивании при установленной галке «Упорядочить по видам доступа» и в настройках Отображение метаданных: «Еще и вторичные» или «Полностью все»

    Ошибка типа:

    {Форма.Форма(2037)}: Значение не является значением объектного типа (Развернута)

    ДеревоТиповМетаданныхДляПользователя.Строки[ИндексРазвернутойСтроки].Строки.Найти(Строка.СтроковоеПредставление).Развернута = Истина;

    т.е. ДеревоТиповМетаданныхДляПользователя.Строки[ИндексРазвернутойСтроки].Строки.Найти(Строка.СтроковоеПредставление) — Неопределенно

    Документы — Полный доступ

    Документы — Только просмотр и ввод по строке

    Обработки — есть доступ

    ПВХ — Только просмотр и ввод по строке

    План счетов- Только просмотр и ввод по строке

    План видов расчета — нет доступа

    Бизнесс процессы — нет доступа

    Задачи — нет доступа

    Интерфейсы — есть доступ

    Интерфейсы — нет доступа

    Проверял на КА 1.0.2.1, УТ

    Reply
  56. Istur

    (55) Исправил, подробно потестировал, немного доделал, вроде сейчас никаких ошибок вывавать не должен.

    (54) На вкус и цвет товарищей нет)) Меня на работе знакомый убеждал еще до того, как я обработку выложил наоборот в обратном, что удобнее было бы создать только одну страницу и на нее запихать абсолютно всё. Но мне больше нравилось именно так, как я сделал)) Когда добавлял группы думал, как лучше и мне выложенный вариант показался наиболее подходящим.. Ведь можно одновременно без переключений назначать и роли и группы.. Но юзабельность и четкость нужное качество.. так что скорее всего переделаю.. Насчет того, что список с назначаемым должен всегда находить слева — неплохая идея))

    (53) Да, эти профили замечательная штука. Создал шаблон и не надо потом мучиться, в нем же абсолютно все указано, я тоже подумаю над темой как лучше реализовать..

    Тут все же не совсем удобно обсуждать, так что Валера если есть желание — моя аська 390853764)))

    Reply
  57. beornot

    Мне Обработка понравилась. Спасибо

    Reply
  58. chizh

    Автору — 5 с плюсом! Очень удобная вещь, кроме одного (лично для моей ситуации):

    Идея уже высказана (54) п.2

    Пример: сделал в базе новую роль. У меня 80 пользователей, 60 должны получить эту роль.

    Что я делаю прямо сейчас?

    1. выделил слева нужного юзера

    2. тынул справа нужную галочку.

    3. тыкнул нового юзера

    4. ответил на вопрос «Да».

    Я бы всё это сделал быстрее в 5 раз, если бы слева были роли (я выделил бы нужную), а справа — юзеры: я б натыкал нужных галочек-юзеров и всё. И при этом без вопросов.

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

    И тогда всем будет счастье!

    Но автору все равно уже большое спасибо!

    Reply
  59. chizh

    (58) Прошу прощения, автор все уже сделал! Это вторая пятёрка с плюсом. А мне — позор, что сразу не увидел очевидное… 🙁

    Reply
  60. Istur

    (58) Нет, на самом деле это большой минус программы, что непонятен сразу принцип действия, юзабельность должна быть.. Тогда в ближайшее время добавлю, как советовалось в (54), чтобы объекты, которым идет назначение, всегда были слева… И добавлю профили.

    Reply
  61. Istur

    (54), (59). Ваши пожелания по юзабельности реализованы))

    Reply
  62. Поручик

    (61)

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

    Так, чисто на заметку.

    {Форма.Форма(2303)}: Поле объекта не обнаружено (СвернутьВсе)

    Кнопка.Картинка = БиблиотекаКартинок.СвернутьВсе;

    Reply
  63. Поручик

    В УТ 10.3 нет такой картинки БиблиотекаКартинок.СвернутьВсе, в УПП есть.

    Reply
  64. Поручик

    {Форма.Форма(2308)}: Поле объекта не обнаружено (РазвернутьВсе)

    Кнопка.Картинка = БиблиотекаКартинок.РазвернутьВсе;

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

    Reply
  65. Istur

    (64) Прошу прощения, я думал это стандартные картинки, а они оказалось из конфигурации(( Ошибся в общем. Исправил.

    Reply
  66. Поручик

    Теперь нормально.

    Reply
  67. athlete

    Поломал отбор по метаданным. 🙁

    {Форма.ФормаОтбораПодсистем(72,2)}: Недостаточно фактических параметров (РаботаСФлажкамиДеревоПользователей)

    <<?>>РаботаСФлажкамиДеревоПользователей(Дерево,Ложь);

    {Форма.ФормаОтбораПодсистем(76,2)}: Недостаточно фактических параметров (РаботаСФлажкамиДеревоПользователей)

    <<?>>РаботаСФлажкамиДеревоПользователей(Дерево,Истина);

    Reply
  68. Istur

    (67) Убрал. И я снял антиспамбот на аське)))

    Reply
  69. artbear

    (68) Печать не очень универсальна 🙁

    Например, у меня в некоторых самописных конфах нету общей формы ПечатьДокументов 🙂

    Reply
  70. Istur

    (69) эта форма с самого начала находится внутри обработки, я переносил. Единственное, что у меня нет такого рода конфигураций, так что протестировать я не могу(( выходит туда просто закралась какая-то ошибка. Если не жалко, то скиньте такую конфу на ts87@mail.ru, или напишите здесь или в аське какая ошибка возникает. Я исправлю.

    Reply
  71. artbear

    (70) Все просто. Нажимаю Печать, в окне выбора еще раз нажимаю Печать и выдается ошибка

    {ВнешняяОбработка.НастройкаИАнализПравДоступа(778)}: Ошибка при вызове метода контекста (ПолучитьОбщуюФорму): Недопустимое значение параметра (параметр номер ‘1’)

    ФормаПечати = ПолучитьОбщуюФорму(«ПечатьДокументов»,, Новый УникальныйИдентификатор);

    по причине:

    Недопустимое значение параметра (параметр номер ‘1’)

    Reply
  72. Поручик

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

    ФормаРедактированияПользователяИБ = ПолучитьОбщуюФорму(«ФормаПользователяБД»,, СокрЛП(ИмяПользователя));

    Автору ещё советую всё-таки отформатировать код, в некоторых процедурах все строки по левому краю, читать трудно.

    Reply
  73. Istur

    (71), (72). Прошу извинения за неоперативности, ноутбук сломался((

    (71) исправил

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

    Форматирование кода исправлю, я наоборот перед тем как выложить автоматически отформатировал весь модуль, а где-то сбилось, и сбило форматирование во всем модуле(((

    Reply
  74. Istur

    (72) Поправил форматирование.

    Reply
  75. Поручик

    (73) Да всё нормально, работа качественная.

    Reply
  76. Anechka.Omsk

    я не мастер .. а только учусь .. очень понравилась

    Reply
  77. Istur

    (76) спасибо, Аня))

    Reply
  78. WideSmile

    Автор, красава, точно плюс. От всей души спасибо!!! 😀 Нада бы включать в типовые конфы… продай её 1зникам…

    Reply
  79. Istur

    (78) Спс)) Гордые они, не купят)))

    Reply
  80. MSensey

    «Назначение ролям пользователей», а то-то думал обычно роли пользователям назначают 🙂

    Reply
  81. Istur

    (80) Обычно да, но не всегда. К примеру добавили новую роль, а потом ее нужно ведь назначать пользователям. Для этого и существует этот режим. Или даже если идет назначение с нуля, то некоторым удобнее перебирать роли, а не пользователей)) Посмотрите 58 комментарий))

    Reply
  82. zawal

    Спасибо за обработку.

    Но сразу 2 момента.

    1. Нет описания наборов прав по

    а.»Параметрам сеанса»

    б.»Планам обмена»

    в.»Критериям отбора»

    2. В закладке «Пользователи» очень хотелось бы иметь фильтр на то какие права запрещены или разрешены по конкретному пользователю. Что-то в том духе того как это сделано по закладке роли.

    Просто есть ситуации когда настроив набор прав что-то упускаешь и нужно проконтролировать конкретно по пользователю.

    Reply
  83. Istur

    (82)

    1. Я делал это сознательно, уходил от избыточнисти.

    2. Немного не понял. На закладке «Пользователи» ведь видно к каким метаданным пользователь имеет доступ, а к каким нет… Объясните поподробнее)))

    Reply
  84. zawal

    (83) По 1-му. В конфигурации «Бухгалтерия для Украины, редакция 1.1» произошла исключительная ситуация из за ограничения доступа к параметрам сеанса. поэтому я и узнавал о вышеперечисленных наборах прав. и в чем избыточность???

    (83) по 2-му. Может я чего и не нашел. Тогда подскажете. А так собственно.

    Хочется стоб было в закладке «пользователей» выбрать варриантом просмотра возможность видеть «только то что разрешено» или «только то что запрещено» вид, типа такого, как это в закладке «роли»

    В ней вы сделали это в виде двух деревьев.

    Почему это нужно в закладке пользователи а не только роли.

    Так как если у пользователя более 1-й роли то разрешение дается при наличии хотя-бы по одной роли.

    Ну в принципе я выкрутился.

    Вывел список по пользователю с представлениями вида «Да» и «Нет» потом удалил «да», и получил только те права которые полностью запрещены пользователю по всем установленным ролям.

    Reply
  85. Istur

    (84)

    1. Избыточность — ну то есть я никогда не настраивал права для тех 3 видов метаданных, которые вы назвали, вот и не добавлял. И раз вы первый, кто об этом написал за 3 месяца, то я не единственный такой))) Сейчас сильно загружен на работе, как немного освобожусь — добавлю в 3 группу прав «полностью все».

    2. Установите галочку «Упорядочить по видам доступа», все будет.

    Прошу прощения, что так неоперативно ответил(((

    Вопрос к вам: растягиваются формы хорошо, косяков нет?

    Reply
  86. zawal

    (85)

    по 2-му. Все получилось респектую

    по поводу растягивания.

    Нормально работает только в закладке «Назначение и печать» во всех остальных закладках привязка границ не соблюбаются 🙁 ничего не растягивается.

    Reply
  87. Istur

    (86) Странно что на это никто не обратил мое внимание((( Перекачайте пожалуйста и посмотрите, щас будет растягиваться или нет.

    Reply
  88. tarroman

    Нужно было срочно что-то для массового назначения ролей пользователям. Ваша обработка как-раз подошла. Единственное, что не удалось сделать — копировать настройки пользователей (не доп. права, а именно настройки) 🙁

    Как мне кажется, этот кусок тоже нужно заполнять. 🙂

    Reply
  89. Istur

    (88) Ну в принципе да, Вы правы. Просто я назначаю права через профили пользователей, а там настройки пользователей и так уже включены в профиль… Реализую ваше пожелание.

    Reply
  90. fishca

    Большое, даже ОГРОМНОЕ человеческое СПАСИБО! Очень нужная и полезная обработка.

    Reply
  91. SergeyT2006

    А почему группы пользователей не представлены иерархически?

    Reply
  92. Istur

    (91) Потому что по практике очень редко используются иерархия в группах пользователей. Вам критично это или нет? Если да, то сделаю. И напишите конфигурацию и ее версию.

    Reply
  93. SergeyT2006

    (92) Имеются группы пользователей с одинаковым наименованием, но с разными родителями.

    Конфигурация УТ 10.3.7.9

    Reply
  94. SergeyT2006

    В конфигураторе для документа ПланируемоеПоступление установлено интерактивное проведение — на закладке Роли отображается Только просмотр.

    PS А вот если еще и для нескольких ролей права показывал, вот сказка была бы!

    Reply
  95. Mily

    Огромное спасибо автору такой замечательной обработки! Приятно и красиво и вообще здорово! Печать просто сказка!(1)

    Reply
  96. java
    artbear пишет:

    (70) Все просто. Нажимаю Печать, в окне выбора еще раз нажимаю Печать и выдается ошибка

    {ВнешняяОбработка.НастройкаИАнализПравДоступа(778)}: Ошибка при вызове метода контекста (ПолучитьОбщуюФорму): Недопустимое значение параметра (параметр номер ‘1’)

    ФормаПечати = ПолучитьОбщуюФорму(«ПечатьДокументов»,, Новый УникальныйИдентификатор);

    по причине:

    Недопустимое значение параметра (параметр номер ‘1’)

    у меня такая же проблема

    Reply
  97. a31
    athlete пишет:

    athlete 20.08.09 17:19 URL ↓Цитата ↓Ответить

    Большой плюс и респект автору!

    Пожелания рекомендации: 1. Поддержу EugeneK по поводу рисовать +/- разными цветами вместо Да/Нет, А лучше добавить выбор в настройках. 2. Добавить разделители на некоторых страницах, например «Роли», чтобы можно было поднять вверх и сделать шире поле «Метаданные, к которым нет доступа». На мониторах разное разрешение и фиксированный интерфейс не всегда удобно. 3. Если возможно добавить работу с профилями. 4. Не плохо было бы добавить отчеты по Ролям (К каким метаданные роль имеет доступ к каким нет по каждому из метаданных) и По метаданным (Кто может читать, редактировать и тд по каждому из метаданных) 5. В отборе по подсистемам добавить пункт «Без подсистемы» или как то так

    Ответили: (43) [+] User1078; Istur; [−]

    Спасибо автору большущее, сейчас буду тестить на УПП.

    Reply
  98. a31
    a31 пишет:

    Цитата athlete пишет: athlete 20.08.09 17:19 URL ↓Цитата ↓Ответить

    Большой плюс и респект автору!

    Пожелания рекомендации: 1. Поддержу EugeneK по поводу рисовать +/- разными цветами вместо Да/Нет, А лучше добавить выбор в настройках. 2. Добавить разделители на некоторых страницах, например «Роли», чтобы можно было поднять вверх и сделать шире поле «Метаданные, к которым нет доступа». На мониторах разное разрешение и фиксированный интерфейс не всегда удобно. 3. Если возможно добавить работу с профилями. 4. Не плохо было бы добавить отчеты по Ролям (К каким метаданные роль имеет доступ к каким нет по каждому из метаданных) и По метаданным (Кто может читать, редактировать и тд по каждому из метаданных) 5. В отборе по подсистемам добавить пункт «Без подсистемы» или как то так

    Ответили: (43) [+] User1078; Istur; [−]

    Спасибо автору большущее, сейчас буду тестить на УПП.

    ОО, чуть перешел по закладкам обработки и вылет всей 1С, почему, автор, доработайте, плиз, чтобы на УПП 8.2.1.3.7.1 работала!

    Спасибо!

    Reply
  99. nookie

    (3) а обработка удивительно хороша!

    Планируется ли такое для ERP и УТ 11 ?

    Reply

Leave a Comment

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