Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 12:37

Отдельный пользователь (курсант)

Автор AlexKag, 10 апр 2013, 12:36

0 Пользователей и 1 гость просматривают эту тему.

AlexKag

Добрый день, уважаемые. Скажите пожалуйста как реализовать следующую задачу. Есть пользователь - курсант (по типу это как просто учащийся), так вот, я создаю отдельного пользователя Курсант (соответственно пароль и все дела), он входит в систему и видит только объект "Заявление" (это документ), видимость других объектов я закрываю. Скажите как сделать так, чтобы этот пользователь мог создавать только один раз документ "Заявление", то есть, чтобы он там не насоздавал лишнего, а только одно заявление на себя? Как это сделать? Может как-то, вроде провел документ и закрываем кнопку "Создать", скажите как лучше?

Klyacksa

Один раз за все время? Или один раз за вход? Или один документ в день?
Логичнее всего контролировать один документ в день/неделю/месяц от одного Курсанта. При записи документа проверяем, если на сегодня уже есть док от этого товарища - то отказываем в записи/проведении. Конечно, для этого у Заявления должно быть поле с самим Курсантом (как например, Автор, Курсант, Ответственный, Заявитель и т.д.)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

AlexKag

Да, само собой разумеется, ответственный там есть. Большое спасибо за идею, скажите, а как это сделать, чтобы допустим вот раз в день он только мог создать?? Просто раньше с такой задачей никогда не сталкивался?

SlazZy

Цитата: AlexKag от 10 апр 2013, 12:57
Да, само собой разумеется, ответственный там есть. Большое спасибо за идею, скажите, а как это сделать, чтобы допустим вот раз в день он только мог создать?? Просто раньше с такой задачей никогда не сталкивался?

Обработка проведения(или при записи, на ваш вкус)

Создаете такой вот запрос

Запрос = Новый Запрос("
|Выбрать Заявление.ссылка
|ИЗ Документ.Заявление Как Заявление
|Где Заявление.Ответственный = &Ответственный И Заявления.Ссылка <> &Ссылка");

Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Отказ = Истина;
КОнецЕсли;


И передаете 2 параметра:
Ответственный - Текущий пользователь. Если у вас конфигурация типовая, то вероятнее всего его можно получить например из параметров сеанса, ну либо другими удобными способами.
Ссылка - ссылка на текущий документ, чтобы при повторном перепроведении в запрос не попадал текущий документ.

Какое выбрать событие дело ваше, но если решите выбрать ПередЗаписью, то учтите, что у новых документов в этот момент ссылки ещё нет, тк он физически не записан в базу.

ЗЫ Соответственно условие на дату можете добавить аналогично в секцию ГДЕ

Klyacksa

Цитата: Klyacksa от 10 апр 2013, 12:41
При записи документа проверяем, если на сегодня уже есть док от этого товарища - то отказываем в записи/проведении.

В модуле объекта ПриЗаписи или в ОбработкеПроведения проверяем запросом, есть ли уже документ на сегодня, не считая текущего. Если есть, то отказываем в записи/проведении - то есть, устанавливаем параметр Отказ=Истина. Ну и говорим пользователю, почему отказано.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

AlexKag

Спасибо Вам всем большое за помощь. Разобрался

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск