• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Rintus

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

puh14

Справочник.Полномочия пользователей - изменять документы задним числом - снять галку

не - наврал.

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

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

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

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

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

Возврат 1;

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

как видно из функции типовой запрет повешен на константу ДатаЗапретРедактирования

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!