Как запретить проводки прошедшей датой?

  • Автор темы Rintus
  • Дата начала
R

Rintus

#1
1С торговля+склад 7.7. Как сделать так, чтобы администратор мог проводить продажи любой датой, а менеджер только текущей?
 

puh14

Well-known member
11.07.2008
1 412
0
#2
Справочник.Полномочия пользователей - изменять документы задним числом - снять галку

не - наврал.

Функция глПроверкаРазрешенияРедактирования(Конт) Экспорт

Конт.ПриЗаписиПерепроводить(1);

Если Конт.Выбран() > 0 Тогда
Если (Конт.ДатаДок<=Константа.ДатаЗапретаРедактирования)
И (Конт.Форма.ТолькоПросмотр() = 0) Тогда
Конт.Форма.ТолькоПросмотр(1);
Предупреждение("Разрешен только просмотр документа!",4);
Возврат 0;
КонецЕсли;
КонецЕсли;

// Если нет системного права на корректировку документа, то предупредим об этом
Если ПравоДоступа("Корректировка", "Документ." + Конт.Вид() ) = 0 Тогда
Предупреждение("Разрешен только просмотр документа!",4);
Возврат 0;
КонецЕсли;

// Если нет полномочий (заданных в справочнике) редактировать цены,
// то закроем доступ к соответствующим колонкам
Если глПолучитьПолномочие("РазрешитьРедактированиеЦенВдокументах") = 0 Тогда
Если (глЕстьРеквизитМнЧ("Цена", Конт.Вид()) = 1)
и (глЕстьРеквизитМнЧ("Номенклатура", Конт.Вид()) = 1)
Тогда
Конт.Форма.Цена.Доступность(0);
// документы, в которых есть разные суммы, но нет цены
// (например, запись книги покупок и т.п.) не трогаем
Если глЕстьРеквизитМнЧ("Сумма", Конт.Вид()) = 1 Тогда
Конт.Форма.Сумма.Доступность(0);
КонецЕсли;
Если глЕстьРеквизитМнЧ("СуммаНДС",Конт.Вид()) = 1 Тогда
Конт.Форма.СуммаНДС.Доступность(0);
КонецЕсли;
Если глЕстьРеквизитМнЧ("СуммаНП", Конт.Вид()) = 1 Тогда
Конт.Форма.СуммаНП.Доступность(0);
КонецЕсли;
КонецЕсли;
КонецЕсли;

Возврат 1;

КонецФункции //глПроверкаРазрешенияРедактирования()
как видно из функции типовой запрет повешен на константу ДатаЗапретРедактирования

Можешь переделать чтобы запрет брался из справочника ПолномочияПользователей.

кстати - это дело не на проведение, или тем паче создание нового, а на изменение существующего.

для всего прочего надо лезть в модули проведения документов и вешать некую самописную фунцию, по значению которой будет производится запрет проведения.