Ошибка при вызове метода контекста (Записать) #487444


#0 by Alpinist22
Пробую изменить данные в закрытом периоде с помощью своей обработки, под учеткой главбуха, под моей естественно работает, но под его выдает ошибку "Ошибка при вызове метода контекста (Записать): Операция не выполнена! Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", вот код:
#1 by asyr83
вопрос то в чем?!
#2 by Alpinist22
Как под учеткой главбуха можно внести изменения в закрытый период, если у него нету прав?
#3 by Loyt
Дай права, сделай, забери права.
#4 by Alpinist22
То есть никакие режимы записи не помогут если нету прав?
#5 by asyr83
сам то подумай, как пользователь сделает то что ему запрещено?
#6 by Mitriy
если период закрыт, то и нефиг там кому-то копаться и дрова ломать...
#7 by Alpinist22
это главбух и есть конкретная задача - это изменение в платежках документов поступления, к примеру если мы сделали предоплату в прошлом месяце, а в этом пришел товар, то в платежке нужно указать документ поступления, но как это сделать если месяц закрыт? Вижу выход, это сделать пользователя с полными правами и интерфейсом в котром есть только платежки.
#8 by Alpinist22
Другого способа нету?
#9 by Serg_1960
Сделать обработку, в которой проверять кто запускает и игнорировать запрет на редактирование.
#10 by Mitriy
это не поможет... там подписка на событие...
#11 by Mitriy
можно поправить подписку на событие, например...
#12 by Alpinist22
попробую, отпишу как будет результат
#13 by Serg_1960
Не согласен :( Любые программные ограничения(!) можно отменять/изменять программно же :)
#14 by Mysteryyy
Менять дату запрета изменения данных
#15 by Mitriy
для этого тоже нужны права...
#16 by Mitriy
+ не говоря уж о том, что если что-нибудь, например, сбойнет, то дата запрета может остаться измененной...
#17 by Alpinist22
Я тоже так думаю, но вот как это сделать? =)
#18 by Mitriy
ты можешь программно отключить подписку на событие?
#19 by Alpinist22
+1 хочется код, если мона конечно =)
#20 by НетуаНадо
открыть период и менять
#21 by ZZBase
Изменять можно но под соответствующими правами. Без открытия периода у тебя ничего не выйдет, т. к. именно для этого они и сделаны. в противном случае весь смысл этого теряется, если все начнут для себя сами открывать период Есть маленький нюанс. Можно конечно написать процедуру в которой открывается период, только эту процедуру запузырить в "привелигированный" модуль. Тогда его можно будет открыть под правами бухгатера.
#22 by Mitriy
и пока документ перепроводится, другие бухи тоже делают, что их душе угодно...
#23 by asyr83
а если только главбуху не закрывать период? если она адекватна, то другие документы трогать не будет в для всех закрытом периоде.
#24 by asyr83
или она за себя не ручается? :)
#25 by Alpinist22
Вот код который блокирует запись в закрытом периоде, если передать перед записью в парметре отказ Истина то запись все равно не происходит: Если принудительно поставить Если Истина Тогда то все нормально записывается, как передать туда Истина перед записью?
#26 by Mitriy
проверяй в начале процедуры после проверки на Отказ, Источник и ПравоДоступа и, соответственно, решай - делать Возврат или продолжать дальше...
#27 by ZZBase
Открывать период нужно не для всех а только для этого пользователя
#28 by Alpinist22
Главбух не хочет в закрытый лезть, вдруг на него что-то найдет и напортачит в закрытом периоде. Изменять типовую БП не хотелось бы как в ...
#29 by Aprobator
дык все равно лезет. Просто с отключением проверки, но сути это не меняет. И, соответственно, последовательность расчетов по приобретению "уедет" на этот документ все равно.
#30 by Serg_1960
(для затравки :)
#31 by Serg_1960
упс :) "Игнорировать" --> "Исключение"
#32 by Alpinist22
Благодарю, работает, но обратно границы не ставит, оставляет на том же месте.
#33 by Mitriy
ну дык верни взад...
#34 by Alpinist22
взад не идет пишет ошибку: "Ошибка при установке значения атрибута контекста (ГраницыЗапретаИзмененияДанных): Несоответствие типов
#35 by Mitriy
ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(СоответствиеГраницЗапрета, Новый СжатиеДанных);
#36 by Alpinist22
тоже самое, теперь еще и не позволяет внести изменения в закрытом периоде
#37 by Alpinist22
минус мне, все работает
#38 by Serg_1960
Как вариант:   ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(Неопределено, Новый СжатиеДанных);
#39 by Serg_1960
Сорри, с утра невнимателен - делаю ошибки.
#40 by Alpinist22
нечего бывает, чего-то у меня снова не работает =)
#41 by Alpinist22
Со второго раза работает =) сейчас разберусь что к чему тут.
#42 by Serg_1960
Эээ... посмотри алгоритм типовой процедуры. Если мне память не изменяет, там задействованы границы по организациям, дата запрета для пользователя и общая дата запрета. Если они тоже мешают - то лучше типовую не использовать.
#43 by Alpinist22
ок гляну, сейчас уехать должен, отпишу готовый результат в понедельник
#44 by Serg_1960
Ок.
#45 by Alpinist22
Подытожу сделанное. Работает только со второго нажатия, не удалось разобраться что в системе БП 1.6 такого удивительного происходит, что со второй попытки работает, мне думается дело в кэше. Вот код:
#46 by acsent
ЗАЧЕМ??? в прошлых платежах проставлять поступления?
#47 by Alpinist22
зачем утруждаться читать весь топик???
#48 by Alpinist22
смотри
#49 by hhhh
как всегда, через задницу, делаете.
#50 by Alpinist22
как всегда... а ты знаешь как сделать не через нее?
#51 by Aprobator
знает, даже не сомневайся. Вам, по всей видимости, нужен контроль - что поступило от контрагента после проплаты. Для этого видимо бух и хочет туда это вписать. Но это не очень удобно. Удобнее как-нибудь сообразить отчет (он даже может уже присутствовать в системе, например, отчет по взаиморасчетам), а не ковырять каждый раз прошлый период. И нагляднее  - можно сразу за период все посмотреть, да и гемора, при правильном подходе, меньше.
#52 by Alpinist22
про этот отчет я вкурсе, он раньше использовался, но по нему не возможно узнать связь между поступлением ТиУ и платежкой, для этого в закрытом периоде нужно править платежки
#53 by Aprobator
че по дате не видно что ли?
#54 by Aprobator
+53 в конфу лезть лениво - неужели там нельзя получить связь по Контрагент - Договор между платежкой и поступлением, ну и далее по дате?
#55 by Alpinist22
Это не уникальное значение будет, дата может совпадать, такой результат наших юзверей не устроит.
#56 by Alpinist22
Н могу понять, почему привелигированный модуль не дает тот же результат что при работе с обработкой под полными правами. К примеру если запускаю обработку следуюшего содержания под полными правами, то запись проходит с первого раза: Та же обработка под обычным пользователем записывает только со второго раза, с первого появляется ошибка. Я перенес в привилегированный модуль процедуру записи объекта: Результат тот же самый, только со второго раза. Может что-то с кэшем происходит когда есть полные права?
#57 by Alpinist22
Может быть кому-то пригодится, решение проблемы пришло само, ниже написанный код работает на SQL версии с первого раза, а в файловом варианте с первого выдается ошибка о недопустимости записи, со второго раза запись происходит. Границы возвращаются на свое место после выполнения.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С