![]() |
![]() |
![]() |
|
Как провести документ, если нет прав? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
06.08.13
✎
10:54
|
Попробовал через привилегированный модуль.
Упирается в процедуру "ПередЗаписью", где есть проверка на полные права. Попробовал обойти процедура "ПередЗаписью" выставив ОбменДанными.Загрузка = Истина А 1С-ка в таком режиме проводить не хочет. Что еще можно придумать? |
|||
1
Волшебник
модератор
06.08.13
✎
10:54
|
Дать права
|
|||
2
Shurjk2
06.08.13
✎
10:55
|
А если права дать?
|
|||
3
Shurjk2
06.08.13
✎
10:55
|
Либо проводить не из формы документа, а из обработки в привелигированном модуле.
|
|||
4
Shurjk2
06.08.13
✎
10:56
|
Кстати подозреваю что проверка в процедуре перед записью, это какая то ваша личная фишка.
|
|||
5
Галахад
гуру
06.08.13
✎
10:59
|
(1) Программно это возможно?
(3) Гм. Я вроде так и делаю. (4) Ну да. Т.е. не лично моя, но не типовая. |
|||
6
Fish
гуру
06.08.13
✎
10:59
|
(4) Похоже. Это наверное, новый вид извращения: сначала сделать проверку на полные права, а потом пытаться это обойти :)
|
|||
7
Godofsin
06.08.13
✎
11:00
|
(6) Мы не ищем легких путей! (с)
|
|||
8
Fish
гуру
06.08.13
✎
11:00
|
(5) Может, проще проверку изменить?
|
|||
9
Shurjk2
06.08.13
✎
11:00
|
(5) Тогда с ней надо разбираться. А вообще нехорошо так делать.
|
|||
10
Shurjk2
06.08.13
✎
11:01
|
Кстати рекомендую все проверки, кроме проверки остатков, проводить в модуле формы, а не в модуле документа.
|
|||
11
Fish
гуру
06.08.13
✎
11:02
|
(10) Почему?
|
|||
12
Defender aka LINN
06.08.13
✎
11:03
|
(10) Гени(т)ально
|
|||
13
Rovan
гуру
06.08.13
✎
11:03
|
(10) тогда девочка-бухша запускает "Групповая обработка документов" и ... вуаля !
|
|||
14
EugeniaK
06.08.13
✎
11:04
|
(5) Можно програмно присвоить роль "Полные права", потом програмно убрать.
|
|||
15
Shurjk2
06.08.13
✎
11:05
|
(13) Вуаля будет когда она запустит а у нее ничего не проведеться, ибо какой то реквизит оказался незаполненный. При чем неперепроведеться не один документ а все.
|
|||
16
Shurjk2
06.08.13
✎
11:05
|
(11) Это защита от неправильных действий пользователя, групповое перепроведение и прочее это административная функция.
|
|||
17
Fish
гуру
06.08.13
✎
11:06
|
(16) А про ПКМ - Провести в списке документов ты не подумал? :)
|
|||
18
Maxus43
06.08.13
✎
11:06
|
>>Попробовал обойти процедура "ПередЗаписью" выставив ОбменДанными.Загрузка = Истина
>>А 1С-ка в таком режиме проводить не хочет. чойто она не хочет? по какой причине? |
|||
19
Shurjk2
06.08.13
✎
11:08
|
(17) Чтоб провести там надо сначала записать, если не пройдет эту проверку то документ просто не будет записан.
|
|||
20
Sammo
06.08.13
✎
11:09
|
(18) В этом режиме не работает .Записать(РежимЗаписиДокумента.Проведение).
Однако в большинстве конфигураций можно записать в режиме запись + сформировать движения регистров. |
|||
21
Fish
гуру
06.08.13
✎
11:10
|
(19) Бывают ситуации, когда надо иметь возможность записать документ, даже если там не всё заполнено. А проверки выполняются именно перед проведением.
|
|||
22
Shurjk2
06.08.13
✎
11:11
|
(21) В нормальной системе таких ситуаций не должно быть.
|
|||
23
EugeniaK
06.08.13
✎
11:11
|
(18) Логично. Для этого режим загрузки и предназначен.
Просто записать без обработки. |
|||
24
Галахад
гуру
06.08.13
✎
11:12
|
(8), (9) Гм. Логика там такая:
Проверка 1. Если НЕ полные права и не сегодня Отказ = Истина Ну это ладно, можно заменить на запрет неоперативного проведения. Проверка 2. Если НЕ полные права и Реквизит1 = Истина Отказ = Истина. Тут как быть? |
|||
25
Shurjk2
06.08.13
✎
11:12
|
(21) Да и еще нет такого события как ПередПроведением. Во время проведения проверки только на учетные данные (остатки и т.д.)
|
|||
26
Defender aka LINN
06.08.13
✎
11:12
|
(14) А еще можно программно джигу-дрыгу станцевать. Эффект примерно тот же будет.
|
|||
27
Галахад
гуру
06.08.13
✎
11:13
|
(14) КАК?!
|
|||
28
Defender aka LINN
06.08.13
✎
11:13
|
(24) Нет ножек - нет мультиков ©
|
|||
29
Галахад
гуру
06.08.13
✎
11:14
|
(18) Текст ошибки:
{ОбщийМодуль.ПолныеПрава(1473)}: Ошибка при вызове метода контекста (Записать): Действие не может выполняться в режиме загрузки данных Объект.Записать(РежимЗаписиДокумента.Проведение); по причине: Действие не может выполняться в режиме загрузки данных |
|||
30
Fish
гуру
06.08.13
✎
11:15
|
(22) Простой пример: один пользователь имеет право только вносить номенклатуру, а другой - проставлять цены.
|
|||
31
Sammo
06.08.13
✎
11:15
|
(10) Не вполне согласен. Например, проверка даты документа на дату запрета делать в форме не очень хорошо, подписка правильнее, имхо.
Так что можно делать в модуле, но лучше предусматривать ОбменДанными.Загрузка. Имхо, в режиме загрузке все проверки должна делать подсистема загрузки. |
|||
32
Shurjk2
06.08.13
✎
11:15
|
(30) Решается введением этапов документа, но обычно такое ведет к бардаку.
|
|||
33
EugeniaK
06.08.13
✎
11:17
|
(22) Запись без проверок до проведения абсолютно естественная ситуация.
Один документ могут вводить последовательно несколько человек. Проводит только последний. Большой документ может вводиться достаточно долго. Оператор может банально отойти на перерыв, сохранив промежуточный результат ввода. |
|||
34
Fish
гуру
06.08.13
✎
11:17
|
(32) Это теоретический упрощённый пример. Но тем не менее такое достаточно часто встречается.
|
|||
35
Shurjk2
06.08.13
✎
11:19
|
(34) Видел я кучу таких примеров и реализаций кучу видел причем большинство кривые, из всего увиденного я четко знаю что когда у документа куча авторов это нефига не от большого ума.
|
|||
36
Fish
гуру
06.08.13
✎
11:20
|
(32) А вот тебе другой типовой пример: ордерный склад. Менеджер создает документ реализации, но провести его не может, т.к. он проводится только из РСО, который вводит кладовщик.
|
|||
37
Shurjk2
06.08.13
✎
11:20
|
(33) Пусть доведет строку нормально в ТЧ и идет на перерыв.
|
|||
38
Shurjk2
06.08.13
✎
11:21
|
(36) Когда один документ проводиться из другого - это полный писец, таких интеграторов которые такое делают надо вешать на столбах чтоб другим неповадно было.
|
|||
39
Fish
гуру
06.08.13
✎
11:22
|
(38) Никогда не встречал ордерных складов? Вопросов больше не имею.
|
|||
40
Shurjk2
06.08.13
✎
11:22
|
+(38) Единственное исключение это возможно с/ф но там один документ как бы является продолжением другого. Да и автор у них один.
|
|||
41
Shurjk2
06.08.13
✎
11:23
|
(39) Встречал:) но ордерный склад это впервую очередь четкие бизнесс процессы если их нет, то получается цирк с главным клоуном программистом.
|
|||
42
Fish
гуру
06.08.13
✎
11:28
|
(41) типовые пишут клоуны?
|
|||
43
Shurjk2
06.08.13
✎
11:28
|
(42) В типовых нет такого чтоб ордер проводил реализацию, там сначала оформляется накладная потом уже выдается товар ордером, каждый документ делает свои проводки.
|
|||
44
Леха Дум
06.08.13
✎
11:33
|
(0) документ просто записывать, движения по документу ручками создавать
|
|||
45
Fish
гуру
06.08.13
✎
11:34
|
(43) Насчёт типовых от 1С, я конечно немного слукавил, но именно такое решение я встречал у Раруса :)
|
|||
46
Леха Дум
06.08.13
✎
11:34
|
+(44) ессно с "ОбменДанными.Загрузка = Истина"
|
|||
47
Shurjk2
06.08.13
✎
11:35
|
(45) С Рарусом не имел дело, но наслышан что у них много корявых решений.
|
|||
48
Галахад
гуру
06.08.13
✎
11:36
|
(44) Это как? Логику "ОбработкиПроведения" переписать?
|
|||
49
Sammo
06.08.13
✎
11:38
|
(48) Часто в модуле документа есть функция наподобие СформироватьДвиженияРегистров.
Вызывается из ОбработкаПроведения. Ее и вызывай. |
|||
50
Леха Дум
06.08.13
✎
11:39
|
(48) это можно сделать разово, но системно - нужно логику работы с документами пересматривать.
|
|||
51
Галахад
гуру
06.08.13
✎
11:51
|
(49) Спасибо.
(50) Понятно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |