|   |   | 
| 
 | 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; Иначе КонецЕсли; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |