8.х Запрет на редактирование документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Hidden-p, 26 авг 2009.

  1. TopicStarter Overlay
    Hidden-p
    Offline

    Hidden-p

    Регистрация:
    26 авг 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    :unsure: Добрый...

    1с8.1 Рарус Управление Торговлей. Возникла необходимость создания кнопки "Фиксация" в документах "Инвентаризация" и "Результат ревизии", при нажатии на кнопку документ дальше НЕЛЬЗЯ было РЕДАКТИРОВАТЬ. Подскажите пожалуйста какой код нужно будет написать, функцию, параметр для этой кнопки и т.д. Плиз очень надо.... У пользователей разные права. Нужна именно кнопка.

    Причем необходимо создать кнопку как в 1с8 Рарурс-Управление Торговлей, так и в 1с7 Штрих-М
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Абсолютно не важно где))
    Кнопка.. и реквизит, назовем его "блокировка возможности редактирования"

    т.е. надо создать реквизит "БлокироватьВозможностьРедактирования" тип Булево

    Нажатие
    БлокироватьВозможностьРедактирования = Истина;

    Затем при открытии

    Код:
    Если БлокироватьВозможностьРедактирования Тогда
    // блокируем
    Для Каждого Реквизит из ЭтотОбъект.Метаданные().Реквизиты Цикл
    
    
    Реквизит.Доступность = не БлокироватьВозможностьРедактирования;
    КонецЦикла;
    
    КонецЕсли;
    
    
    
  3. TopicStarter Overlay
    Hidden-p
    Offline

    Hidden-p

    Регистрация:
    26 авг 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
  4. TopicStarter Overlay
    Hidden-p
    Offline

    Hidden-p

    Регистрация:
    26 авг 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое... Сделал все как написано, но!!!

    При нажатии на кнопку пишет

    Код:
    {Документ.Инвентаризация.Форма.ФормаДокумента111(818)}: Поле объекта не обнаружено (Доступность)
    Реквизит.Доступность = не БлокироватьВозможностьРедактирования;
    
    

    Что в этом реквизите Доступность надо прописать (код)? Тип данных какой?

    Большое спасибо еще раз за помощь.
  5. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    ответил в личку)) .. для остальных...
    Поставить в
    Попытка
    Реквизит.Доступность = не БлокироватьВозможностьРедактирования;
    Исключение
    // у данного рекизита нет поля Доступность пропускаем его
    КонецПопытки;
  6. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Не проще так

    Код:
    Процедура ПриОткрытии()
    
    Если БлокироватьВозможностьРедактирования И НЕ РольДоступна(ПолныеПрава) Тогда
    ЭтаФорма.ТолькоПросмотр = Истина;
    Иначе
    ЭтаФорма.ТолькоПросмотр = Ложь;
    КонецЕсли;
    ..........................
    КонецПроцедуры;
    
    т.е. если редактировать документ запрещено и пользователь не имеет полных прав для работы с документом, тогда документ можно только просматривать.
  7. tugrik
    Offline

    tugrik Опытный в 1С

    Регистрация:
    18 июн 2008
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    угу, а еще неплохо было бы учесть то, что документ, при нажатии кнопки, уже может быть открыт на другом компе. Так что проверку еще и в ПередЗаписью...

    Да и неплохо бы сделать его доступным для редактирования в любом случае какой-нить роли...
  8. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    способов то много ) просто надо попробовать наверное все и выбрать для себя оптимальный)
  9. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Выше было написано в коде, что документ может быть открыт пользователю с полными правами

    Код:
    И НЕ РольДоступна(ПолныеПрава)
    
    Не актуально, так как если документ будет записан другим пользователем, то записи этого документа будут заблокированы. А для пользователя вообще не имеет значение редактируется документ или нет, он его только смотрит.

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