8.х УТ Определение от кого проводится документ

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем dimon_k, 20 фев 2014.

  1. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    1С:Предприятие 8.2 (8.2.19.83)
    Управление торговлей, редакция 11.1 (11.1.2.28)

    Есть подписка на событие "ПередЗаписью" для определения правомерности данного изменения документа (документ может менять только владелец и админ). Код выглядит так:
    Код:
    Пользователь = ПараметрыСеанса.ТекущийПользователь;
    Если Пользователь.Наименование = "Администратор" Тогда //Этим можно все
         Отказ = Ложь;
       Иначе
    Дальше идет проверка ....
    Есть регламентные задания (предопределенные) в которых поле "Имя пользователя пустое" и они из-за этой проверки не могут записывать документы.
    Как мне сделать в коде проверку на такие регламентные задания?
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Не легче было создать определенную роль и проверять на нее через РольДоступна("ИмяРоли"), указать эту роль админу, а так же пользователю от чьего имени запускаются рег задания. Просто потом еще появиться что кроме Админа еще и директор может и глав бух и тд. - будете условия в коде каждый раз переписывать
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Драко дело говорит!!!
  4. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    Вопрос не про то как проверять кто может а кто нет менять документы (это работает и работает нормально, и при чем здесь роль??? каждый созданный документ имеет менеджера его создавшего и менять его может либо он, либо начальник его отдела, ну и админ ессно). Вопрос как в начале того кода однозначно определить что документ меняет фоновое задание (без разницы от какого пользователя оно) и прекратить проверку. Дело в том что предопределенные фоновые задания идут без пользователя ... вот строчка лога
    [​IMG]
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Не знаю тонкости регламентных заданий, но может все дело как раз в предопределенных заданиях ? Что вы пытаетесь сделать с их помощью ?
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Фоновые задания - это одно, а регламентированные это другое. Регламентированные задания в любом случае запускаются от какого либо пользователя.
    А Ваша задача решается без дописок через распределения прав доступ ана уровне записей. Контрагентам назначаются группы достпупа и каждому пользователю присваивается соответвующая группа и он ее только может редактировать. Админу и начальнуку отдела доступ ко всем группам или не ограничивать им права.
    И дописывать ничего не надо.

    Либо уже тогда эта проверка делается при открытии формы и доступность на форму ставиться ЛОЖЬ
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Драко, ну чел хочет велик с квадратными колесами, чтож тут поделать...
  8. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    При чем здесь группы доступа??? Распишу подробнее:
    1) Менеджер по продажам отдела расходных материалов может создать "Заказ клиента" для любого контрагента с любой номенклатурой с любого склада.
    2) С него он может сделать счет, РТУ и счет-фактуру (только Расходный складской ордер не может).
    3) Этот заказ (и все доки от него) должен иметь право изменять только тот кто его создал (или начальник его отдела).
    Как такое разрулить через права на уровне записей без танцев с бубном???

    з.ы. вот что содержится в переменной ПараметрыСеанса.ТекущийПользователь <Объект не найден> (73:88fdf0826edc46f04494ad84aa00559e)
    при работе фонового задания у которого не задан пользователь...

    з.ы.з.зы Да и еще при изменении своего документа менеджер не должен иметь право менять менеджера или отдел, а его начальник может менять менеджера но только в пределах своего отдела ...
    Последнее редактирование: 21 фев 2014
  9. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Да тут и не нужен бубен, почитайте про РЛС. И послушайте советы Драко. Поверьте, не вы первый, и не вы последний, кто с такими ситуациями сталкивался.
  10. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    Читал ... Так и не понял как такое через него разрулить (да и нагрузка на сервер повышается значительно если включить контроль на уровне записей). Да и работает все, вопрос был как определить что документ меняет фоновое задание?
  11. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Никак.
    Или пишите так, чтоб это фоновое задание писало что-то в комментарий (или любой др. реквизит)
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну при такой постановке задачи, тогда предлагаю Вам Вариант который писал
    Вы при открытии формы проверяете текущего пользователя и доступность роли. (доступность роли облегчит Впам задачу т.к вдруг потом появиться что еще глав бух может и ген дир, а не только начальник ОП) если не проходит - то доступност формы - Ложь и пользователь не сможет отредактировать н аней ничего. А проводить может кто угодно.
  13. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    А можно будет в случае "доступность формы -Ложь" печатать документы?
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Чтобы напечатать доки, не обязательно получать объект, достаточно ссылки.
  15. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    Я имею ввиду что не владелец документа открывает его и штатными средствами через меню печатает доки ... и еще в предложенном варианте не получится реализовать невозможность смены менеджера, и подразделения при создании нового документа.
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    У других пользователей нет. У того кто создал - да. это же его документ. Нет конечно можете ограничивать доступность отдельных элементов на форме - этого никто не запрещает. Командные панели , ТЧ.
    В любом случае любой пользовтаель сможет распечатать его через групповую обработку, если уж потребуется.
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Не владельцу можно запретить открытие. Вы уж извините, но мы походу на разных языках с вами общаемся.
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    А насчет смены менеджера не понял. Ну я же думаю что вы поступите по умному и эту проверку запихнете в условие "Если Не ЭтоНовый() Тогда" что бы проверял только уже созданые и записанные документы
  19. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Печатать из формы смогут только владельцы, админ и нач отдела. Вы изначально просто поставил задачу что документ создал менеджер и только он с ним работатет. Но как сказал в любом случае через групповую обработку может любой распечатать
  20. TopicStarter Overlay
    dimon_k
    Offline

    dimon_k Опытный в 1С Команда форума

    Регистрация:
    17 янв 2011
    Сообщения:
    259
    Симпатии:
    17
    Баллы:
    29
    Ну я просто не стал расписывать все Тех.Зад. которое было спущено руководством ... Все равно мы начали не с того ... Изначально вопрос стоял как определить что документ меняет фоновое задание... На срине в поле "Приложение" стоит значение "Фоновое задание" как мне получить это значение из кода проверки?

Поделиться этой страницей