дата запрета по Документам или по Пользователям
Привет добрые форумчане !!. С вашей помощью многому научился и принимаю в практике, за это вам очень благодарен !!.
У меня вопрос такой, как реализовать дату запрета по определенным документам и по пользователям, чтоб этот запрет можно было использовать при закрытии месяца (Обработка Закрытия месяца) или установив запрет для определенных пользователей ?
Помогите пожалуйста советами или какими нибудь наводками
У меня вопрос такой, как реализовать дату запрета по определенным документам и по пользователям, чтоб этот запрет можно было использовать при закрытии месяца (Обработка Закрытия месяца) или установив запрет для определенных пользователей ?
Помогите пожалуйста советами или какими нибудь наводками
По теме из базы знаний
Найденные решения
(13)
Если хочешь установить одну общую дату запрета, то создай константу
Если Для каждого пользователя\фирмы\вид документа то Регистр или лучше справочник. Добавь реквизиты пользователя\фирмы\вид документа и дату запрета
Создай один общий модуль для проверки :
И в форме документа(Документов где хочешь установить дату) прописать приСоздании:
Если хочешь установить одну общую дату запрета, то создай константу
Если Для каждого пользователя\фирмы\вид документа то Регистр или лучше справочник. Добавь реквизиты пользователя\фирмы\вид документа и дату запрета
Создай один общий модуль для проверки :
///Это на сервере, если что )
Функция ВключенаДатаЗапретаЭкспорт(Ссылка) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Запрет.Ссылка КАК Ссылка,
| Запрет.Пользователь КАК Пользователь,
| Запрет.ДатыЗапрета КАК ДатаЗапрета
|ИЗ
| Справочник.Запрет КАК Запрет
|ГДЕ
| Запрет.Пользователь = &Пользователь ///Тут может быть определенный документ ил организация, по своему настраивай
| И Запрет.ДатаЗапрета =< &ТекущаяДата";
Запрос.УстановитьПараметр("Пользователь", Ссылка);
Запрос.УстановитьПараметр("ТекущаяДата", Конецдня(ТекущаяДата()));
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Если РезультатЗапроса.Следующий() Тогда
Возврат Истина;
Иначе
возврат Ложь;
КонецЕсли;
КонецФункции
ПоказатьИ в форме документа(Документов где хочешь установить дату) прописать приСоздании:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.ссылка.Пустая() Тогда ///Проверяем не новый ли документ
ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Пользователи.ТекущийПользователь());
//ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Организация такая то);
КонецЕсли;
КонецПроцедуры
Показать
(16) Получилось спасибо огромное !
Создал Справочник: "Даты запрета", в нем реквизит: "Дата запрета".
в общем модуле:
и в форме документов которых нужно запрещать редактирование:
Создал Справочник: "Даты запрета", в нем реквизит: "Дата запрета".
в общем модуле:
Функция ВключенаДатаЗапретаЭкспорт(ДатаДокумента) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДатыЗапрета.Ссылка КАК Ссылка,
| ДатыЗапрета.ДатаЗапрета КАК ДатаЗапрета
|ИЗ
| Справочник.ДатыЗапрета КАК ДатыЗапрета
|ГДЕ
| ДатыЗапрета.ДатаЗапрета >= НАЧАЛОПЕРИОДА(&ДатаЗапрета, ДЕНЬ)";
Запрос.УстановитьПараметр("ДатаЗапрета", ДатаДокумента);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Если РезультатЗапроса.Следующий() Тогда
Возврат Истина;
Иначе
возврат Ложь;
КонецЕсли;
КонецФункции
Показатьи в форме документов которых нужно запрещать редактирование:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.ссылка.Пустая() Тогда ///Проверяем не новый ли документ
ЭтаФорма.ТолькоПросмотр = ОбщийМодульДатыЗапрета.ВключенаДатаЗапретаЭкспорт(Объект.Дата);
//ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Организация такая то);
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)Во-первых, неизвестно, какая у вас конфигурация. Предположим БП 3.0. Администрирование->Сервис->Дата запрета изменения данных. Можно для каждого сотрудника выбрать конкретную дату. Дата может быть общая или по разделам. Дата действует на изменение данных. На обработку Закрытие месяца она не действует, но изменения, которые производятся этой обработкой будут выполнены только, если они не запрещены датой запрета редактирования.
в Типовой Конфигурации УНФ 1.6 расмотривал коды, В обработке Закрытие месяца получается параметры сеанса, свойства разделов и установленные даты запретов, исходя чего выполняются дальнейшие действия Либо перенести дату запрета либо установить. Хотел бы узнать основы как организовать это все, какие можете дать советы
(13)
Если хочешь установить одну общую дату запрета, то создай константу
Если Для каждого пользователя\фирмы\вид документа то Регистр или лучше справочник. Добавь реквизиты пользователя\фирмы\вид документа и дату запрета
Создай один общий модуль для проверки :
И в форме документа(Документов где хочешь установить дату) прописать приСоздании:
Если хочешь установить одну общую дату запрета, то создай константу
Если Для каждого пользователя\фирмы\вид документа то Регистр или лучше справочник. Добавь реквизиты пользователя\фирмы\вид документа и дату запрета
Создай один общий модуль для проверки :
///Это на сервере, если что )
Функция ВключенаДатаЗапретаЭкспорт(Ссылка) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Запрет.Ссылка КАК Ссылка,
| Запрет.Пользователь КАК Пользователь,
| Запрет.ДатыЗапрета КАК ДатаЗапрета
|ИЗ
| Справочник.Запрет КАК Запрет
|ГДЕ
| Запрет.Пользователь = &Пользователь ///Тут может быть определенный документ ил организация, по своему настраивай
| И Запрет.ДатаЗапрета =< &ТекущаяДата";
Запрос.УстановитьПараметр("Пользователь", Ссылка);
Запрос.УстановитьПараметр("ТекущаяДата", Конецдня(ТекущаяДата()));
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Если РезультатЗапроса.Следующий() Тогда
Возврат Истина;
Иначе
возврат Ложь;
КонецЕсли;
КонецФункции
ПоказатьИ в форме документа(Документов где хочешь установить дату) прописать приСоздании:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.ссылка.Пустая() Тогда ///Проверяем не новый ли документ
ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Пользователи.ТекущийПользователь());
//ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Организация такая то);
КонецЕсли;
КонецПроцедуры
Показать
(16) Получилось спасибо огромное !
Создал Справочник: "Даты запрета", в нем реквизит: "Дата запрета".
в общем модуле:
и в форме документов которых нужно запрещать редактирование:
Создал Справочник: "Даты запрета", в нем реквизит: "Дата запрета".
в общем модуле:
Функция ВключенаДатаЗапретаЭкспорт(ДатаДокумента) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДатыЗапрета.Ссылка КАК Ссылка,
| ДатыЗапрета.ДатаЗапрета КАК ДатаЗапрета
|ИЗ
| Справочник.ДатыЗапрета КАК ДатыЗапрета
|ГДЕ
| ДатыЗапрета.ДатаЗапрета >= НАЧАЛОПЕРИОДА(&ДатаЗапрета, ДЕНЬ)";
Запрос.УстановитьПараметр("ДатаЗапрета", ДатаДокумента);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Если РезультатЗапроса.Следующий() Тогда
Возврат Истина;
Иначе
возврат Ложь;
КонецЕсли;
КонецФункции
Показатьи в форме документов которых нужно запрещать редактирование:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Объект.ссылка.Пустая() Тогда ///Проверяем не новый ли документ
ЭтаФорма.ТолькоПросмотр = ОбщийМодульДатыЗапрета.ВключенаДатаЗапретаЭкспорт(Объект.Дата);
//ЭтаФорма.Доступность = ОбщийМодульСервер.ВключенаДатаЗапретаЭкспорт(Организация такая то);
КонецЕсли;
КонецПроцедуры
Показать
(16)работает . Но, в общем модуле дает ошибку если сравнить дату запрета с текущей :
Функция ВключенаДатаЗапретаЭкспорт(Ссылка) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДатыЗапрета.Ссылка КАК Ссылка,
| ДатыЗапрета.ОбъектБлокировки КАК ОбъектБлокировки,
| ДатыЗапрета.ДатаЗапрета КАК ДатаЗапрета
|ИЗ
| Справочник.ДатыЗапрета КАК ДатыЗапрета
|ГДЕ
| ДатыЗапрета.ОбъектБлокировки = &ОбъектБлокировки
| И ДатыЗапрета.ДатаЗапрета = < &ТекущаяДата";
Запрос.УстановитьПараметр("ОбъектБлокировки", Ссылка);
Запрос.УстановитьПараметр("ТекущаяДата", Конецдня(ТекущаяДата()));
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Если РезультатЗапроса.Следующий() Тогда
Возврат Истина;
Иначе
возврат Ложь;
КонецЕсли;
КонецФункции
ПоказатьПрикрепленные файлы:
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)