|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Недавно столкнулся вот с такой интересной задачей Т.З. Есть отдел связи с клиентами. Занимаются заключением и сопровождением договоров. В отделе несколько групп (возьмём по минимуму - 2) Каждая группа занимается своим направлением. В каждой группе несколько человек (опять возьмём по минимуму - 2 человека: начальник и подчинённый) Начальник должен видеть все договора. Руководитель группы - все договора своей группы (свои и подчинённых). Рядовой сотрудник должен видеть только свои договора. Кроме того сотрудники имеют свойства увольняться, уходить в отпуск, переходить из отдела в отдел, трудоустраиваться. Значит надо предусмотреть изменение "видимости" договоров. Переназначать их от одного сотрудника - другому. Довольно интересная задача. И может быть использована в других задачах, где требуется разграничение доступа не только по видам работ, но и по самим работам. Может у кого есть идеи , как решить эту задачу? Мои скромные рассуждения. Создать таблицу "Видимости" из двух полей код работы и код сотрудника. И заполнять её автоматически при создании работы. Значит надо иметь ещё и таблицу подчинённости сотрудников. При передаче работы от одного сотрудника другому надо убирать старый список видимости и составлять новый. Вот такие идеи. ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 11:59 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Я бы добавил в табличку описания сотрудников поле, где через разделитель = запятую, перечислял бы значения первичного ключа тех сотрудников, чьи договора он должен видеть. (Либо под эти цели описал бы специальную табличку.) Удобно в запросах пользовать в IN(...). Достаточно гибко, чтобы учитывать исключения из правил. Для удобства заполнения значения этого поля можно пользовать TreeView с чекетами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 12:37 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
И кто будет заполнять это поле? Моё предложение с табличкой видимости служит как раз для этого. Можно легко добавлять и удалять сотрудников. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 12:46 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Стандартная ситуация - Отдельный справочник - "подмены". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 12:49 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, а в системе уже есть штатное расписание? При изменении в штатном(переход из отдела в отдел, увольнение) - есть какое-либо событие? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 13:04 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
JossИ кто будет заполнять это поле?... Тот, кто имеет полномочия добавлять/изменять сотрудников. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 13:25 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, Табличка с назначенным сотрудником и датой начала для документа. При необходимости - брать последнюю запись по назначенному. При этом сохраняется история перетекания документа. А иерархию подчиненности сотрудников решается вашим старым способом ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 14:54 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
ОзверинJoss, а в системе уже есть штатное расписание? При изменении в штатном(переход из отдела в отдел, увольнение) - есть какое-либо событие?Штатного расписания нет Задача не задумывалась как всеобъемлющей. Сначала появилось предложение разработать программу "Написание многопользовательской базы данных клиентов и товара. Требования: Выбор платформы согласовывается дополнительно." Ну я начал поиск чего-то подходящего. Наткнулся на это Программа CRM (Система управления взаимоотношениями с клиентами) обсуждения доработка ну и ещё на кое-что. Заказчик исчез, а задумки и наработки остались. Вот и воплощаю потихоньку. Вдруг выльется во что-то удобоваримое. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 18:21 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, тогда, стоит начать со штатного расписания. Дерево: Служба, отдел, сотрудники. У каждого структурного подразделения есть руководитель , который автоматически является руководителем для всех, кто ниже по дереву. Потом добавить роли . Что-нибудь вроде: Читатель , Писатель , Редактор , Менеджер . Читатель - читает все Писатель - создает, читает только свое Редактор - читает все, редактирует все Менеджер - создает, читает все, редактирует все, удаляет все Далее, в каждом направлении на роли назначают сотрудников. Я бы все-таки ввел понятие Контракт в штатное расписание. Контракт - это ФИО+Должность в отделе. А права выдавал бы именно контракту : если контракт закрыт(сотрудник уволен или перешел в другой отдел) - все, прав нет. Что в итоге? Таблицы: 1. Структура компании (тут только структурные подразделения). Иерархическая таблица, где папка - служба, листики - отделы в службе(или в зависимости от глубины структуры компании). 2. Сотрудники - фио, паспортные данные 3. Должности 4. Штатное расписание - таблица, в которой утверждены должности, которые могут быть в конкретном структурном подразделении 5. Контракты - (штатное расписание+фио, по сути связь структурного подразделения, должности и фио) 6. Пользователи системы - логин и все такое(таблица связана с сотрудниками) 7. Роли 8. Права (читать, писать и все такое - отдельная таблица прав на договора) 9. Роли+Права - каждой роли следует назначить необходимые права 10. Направление+Роль+Контракт - в каждом направлении на нужную роль выбрать контракт(или ФИО) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 14:49 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
ОзверинДерево: Служба, отдел, сотрудники. Сотрудники в этом дереве - лишние. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 15:06 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, 1. присвоение каждому сотруднику профиля, причем при переходе на другую должность профиль изменяется (профиль имеет зависимость от должности , подразделения) 2. уровень доступа (если уровень доступа: 1 - только свои документы, 2- документы отдела и пр.) 3. документы имеют также и код профиля создавшего его сотрудника (либо таблица соответствий между профилем и кодом документа) например сотрудник работает менеджером по продажам в отделе капстроительства ему присвоен профиль: 8796-cap-bye уровень доступа 1 здесь 8796- просто код сотрудника cap - код отдела капстроительства bye- должность менеджера по продажам в этом случае, при переводе на должность менеджера по закупкам скажем код профиля будет иметь вид 8796-cap-sell -сотрудник теряет доступ к документам созданным на должности продажника, однако когда он вернется на старую должность и ему снова будет присвоен код профиля 8796-cap-bye - он снова получит доступ к документам созданным в должности продажника, но потеряет доступ к документам созданным в роли закупщика. естественно таблица историй присвоений профиля и пр. должны быть очевидно, когда он станет начальником отдела продаж капстроительства (ему будет присвоен уровень доступа 2), он будет иметь доступ к документам cap-bye и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 15:18 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Вчера пришло письмо от заказчика с кратким ТЗ на двух листах. Похоже они хотят получить полноценную CRM с блоком работы с заказчиками и складом: с учётом поступлений на склад, отгрузкой товара заказчикам, резервированием товаров, отслеживанием оплаты заказов, маржа, стоимость и т.п. Я в шоке. Не то, что бы я такое написать не смогу, но сколько это займёт времени? Про нервы я молчу. Перелопатил в и-нете кучу статей по CRM и понял, что надо отказываться. За разумный срок я это не напишу, а по скольку это для меня будет идти как подработка, то тем более. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:04 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, поставь им битрикс бесплатный на 12 юзаков - пусть пробуют ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:06 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
ОзверинJoss, поставь им битрикс бесплатный на 12 юзаков - пусть пробуют ;) Хотя там про склад и тому подобное - ничего нет, только CRM. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:07 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
JossВчера пришло письмо от заказчика с кратким ТЗ на двух листах. Похоже они хотят получить полноценную CRM с блоком работы с заказчиками и складом: с учётом поступлений на склад, отгрузкой товара заказчикам, резервированием товаров, отслеживанием оплаты заказов, маржа, стоимость и т.п. Я в шоке. Не то, что бы я такое написать не смогу, но сколько это займёт времени? Про нервы я молчу. Перелопатил в и-нете кучу статей по CRM и понял, что надо отказываться. За разумный срок я это не напишу, а по скольку это для меня будет идти как подработка, то тем более. А смысл отказываться ? Обеспечь себя работой на год, возьми подрядчиков, в чем проблема? Объясни заказчику, что готовых решений на рынке под акс нету, но я только вам готов сделать это за год за такие то деньги..дальше - он сам уже решит ;))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 16:09 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
авторНачальник должен видеть все договора. Руководитель группы - все договора своей группы (свои и подчинённых). Рядовой сотрудник должен видеть только свои договора. Кроме того сотрудники имеют свойства увольняться, уходить в отпуск, переходить из отдела в отдел, трудоустраиваться. Значит надо предусмотреть изменение "видимости" договоров. Переназначать их от одного сотрудника - другому. Если важно, чтобы пользователь не ушёл в другой отдел вместе с договорами (например из кул-отдела, обрабатывающего КТшные договора, перевёлся в быдло-отдел, который на мелочёвке), то очевидный способ построить набор Организационных ролей (аналог отделов/групп в оргструктуре ... или саму оргструктуру в виде наглядного дерева), и привязывать права доступа "документ-группа". Тогда хоть всех в отделе уволь, документопоток не остановится - вновь поступающие договора "диспетчер" может назначать на группу, даже если она полностью вакантна. А внутри группы уже в документе назначать отдельными NULL-полями ссылки - сотрудник на кого назначено (куратор договора), сотрудник смотрящий в отделе (менегер отдела) и т.п. Тогда простой расчёт прав видимости по группе (select все договора моей группы), а поверх отобранного допусловиями полюдно "select из отобранного where куратор = я". Тогда если сотрудник переведётся в другой отдел, ему просто автоматом закроются договора прежнего места работы. Специальный "отчёт "диспетчера" позволит вылавливать такие случаи, когда человек перевёлся, но на нём остались висеть недоделанные прежние договора - которые надо перевесить на другого сотрудника в старом отделе. Как и договора, которые не разгребли (забыли). Ессно диспетчер должен будет видеть всё (если не наворачивать более сложную логику с фоновым заданием). Если БД выкинуть на MSSQL, то всю такую логику можно упихать в "динамические" вьюхи с использованием CURRENT_USER(), тогда разграничение прав к документам получится весьма непробиваемым (даже если пользователь окажется продвинутым access-vba и сможет влезть в код клиентской части). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 17:57 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
ОзверинJossВчера пришло письмо от заказчика с кратким ТЗ на двух листах. Похоже они хотят получить полноценную CRM с блоком работы с заказчиками и складом: с учётом поступлений на склад, отгрузкой товара заказчикам, резервированием товаров, отслеживанием оплаты заказов, маржа, стоимость и т.п. Я в шоке. Не то, что бы я такое написать не смогу, но сколько это займёт времени? Про нервы я молчу. Перелопатил в и-нете кучу статей по CRM и понял, что надо отказываться. За разумный срок я это не напишу, а по скольку это для меня будет идти как подработка, то тем более. А смысл отказываться ? Обеспечь себя работой на год, возьми подрядчиков, в чем проблема? Объясни заказчику, что готовых решений на рынке под акс нету, но я только вам готов сделать это за год за такие то деньги..дальше - он сам уже решит ;))) Заказчику рлевать на чем будет сделано. Для него важны сроки и стоимость. А прикиньте, солько надо писать с нуля один только склад. Если даже нормального ТЗ у них нет. Араткое техзадание приложено. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2018, 21:54 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, если нужно быстро, то например эта (присылали рассылку - вебинары и пр.) -взять денег за внедреж, если самому то связка Акс+Аутлук может взлететь - но сроки какие? склад запилить недолго, работа со складом, рассрочки, категории клиентов - это все несложно, очевидно отладка с учетом юзабилити всегда занимает кучу времени. CRM тоже можно сделать поначалу в Аксе. (ну я только его и знаю более - менее) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 11:45 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss, заказчик тз нормальное родить сам не может. Тем более - такой сложности. Да в любом случае ему проще поставить 1с и подстроить свои процессы под это чудо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 11:55 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
ОзверинДа в любом случае ему проще поставить 1с и подстроить свои процессы под это чудо. + Но есть один нюанс - нужно сразу брать на работу толкового 1С ника ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 12:18 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
По сути получается самая обычная система вычисления эффективных прав - есть два объекта, и требуется вычислить право одного на другой (в данном случае - просто установить факт наличия либо отсутствия права). Нужна таблица, которая связывает два объекта наличием права, и таблица объектов. Объектом может быть пользователь, ресурс (конечные объекты) или объект безопасности (промежуточные объекты), а типом права - назначение права или эквивалентность права. Вычисление ресурсов, на которые имеет право пользователь, ведётся просто - берётся пользователь помещается во временную таблицу, получается список объектов, на которые имеет право хотя бы один объект временной таблицы, этот список добавляется во временную таблицу с отсеиванием дублей, процесс повторяется до тех пор, пока на очередной итерации все объекты не будут отсеяны как дубликаты. Остаётся отфильтровать ресурсы. В общем, чем-то аналогично рекурсивному CTE. И соответственно не следует забывать об обслуживании, формально система допускает петли, которые не влияют на результат расчёта эффективных прав, но могут способствовать протечкам. PS. В принципе, такой расчёт может быть ресурсоёмким (зависит от общего количества объектов), а потому очень неплохо кэшировать результаты расчёта. И отслеживать изменение объектов параллельными процессами - если хотя бы один изменился, то кэшированный результат считается невалидным и при следующем запросе считается заново. PPS. Лучше всего такая система была реализована в eDirectory. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 13:12 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Как я собираюсь это делать. Соображения конкретно под эту задачу. Есть таблица работников: Код, ФИО, должность, кому подчиняется Есть таблица работ(заказов или что-то там ещё), название, прочие данные, поле с кодом ответственного работника. Создаю таблицу видимости работы, два поля: код работы и код сотрудника (полей может быть больше, но это два основных. Ну и конечно ключевое) При внесении кода сотрудника в поле "ответственный сотрудник" в таблице работ, он автоматически добавляется в таблицу видимости - код работы, код сотрудника., затем вычисляется код начальника и так же добавляется в таблицу видимости, код работы, код начальника, затем следующий вышестоящий сотрудник. и так до тех пор, пока дело не дойдёт до высшего руководителя. Потом ответственный сотрудник может изменить список допущенных. Добавить или удалить. У меня первоначально выводится список названий работ с ответственными. А вот при попытке влезть внутрь работы и что-то там изменить должна открываться форма для редактирования. И вот перед открытием этой формы и происходит проверка, входит ли сотрудник, который пытается это сделать, в список допущенных При смене ответственного сотрудника, сначала очищается список видимости для этой работы, а потом создаётся заново. Под ту задачу, которую я описал в первом посте - это по-моему оптимальное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 16:28 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
Joss... Есть таблица работников: Код, ФИО, должность, кому подчиняется ... Совместителей как будете описывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 16:32 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
PredeclaredJoss... Есть таблица работников: Код, ФИО, должность, кому подчиняется ... Совместителей как будете описывать? А пока никак. Я не пишу глобальную программу для всего предприятия. Пока только один отдел. В ТЗ слов о совместителях не было. И ходят слухи что у нас совместительство запретят. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 16:58 |
|
Задача "видимости" работ
|
|||
---|---|---|---|
#18+
PredeclaredСовместителей как будете описывать? Да в принципе можно также, вместо поля ответственного - таблица ответственных (по аналогии с таблицей видимости), или вообще обойтись одной таблицей видимости работы, добавив в неё тупо поле Роль . Если добавляется запись с ролью "Исполнитель", то добавляем еще и "Начальников" исполнителя в таблицу видимости. Так гораздо гибче будет со всех сторон... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2018, 17:12 |
|
|
start [/forum/topic.php?fid=45&msg=39727770&tid=1611053]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 181ms |
0 / 0 |