Имя: Пароль:
1C
1С v8
Программный обход даты запрета изменения данных
,
0 Random4Fun
 
11.04.13
15:34
Нужно, чтобы определенный документ изменялся даже, если он подпадает под запрет изменения данных. Как это можно реализовать?
1 palpetrovich
 
11.04.13
15:35
вставить примерно такой код
Если НЕ ТакиЭтотМоментНаступил Тогда
// тут оригиналmysq код на провнрку датызапрета
:)
2 Нуф-Нуф
 
11.04.13
15:42
10000 руб.
3 Random4Fun
 
11.04.13
15:42
(1) Думаю, что должны быть средства для обхода даты запрета.
4 Maxus43
 
11.04.13
15:43
(3) обменданныит.загрузка = истина
5 Maxus43
 
11.04.13
15:43
или под полными правами
6 palpetrovich
 
11.04.13
15:46
(5) если для полных тоже не запрещено
7 Random4Fun
 
11.04.13
15:48
(5) Роль полные права нестандартная в моей базе, не прокатывает.
8 Maxus43
 
11.04.13
15:48
(7) ну допиши механизм до типового вида, чтоб пропускал роль полные права, там обычная проверка на РольДоступна
9 Random4Fun
 
11.04.13
15:50
(8) а поподробнее?
10 Serg_1960
 
11.04.13
15:52
Как вариант, я так думаю, можно временно изменять ПараметрыСеанса.ГраницыЗапретаИзмененияДанных при открытии формы и проведении документа.
11 Random4Fun
 
11.04.13
15:55
(10) У ПараметрыСеанса.ГраницыЗапретаИзмененияДанных тип значения "Хранилище значений". Как туда дату, скажем, 00010101 засунуть?
12 Classic
 
11.04.13
15:57
(11)
Зачем именно такую дату?
Достаточно дату на день меньше, чем дата документа
13 Random4Fun
 
11.04.13
15:58
(4) "обменданными.загрузка = истина" не канает
14 Random4Fun
 
11.04.13
15:58
(12) Ну как засунуть любую дату?
15 samozvanec
 
11.04.13
15:59
(11) вообще лучше как в (8). если так делать лень, открываешь СП и ищешь там, как создать ХранилищеЗначения. если и это лень - тогда

ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(ТвояДата, ТутМожешьЕщеСжатиеДобавить);

1сник должен быть ленивым, но в свою пользу...
16 samozvanec
 
11.04.13
16:00
+(15) это если там в хранилище ожидается именно дата, а не Граница
17 Serg_1960
 
11.04.13
16:01
Можно проще - временно присвоить значение Неопределено.
18 samozvanec
 
11.04.13
16:02
(17) свалится на сравнении, не?
19 Serg_1960
 
11.04.13
16:05
Нет. В типовых для полных прав этот параметр может быть Неопределено. Если дата запрета не действует на полные права.
20 Maxus43
 
11.04.13
16:06
(9) куда ещё подробней то? в процедуре где проверяется дата запрета пишешь Если РольДоступна("МояГлавнаяРоль") Тогда
Возврат;
21 Serg_1960
 
11.04.13
16:08
(20) Это откроет доступ ко всем документам, а автору нужно только к определенному документу. Ну не создавать же отдельную роль для этого случая.
22 BiBijke
 
11.04.13
16:09
(9) + к (20) Процедура находится в подписке ПередЗаписьюДокументаДатаЗапретаРедактирования и ведет в общий модуль НастройкаПравДоступа.ПередЗаписьюДокументаПроверкаДоступностиПериода

(9) туда вписываешь код из (20)
23 BiBijke
 
11.04.13
16:10
+(21), (22) Для определенного вида или документа можно сделать переменную (или параметр сеанса, как угодно) и вставить код типа Если Не ИспользоваМеханизмЗакрытыхПериодов() Тогда возврат Конец
24 Serg_1960
 
11.04.13
16:14
Тьфу на вас :) Вы всё усложняете.

Не надо забывать, однако, что проверка на дату запрета "встроена" не только в форму документа и его проведение, но и в некоторые регистры "непосредственно".
25 sivalor
 
11.04.13
16:14
Через дополнительные свойства это можно реализовать.
Настроить алгоритмы проверки игнорировать даты запрета для документов, которым установлено определенное свойство.
Перед проведением документа устанавливать свойство.
26 samozvanec
 
11.04.13
16:16
(19) я так понял у него не типовая
27 samozvanec
 
11.04.13
16:18
(0)нужно для всех пользователей на один документ? убери проверку и все
28 Serg_1960
 
11.04.13
16:19
(26) Да ладно вам :) Не настолько уж она "не типовая". Иначе бы автор не спрашивал тут, как обойти типовой функционал типовой конфигурации :))
29 samozvanec
 
11.04.13
16:20
+(27) если как в (24), тогда наоборот в проверку напиши, что по такому регистратору не палить
30 samozvanec
 
11.04.13
16:20
(28) ну мало ли) что же у него, только ПолныеПрава нетиповые?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой