|
Запрет повторно введенного значения на текущий день? | ☑ | ||
---|---|---|---|---|
0
VSpicy
naïve
20.09.19
✎
13:35
|
Добрый день!
В документе "Заявка на ремонт" есть поля: "Автомобиль", "Вид обслуживания" - нужно чтоб пользователи не могли на текущий день выбирать повторно один и тот же "Вид обслуживания" с выбранным автомобилем??? Какое лучше событие использовать и в каком поле: "Автомобиль" и "Вид обслуживания"? Если можно - пример кода. Заранее огромное спасибо! |
|||
1
catena
20.09.19
✎
13:38
|
Писать автомобиль/вид обслуживания в периодический регистр с периодичностью - День. Физически не смогут дважды в день записать.
|
|||
2
unenu
20.09.19
✎
13:39
|
Подписки на событие перед записью достаточно
|
|||
3
VSpicy
naïve
20.09.19
✎
13:46
|
(2) Можно чуть подробнее, код в пример...
|
|||
4
Очевидно
20.09.19
✎
13:48
|
(1) - записать смогут, думаю провести не смогут...
(0) правильный вариант думаю будет - организация проверки этих реквизитов перед записью документа в модуле объекта или - организация этой проверки в событии ОбработкаПроведения в модуле объекта. зависит от того: - Можно ли записывать документы с повторными реквизитами за день ? (Например 100 записанных и только 1 за день может быть проведен) - это тогда в обработку проведения - даже записывать нельзя - тогда "ПередЗаписью". https://its.1c.ru/db/v8std#content:463:hdoc |
|||
5
D_E_S_131
20.09.19
✎
14:07
|
(4) в (1) Не предлагается сделать документом движения в новом регистре. Предлагается просто записать.
|
|||
6
Очевидно
20.09.19
✎
14:24
|
(5) "Предлагается просто записать" :
1. Зачем эту информацию где-то отдельно записывать, если нужна проверка на корректность заполнения документа ? 2. Видимо придётся записывать "При записи" в новый РС, и отдельно удалять запись при удалении / пометке удалении документа. 3. Создали сегодня документ, записали/провели. Через час изменили дату "на вчера", вводят новый ... запись осталась с первичного документа. кто удалять будет ? и отслеживать перемещения между датами (Он же не будет регистратором, т.е. ссылки на документ не будет ?) ... короче городить отдельный РС, только чтоб юзать его проверку уникальности - имхо плохая идея. Для этого есть такие события "Обработка проверки заполнения" и "Перед записью" / "При записи" - для осуществления всех проверок, имеющих отношение к этому объекту (Документу). |
|||
7
VSpicy
naïve
20.09.19
✎
15:21
|
(6) При создании документа у пользователя нет прав на изменение даты документа...
|
|||
8
VSpicy
naïve
20.09.19
✎
15:23
|
(4) Я по сути понял.
Можно пример в виде кода - скажем в событие "Перед записью"? Заранее спасибо! |
|||
9
Очевидно
20.09.19
✎
15:36
|
(8)
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ПараметрыПроверки = Новый Структура(); ПараметрыПроверки.Вставить("Автомобиль",Автомобиль); ПараметрыПроверки.Вставить("ВидОбслуживания",ВидОбслуживания); ПараметрыПроверки.Вставить("Дата",?(ЗначениеЗаполнено(Дата),Дата,НачалоДня(ТекущаяДата())); Если ПроверкаУникальностиДокументовЗаДату(ПараметрыПроверки) Тогда Отказ = Истина; Сообщить("За эту дату уже есть документы на эту машину."); Возврат; КонецЕсли; ... КонецПроцедуры Функция ПроверкаУникальностиДокументовЗаДату(Знач ПараметрыПроверки) Запрос = Новый Запрос(); Запрос.Текст = ""; Запрос.УстановитьПараметр("Автомобиль" ,ПараметрыПроверки.Автомобиль); Запрос.УстановитьПараметр("ВидОбслуживания" ,ПараметрыПроверки.ВидОбслуживания); Запрос.УстановитьПараметр("Дата" ,ПараметрыПроверки.Дата); Возврат Запрос.Выполнить().Пустой(); КонецФункции |
|||
10
VSpicy
naïve
20.09.19
✎
15:37
|
(9) Спасибо огромное!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |