Хочу запретить в правах изменение документов.

1. wwizard 7 01.02.13 19:55 Сейчас в теме
Каждый менеджер создает свои документы по закупкам и по реализации. У каждого в правах стоит:
- Менеджер по закупкам,
- Менеджер по продажам,
- Пользователь.

Менеджеров три Вова, Петя, Дима.
И один администратор: Женя.

Создал менеджер Вова РТиУ, провел его, и все хорошо. Но есть злой менеджер Дима, который зашел в этот документ чтото там изменил, и перепровел его.

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

И также надло чтобы менеджер создав документ, мог его потом открыть отредоктировать и отменить его проведение, НО не мог его перепровести!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dovolsky 02.02.13 09:24 Сейчас в теме
Поменяй начало процедуры "ПриОткрытии" в документе "Реализация"

Процедура ПриОткрытии()

ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

Если ЭтоНовый() Тогда

ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), мВалютаРегламентированногоУчета, "Продажа", ПараметрОбъектКопирования, ПараметрОснование);

Если ЗначениеЗаполнено(ДоговорКонтрагента)
И ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
ОтражатьВНалоговомУчете = Ложь;
КонецЕсли;

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

КонецЕсли;
kazann; wwizard; +2 Ответить
3. dovolsky 02.02.13 09:25 Сейчас в теме
На всякий случай полный текст процедуры

Процедура ПриОткрытии()

ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

Если ЭтоНовый() Тогда

ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"), мВалютаРегламентированногоУчета, "Продажа", ПараметрОбъектКопирования, ПараметрОснование);

Если ЗначениеЗаполнено(ДоговорКонтрагента)
И ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
ОтражатьВНалоговомУчете = Ложь;
КонецЕсли;

Иначе

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

НастройкаПравДоступа.ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапр­ета(ДокументОбъект, ЭтаФорма);

КонецЕсли;

МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю1,ЭлементыФормы.Номер);

РаботаСДиалогами.УправлениеПризнакомОтраженияВРеглУчете(ЭтотОбъект, ЭтаФорма,,,мОтражатьВРегламентированномУчете);

РаботаСДиалогами.ПроверитьВидПоступленияПередачи(ЭтотОбъект, ЭтаФорма);

СтруктураКолонок = Новый Структура();

// Установить колонки, видимостью которых пользователь управлять не может.
СтруктураКолонок.Вставить("Номенклатура");
СтруктураКолонок.Вставить("Количество");
СтруктураКолонок.Вставить("Цена");
СтруктураКолонок.Вставить("Сумма");
СтруктураКолонок.Вставить("СпособСписанияОстаткаТоваров");

// Установить ограничение - изменять видимоть колонок для таличной части
// "Возвратная тара".
ОбработкаТабличныхЧастей.УстановитьИзменятьВидимостьКолонокТабЧасти(мКолонкиВозвратнаяТара, СтруктураКолонок);

// Установить колонки, видимостью которых пользователь управлять не может.
СтруктураКолонок.Вставить("СтавкаНДС");
СтруктураКолонок.Вставить("СуммаНДС");
СтруктураКолонок.Вставить("ЕдиницаИзмерения");
СтруктураКолонок.Вставить("Качество");

ОбработкаТабличныхЧастей.УстановитьИзменятьВидимостьКолонокТабЧасти(мКолонкиТовары, СтруктураКолонок);

// Заполняем подменю, вызываемое нажатием кнопки "Операция" командной панели
// формы, значениями перечисления "Вид операции" данного вида документа.
// В качестве обработки выбора вида операции назначается процедура
// ДействияФормыДействиеУстановитьОперацию модуля формы.
РаботаСДиалогами.УстановитьПодменюВыбораВидаОперации(ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВидаОперации,
ВидОперации.Метаданные().ЗначенияПеречисления,
Новый Действие("ДействияФормыДействиеУстановитьОперацию"));

// Установить печатную форму по умолчанию.
РаботаСДиалогами.УстановитьКнопкуПечати(ЭтотОбъект, ЭтаФорма);

// Вывести в заголовке формы вид операции.
РаботаСДиалогами.УстановитьЗаголовокФормыДокумента(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма);

// Обновить содержание информационных строк.
РаботаСДиалогами.СформироватьНадписьДолга(ДоговорКонтрагента, Сделка, ЭлементыФормы.ИнфНадписьДолга, Ссылка, Истина);
УстановитьЗаголовкиПоДоговору();

// Запомнить текущие значения реквизитов формы.
мТекущаяДатаДокумента = Дата;
мТекущаяВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов;

ПриИзмененииОблагаетсяЕНВД();

// Установить видимость колонок "ХарактеристикаНоменклатуры" и "СерияНоменклатуры"
РаботаСДиалогами.УстановитьВидимостьХарактеристикиНоменклатуры(мКолонкиТовары);
РаботаСДиалогами.УстановитьВидимостьХарактеристикиНоменклатуры(мКолонкиТаблицаАвтоСкидок);
РаботаСДиалогами.УстановитьВидимостьСерииНоменклатуры(мКолонкиТовары);

// Установить видимость закладки "Возвратная тара"
РаботаСДиалогами.УстановитьВидимостьЗакладкиВозвратнаяТара(ЭтаФорма);

РаботаСДиалогами.УстановитьВидимостьОбязательностьСклада(мКолонкиТовары, мКолонкиВозвратнаяТара, ЭлементыФормы.Склад, "Склад", мУказаниеСкладовВТЧ);

//Запомним автоотметку поля шапки Склад
мАвтоОтметкаСклада = ЭлементыФормы.Склад.АвтоОтметкаНезаполненного;

мПоДокументамРасчетов = ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом;

РаботаСДиалогами.УстановитьВидимостьКолонкиЗаказ(ЭлементыФормы, ВидОперации, ДоговорКонтрагента, мКолонкиТовары, мКолонкиВозвратнаяТара, мКолонкиУслуги, мКолонкиДокументы, ЭлементыФормы.Сделка);

// Установить видимость реквизитов и заголовков колонок.
УстановитьВидимость();
УстановитьВидимостьКонтроляВзаиморасчетов();
ЗаполнитьТекстПроСчетФактуру();
УстановитьАвтоотметкуСклада();

ЭлементыФормы.ОсновнаяПанель.Страницы.Услуги.Видимость = (ДоговорКонтрагента.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);

ПриИзмененииВидаСклада();

// установим доступность колонки "Цена" для редактирования
мМожноМенятьЦенуВДокументе = УправлениеДопПравамиПользователей.РазрешитьРедактированиеЦенВДокументах();

мКолонкиТовары.Цена.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиТовары.Сумма.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиТовары.ПроцентСкидкиНаценки.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиТовары.СуммаНДС.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;

мКолонкиВозвратнаяТара.Цена.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиВозвратнаяТара.Сумма.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;

мКолонкиУслуги.Цена.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиУслуги.ПроцентСкидкиНаценки.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиУслуги.Сумма.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;
мКолонкиУслуги.СуммаНДС.ЭлементУправления.ТолькоПросмотр = НЕ мМожноМенятьЦенуВДокументе;

// Установка текущей страницы
Страницы = Новый СписокЗначений;
Страницы.Добавить("Товары", "Товары");
Страницы.Добавить("Тара", "ВозвратнаяТара");
Страницы.Добавить("Услуги", "Услуги");
Страницы.Добавить("ДокументыРасчетовСКонтрагентом", "ДокументыРасчетовСКонтрагентом");
РаботаСДиалогами.УстановкаТекущейСтраницы(ЭтотОбъект, ЭлементыФормы.ОсновнаяПанель, Страницы,);

// Установить активный реквизит.
РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма);

мСклад = Склад;

// Сохраним текущее значение сделки
мСтароеЗначениеСделки = Сделка;
мСтароеЗначениеСклада = Склад;

РаботаСДиалогами.УстановитьДоступностьКнопкиЗаполнитьИзТерминалаСбораДанных(ЭтаФорма, мТерминалы);
РаботаСДиалогами.УстановитьДоступностьМенюПроверить(ЭтаФорма);

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

ЭтаФорма.ПодключитьОбработчикИзмененияДанных("ВидПередачи" , "ОбработчикИзмененияДанных");
ЭтаФорма.ПодключитьОбработчикИзмененияДанных("ОтражатьВУправленческомУчете", "ОбработчикИзмененияДанных");

КонецПроцедуры // ПриОткрытии()
7. AlexO 136 06.02.13 11:00 Сейчас в теме
(3) dovolsky,
есть такая кнопочка при создании сообщения - code (оформление текста в виде кода).
4. wwizard 7 04.02.13 15:44 Сейчас в теме
Я правильно понял, меняю здесь:
5. wwizard 7 04.02.13 16:05 Сейчас в теме
Все работает, супер.

Могу ли я в РКО, ПКО, и ПТиУ вставить этот же код?
6. AlexO 136 06.02.13 10:59 Сейчас в теме
(5) wwizard,
да, формы везде одинаковые, как и команда делать их только для чтения :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот