|
v7: Запрет изменения! | ☑ | ||
---|---|---|---|---|
0
Aleksei_Pro
03.10.11
✎
18:37
|
Ребят подскажите (нужен совет), задача такова: нужно запретить какие либо действия с контрагентами определенными, т.е нельзя документы с ними изменять и добавлять! Как это можно организовать?
|
|||
1
poligraf
03.10.11
✎
18:41
|
Поищи, сегодня уже был совет...
1. Открыть конфигуратор 2. Сделать 3. Профит События знаешь как в 7-ке отрабатываются? |
|||
2
Aleksei_Pro
03.10.11
✎
18:43
|
(1) на счет кофигуратора знаю , просто писать в каждом документе и в каждой строке домента, где контрагент используется - эт просто нереально)
|
|||
3
G-Re
03.10.11
✎
18:44
|
(0) Сформулируй вопрос поточней. Потому что (1) - самый точный ответ на (0).
|
|||
4
poligraf
03.10.11
✎
18:48
|
Поиск, поиск и еще раз поиск...
Добавить обработчики событий во все документы вот тебе, недавно обсуждали. может чего и сгодится. больше не спрашивай - там все есть. |
|||
5
Aleksei_Pro
03.10.11
✎
18:49
|
(3) нужно запретить какие либо действия с определенными контрагентами, т.е запретить изменять с ним документы, запретить добавлять документы с этим контрагентом,
|
|||
6
poligraf
03.10.11
✎
18:51
|
(5) нет, ты не так в (2) написал:)
|
|||
7
Aleksei_Pro
03.10.11
✎
18:54
|
(6) нужно дать запрет на контрагентов - чтобы документы с ним могли только смотреть, но факт в том, что есть доки где он используется как реквизит ТЧ документа!
|
|||
8
G-Re
03.10.11
✎
18:54
|
(0)Для начала введи в справочник "Контрагенты" призна кошерности. Потом в глобальном модуле напиши функцию, которая определяет возможность работы, например, сканирования реквизитов через метаданные и если ЗначениеРеквизита.Вид()="Контрагенты" и Контрагент некошерный возврат(0).
Активизировать функцию можно перехватом события или тупо вставив куда-нибудь, например в ПриОткрытии(). |
|||
9
Aleksey
03.10.11
✎
18:56
|
(8) Например операция и Субконто
Или ПКО и субконто Что оно вернет? А если неопределенный вид? Или еще хуже - неопределенный тип Так что проще не заводить такого контрагента, тогда и использовать не будут |
|||
10
poligraf
03.10.11
✎
18:58
|
(9) имелись в виду и уже созданные: "т.е нельзя документы с ними изменять"
это если у меня телепалка не сломалась |
|||
11
Aleksei_Pro
03.10.11
✎
18:58
|
(9) он используется давно, теперь его хотят просто сделать недоступным)
Вот такой код функции примерно: МетаданныеДокумент=Метаданные.Документ(ВыбДокументВид); Для Х=1 По Метаданные.ОбщийРеквизитДокумента() Цикл ИдентификаторРеквизита=Метаданные.ОбщийРеквизитДокумента(Х).Идентификатор; Значение = ДокИсточник.ПолучитьАтрибут(ИдентификаторРеквизита); Для Х=1 По МетаданныеДокумент.РеквизитШапки() Цикл ИдентификаторРеквизита=МетаданныеДокумент.РеквизитШапки(Х).Идентификатор; Значение = ДокИсточник.ПолучитьАтрибут(ИдентификаторРеквизита); ДокИсточник.ВыбратьСтроки(); Пока ДокИсточник.ПолучитьСтроку() = 1 цикл Для Х=1 По МетаданныеДокумент.РеквизитТабличнойЧасти() Цикл ИдентификаторРеквизита=МетаданныеДокумент.РеквизитТабличнойЧасти(Х).Идентификатор; Значение = ДокИсточник.ПолучитьАтрибут(ИдентификаторРеквизита); КонецЦикла; КонецЦикла; |
|||
12
Aleksei_Pro
03.10.11
✎
18:59
|
(10) именоо уже созданные)
|
|||
13
poligraf
03.10.11
✎
18:59
|
В (4) посмотри, там хорошие функции глобальника, куда встроиться можно
|
|||
14
G-Re
03.10.11
✎
19:23
|
(9) Не понял.
Я имел в виду следующее. 1. Через Метаданные найти Ид=Идентификатор реквизита 2. Далее ЗначРекв=ПолучитьАтрибут(Ид); 3. Ну и Если ТипЗначенияСтр(ЗначРекв)="Справочник" Тогда Если ЗначРекв.Вид()="Контрагенты" Тогда Если ЗначРекв.Кошерный=0 Тогда Обрабатывать документ нельзя. КонецЕсли; КонецЕсли; КонецЕсли; |
|||
15
Aleksei_Pro
03.10.11
✎
20:06
|
Эт все хорошо, а как быть с ТЧ документа, если контрагент исользован в ней, ставить запрет на каждый элемент ТЧ документа?
|
|||
16
Злопчинский
03.10.11
✎
21:30
|
(150 нет конечно.. достаточно при формировании такого документа запретить в одной ТЧ мешать кошерных и некошерных...
|
|||
17
smaharbA
03.10.11
✎
21:36
|
а если смешивать ?
|
|||
18
Aleksei_Pro
03.10.11
✎
21:43
|
(16) если документ уже создан с кошерными и не кошерными, нужно запрет поставить на изменение строки ТЧ с данным контрагентом)
|
|||
19
Aleksei_Pro
03.10.11
✎
22:23
|
Ребят а как можно установить запрет редактирования на строку документа?
ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Абонент.Запрет = 1 Тогда ?????? КонецЕсли; КонецЦикла; |
|||
20
Мимохожий Однако
03.10.11
✎
22:26
|
Найди в глобальном модуле примерно такую процедуру глПриЗаписиДокумента() и поставь СтатусВозврата(0); Возврат; при определенных условиях.
|
|||
21
Aleksei_Pro
03.10.11
✎
22:46
|
(20) мне нужно на опрееделенную строку при открытии документа!
|
|||
22
Aleksei_Pro
03.10.11
✎
23:23
|
Почему написал так, а он все равно дает изменить реквизит "Сумма":
Если (Конт.Абонент.Запрет=1) Тогда Предупреждение("Ввод данного абонента запрещен, т.к абонент заблокирован!",4); СтатусВозврата(0); Возврат 0; Иначе КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |