Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: УстановитьПривилегированность() в КлиентСерверном режиме
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
ignsv
Доброго дня. УТП 1.2.7.4, док Расходная накладная

Стала необходимость дать пользователю право редактировать: серию, номер, дату доверенности. При этом у него нет доступа редактировать проведенные ранее документы.
Права изменять нельзя. НО надо както менять эти реквизиты и записывать документ.

Начал все реализовывать через УстановитьПривилегированность() , потом меняю реквизиты и записую.

В файловом режиме все норм работает:
Процедура ДействияФормыИгн(Кнопка)
        ТекСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;        
    ДокОб = ТекСтрока.ПолучитьОбъект();
    УстановитьПривилегированныйРежим(Истина);
    ВозвращаемоеЗначение = ДокОб.ПолучитьФорму("Форма").ОткрытьМодально();
    Если ВозвращаемоеЗначение = Неопределено Тогда
    Иначе
        ДокОб.ДоверенностьСерия  = ВозвращаемоеЗначение[0];
        ДокОб.ДоверенностьНомер  = ВозвращаемоеЗначение[1];
        ДокОб.ДоверенностьДата   = ВозвращаемоеЗначение[2];
        ДокОб.ОтпускРазрешил      = ВозвращаемоеЗначение[3];
        ДокОб.ОтпускПроизвел     = ВозвращаемоеЗначение[4];
        
        ДокОб.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
    УстановитьПривилегированныйРежим(Ложь);
    
КонецПроцедуры


Дальше начал курить СП и УстановитьПривилегированныйРежим().

Теперь нужно на Серверный режим:

И вот у меня проблемы и начались ))


Пробовал:
Процедура ДействияФормыИгн(Кнопка)
ТекСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;        
Довереность(ТекСтрока );
КонецПроцедуры

&НаСервере
Процедура Довереность()
      ДокОб = ТекСтрока.ПолучитьОбъект();
    УстановитьПривилегированныйРежим(Истина);
    ВозвращаемоеЗначение = ДокОб.ПолучитьФорму("Форма").ОткрытьМодально();
    Если ВозвращаемоеЗначение = Неопределено Тогда
    Иначе
        ДокОб.ДоверенностьСерия  = ВозвращаемоеЗначение[0];
        ДокОб.ДоверенностьНомер  = ВозвращаемоеЗначение[1];
        ДокОб.ДоверенностьДата   = ВозвращаемоеЗначение[2];
        ДокОб.ОтпускРазрешил      = ВозвращаемоеЗначение[3];
        ДокОб.ОтпускПроизвел     = ВозвращаемоеЗначение[4];
        
        ДокОб.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
    УстановитьПривилегированныйРежим(Ложь);


и в модуль общий выносил ( с флагами сервер, клиент, вызов сервера)
И сразу ДействияФормыИгн(Кнопка) "НаСервере" пробовал запускать
ничего не выходит, 1с как не видет всего что "&НаСервере"

Опыта работы с Серверным режимом вообще не имеется вот и прошу помощи.

Vofka
Цитата(ignsv @ 04.07.12, 13:10) необходимо зарегистрироваться для просмотра ссылки
И вот у меня проблемы и начались

Нам стелепатировать какие?

Цитата(ignsv @ 04.07.12, 13:10) необходимо зарегистрироваться для просмотра ссылки
Опыта работы с Серверным режимом вообще не имеется вот и прошу помощи.

Если это обычное приложение - то платформа сама заботится о клиент-серверном взаимодействии и не надо для процедур указывать директивы компиляции.
ignsv
Цитата(Vofka @ 04.07.12, 13:19) необходимо зарегистрироваться для просмотра ссылки
Если это обычное приложение - то платформа сама заботится о клиент-серверном взаимодействии и не надо для процедур указывать директивы компиляции.


уже проверял: Клиент серверный режим, Обычное Приложение

не указывая где выполнять выполняетсья на Клиенте ( и соответственно УстановитьПривилегированныйРежим(Истина) = Ложь) как в принципе в СП и описано.

а проблемы в том что процедуры, которые идут после &Насервере не обнаруживает - "Не обнаружена процедура Довереность()"
logist
Цитата(ignsv @ 04.07.12, 13:32) необходимо зарегистрироваться для просмотра ссылки
Обычное Приложение

Цитата(ignsv @ 04.07.12, 13:32) необходимо зарегистрироваться для просмотра ссылки
проблемы в том что процедуры, которые идут после &Насервере не обнаруживает - "Не обнаружена процедура Довереность()"

НЕ используйте в обычном приложении директивы для управляемого приложения.

ignsv
Цитата(logist @ 04.07.12, 13:37) необходимо зарегистрироваться для просмотра ссылки
НЕ используйте в обычном приложении директивы для управляемого приложения.


тоесть в Серверном режим, обычном приложении УстановитьПривилегированныйРежим не удастся ?
logist
тоесть читайте что такое директивы компиляции
ignsv
Сдедал так:

в форме списка
Процедура ДействияФормыИгн(Кнопка)
    ТекСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;
    ВозвращаемоеЗначение = ТекСтрока.ПолучитьФорму("Форма").ОткрытьМодально();
    Если ВозвращаемоеЗначение = Неопределено Тогда
    Иначе                
        РН_доверенность_.Номер2(ТекСтрока,ВозвращаемоеЗначение);
    КонецЕсли;
КонецПроцедуры


потом добавил общий модуль с флагом " Привилегированность"
в нем:
      Процедура Номер2(ТекСтрока,ВозвращаемоеЗначение) Экспорт
     ДокОб = ТекСтрока.ПолучитьОбъект();
        
    ДокОб.ДоверенностьСерия  = ВозвращаемоеЗначение[0];
    ДокОб.ДоверенностьНомер  = ВозвращаемоеЗначение[1];
    ДокОб.ДоверенностьДата   = ВозвращаемоеЗначение[2];
    ДокОб.ОтпускРазрешил      = ВозвращаемоеЗначение[3];
    ДокОб.ОтпускПроизвел     = ВозвращаемоеЗначение[4];
    ДокОб.Записать(РежимЗаписиДокумента.Запись);
    
      КонецПроцедуры


прошли изменения в документ для пользователя без прав.
будем тестировать...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.