Настройки запрета редактирования

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

Страницы: 1
RSS
Настройки запрета редактирования
 
Дата запрета редактирования установлена 01.07.10.
Для пользователя установлен интервал редактирования 5 дней.
Редактирование документов в закрытом периоде для этого пользователя - ЛОЖЬ.

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

Какие права установлены неправильно?
 
Ошибка, что можно отменять проведение закрытого Заказ-наряда, в запрещенном интервале зарегистрировано под номером С0103683.
 
Блин. Нельзя ли как-то оперативно, не дожидаясь след. релиза?
 
Текст изменения опубликуем в этой ветке.
 
Буду благодарен
 
Скажите когда примерно ждать исправления?
 
В общем модуле "орОтраслевыеРешения"
Замените две функции:
орПолучитьДатуЗапретаРедактирования() И
орПолучитьИнтервалЗапретаРедактирования()
на предложенные.


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

Если ТипЗнч(ЭтотОбъект)=Тип("ДокументОбъект.УРВ_ПакетРабот") Тогда
//Пакет работ блокируем в закрытом периоде если только он проведен
Если НЕ ЭтотОбъект.Проведен Тогда
Возврат Дата('00010101');
КонецЕсли;

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

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




Функция орПолучитьИнтервалЗапретаРедактирования(ЭтотОбъект, ТекущееВремя=Неопределено) Экспорт

ТекущееВремя = ?(ТекущееВремя=Неопределено, ТекущаяДата(), ТекущееВремя);
ДатаДокумента = ЭтотОбъект.Дата;
СтруктураИнтервалаЗапрета = Новый Структура("НижнГраница, ВерхГраница", ДатаДокумента, ДатаДокумента);

Если обПраво("РедактированиеДокументовВЗакрытомПериоде",ЭтотОбъект.Права,,ЭтотОбъект) Тогда
Возврат СтруктураИнтервалаЗапрета;
КонецЕсли;

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

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

Если обПраво("РедактироватьВЗаданномИнтервале", ЭтотОбъект.Права,,ЭтотОбъект) Тогда
СтруктураИнтервалаЗапрета.Вставить("НижнГраница", НачалоДня(ТекущееВремя-обПраво("ДнейМеньше",ЭтотОбъект.Права,,ЭтотОбъект)*86400));
СтруктураИнтервалаЗапрета.Вставить("ВерхГраница", КонецДня(ТекущееВремя+обПраво("ДнейБольше",ЭтотОбъект.Права,,ЭтотОбъект)*86400));
КонецЕсли;

Возврат СтруктураИнтервалаЗапрета;

КонецФункции // орПолучитьИнтервалЗапретаРедактирования()
 
При этом все открытые заказ-наряды будут доступны для проведения в периоде установленном в "интервале редактирования"?
Изменено: Михаил Устюгов - 09.11.2010 14:40:32
 
Все не проведенные документы не только Заказ-наряды доступны к проведению, если они конечно только записаны.
 
Спасибо!
 
Ошибка исправлена, исправления появятся в 19 релизе.
 
Может стоит по аналогии с документом УРВ_ПакетРабот не блокировать в закрытом периоде непроведенные (т.е. незакрытые) заказ-наряды?

Код
   ИначеЕсли ТипЗнч(ЭтотОбъект)=Тип("ДокументОбъект.ЗаказНаряд") Тогда
      //ЗаказНаряд блокируем в закрытом периоде если только он проведен (закрыт)
      Если НЕ ЭтотОбъект.Проведен Тогда
         Возврат Дата('00010101');
      КонецЕсли; 


Такая доработка может чем-нибудь навредить?
Еще нашим пользователям очень не нравится, что блокируются счета на оплату - они то ни на что не влияют.
Изменено: Константин Никитюк - 27.05.2011 14:29:28
 
Есть ли возможность, чтобы изменение даты запрета редактирования делал ответственный пользователь (не администратор)?
 
Отдельного права на редактирование в закрытом периоде нет.
Как указано можно прописывать исключения для определенных документов (или отключать контроль для пользователей с ролью администратора например).
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С