|
Вопрос по блокировкам (если можно так назвать) | ☑ | ||
---|---|---|---|---|
0
Cmyk32
12.05.12
✎
12:01
|
Добрый день!
У меня следующая проблема. Есть отчет, который выводит список некоторых документов. В отчете есть колонка "Статус", через которую можно напрямую менять статус документа. Возникает ситуация, когда руководитель формирует отчет и приступает к его обработке, а в этот момент один из менеджеров открывает свой документ, вносит изменения и сохраняет. В результате у руководителя в отчете неактуальная информация. Как запретить редактирование статуса, если документ был изменен? |
|||
1
Cmyk32
12.05.12
✎
12:01
|
Или на крайний вариант заблокировать менеджерам изменение тех документов, которые выведены в отчет руководителю.
|
|||
2
john_ddd
12.05.12
✎
12:05
|
при изменении статуса через отчет переформировывать отчет программно
|
|||
3
Cmyk32
12.05.12
✎
12:06
|
(2) Не хочется всякий раз переформировывать отчет, если статус не менялся.
|
|||
4
Cmyk32
12.05.12
✎
12:06
|
(3) т.е. не статус, а другие данные документа
|
|||
5
Cmyk32
12.05.12
✎
12:08
|
Для (1) "ДЛЯ ИЗМЕНЕНИЯ" не срабатывает
|
|||
6
john_ddd
12.05.12
✎
12:09
|
сделать константу Переформировать отчет...при записи документа делать ее истина
а отчетом проверять ее изредка..и выводить предупреждение переформировать отчет |
|||
7
Нуф-Нуф
12.05.12
✎
12:11
|
БлокировкаДанных (DataLock)
БлокировкаДанных (DataLock) Элементы коллекции: ЭлементБлокировкиДанных Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы блокировки. Возможно обращение к элементам блокировки посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0). Методы: Добавить (Add) Заблокировать (Lock) Количество (Count) Получить (Get) Конструкторы: По умолчанию Описание: Предназначен для явной блокировки данных от чтения или изменения другими сессиями. Доступность: Сервер, толстый клиент, внешнее соединение. Возможен обмен с сервером. Сериализуется. Пример: Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыНаСкладах"); ЭлементБлокировки.УстановитьЗначение("Качество", Справочники.Качество.НайтиПоКоду("1")); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = ДокументОбъект.ВозвратнаяТара; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура"); ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад"); |
|||
8
Нуф-Нуф
12.05.12
✎
12:11
|
блокируй документы которые выведены в отчет
|
|||
9
Cmyk32
12.05.12
✎
12:12
|
(6) Жуткий способ.
(7) То, что нужно! Спасибо тебе)) |
|||
10
john_ddd
12.05.12
✎
12:12
|
а мне нравиться мой извратный способ) чем блокировать доки отчетом...может он там будет целый день сидеть в отчете
|
|||
11
Cmyk32
12.05.12
✎
12:14
|
(10) ))))
|
|||
12
Cmyk32
12.05.12
✎
12:14
|
(8) Если я в СКД отчет формирую?
|
|||
13
unregistered
12.05.12
✎
12:15
|
В данные для отчета брать еще и версию данных.
При изменении документа руководителем сравнивать версию объекта в отчете с версией в базе данных. Если не соответствуют, то выводить сообщение руководителю с предложением переформировать отчет. |
|||
14
Нуф-Нуф
12.05.12
✎
12:15
|
(12) формируй скд программно и перед выводом блокируй документы
|
|||
15
Cmyk32
12.05.12
✎
12:16
|
(13) Мне тоже нравится) но не знаю как не "мазолить" глаза пользователей лишней колонкой с версией?
|
|||
16
ptiz
12.05.12
✎
12:17
|
(0) "через которую можно напрямую менять статус документа."
Так при записи нового статуса проверяй - не был ли он изменен. |
|||
17
Cmyk32
12.05.12
✎
12:19
|
(16) Как проверять?
|
|||
18
john_ddd
12.05.12
✎
12:22
|
(16) хороший способ
|
|||
19
Нуф-Нуф
12.05.12
✎
12:23
|
будь мужиком! заблокируй документы, блеать!
|
|||
20
Cmyk32
12.05.12
✎
12:23
|
(18) Да, но как проверять?
|
|||
21
Cmyk32
12.05.12
✎
12:24
|
(19) Если это мне, то эээ... проблематично и дорого)
|
|||
22
Нуф-Нуф
12.05.12
✎
12:26
|
(21) хм... в чем проблематика и какова цена в твоем понимании? :)
|
|||
23
john_ddd
12.05.12
✎
12:27
|
в процедуре обработкаРасшифровки сравнивай статус в документе и статус в отчете
|
|||
24
Cmyk32
12.05.12
✎
12:30
|
(23) Поняла. Я некорректно поставила задачу.
Статус может менять только руководитель. А менеджер - другие реквизиты документа. При этом при изменении статуса руководителем важно, чтобы в отчете отображались актуальные данные. |
|||
25
john_ddd
12.05.12
✎
12:34
|
(24) тогда способ с константой больше подходит)
|
|||
26
Cmyk32
12.05.12
✎
12:35
|
(25) )))) Не, не уговоришь) Тогда версию данных)
|
|||
27
john_ddd
12.05.12
✎
12:41
|
если версионирование включено то можно)
|
|||
28
ptiz
12.05.12
✎
13:12
|
(26) Да, сравнивай и ругайся "обновите отчет - данные устарели".
|
|||
29
azernot
12.05.12
✎
13:20
|
Заводим что-то типа константы "Отчёт актуален"
После выполнения запроса в отчёте устанавливаем "ОтчетАктуален = Да". При записи документов устанавливаем "ОтчетАктуален = нет". При любых действиях пользователя в отчёте периодически проверяем, актуален ли отчёт, и если нет - предлагаем обновить данные. |
|||
30
azernot
12.05.12
✎
13:21
|
+(29) Тьфу блин, ровно тот же велосипед в (6)...
|
|||
31
john_ddd
12.05.12
✎
13:54
|
ы)
|
|||
32
Cmyk32
12.05.12
✎
13:58
|
(29) Это "некрасивое" решение. Поскольку из 10000 документов только 1 может быть изменен. Не хочется весь отчет заново формировать. При том, что как раз в этом 1 документе статус может и не меняться.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |