Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:39

Ошибка УТ, редакция 11. Реквизит недоступен для группы

Автор syemye, 19 сен 2022, 10:43

0 Пользователей и 1 гость просматривают эту тему.

LexaK

может это, вы изменяете таб.часть вне проверки на группу, немного подправил ваш код, попробуйте так
Процедура ПередЗаписью(Отказ)
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    МенеджерГВК = ОбщийМодульГВК.МенеджерГВК();   
    МенеджерВеселов= ОбщийМодульГВК.МенеджерВеселов();
    ФизЛицоПользователя = Пользователи.ТекущийПользователь().ФизическоеЛицо;
    МожноРедактировать = Ложь;
    Если Пользователи.ТекущийПользователь() =  МенеджерВеселов Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли Пользователи.ТекущийПользователь() =  МенеджерГВК Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли ОбщийМодульГВК.ЕстьПраво("ПраваОКС") Тогда
        МожноРедактировать = Истина;   
    КонецЕсли;     
    Если МожноРедактировать Тогда 
        Наименование = СокрЛП(Наименование);
        Наименование =Врег(Лев(Наименование,1))+ Сред(Наименование,2);
        Если ЭтоГруппа Тогда
        Иначе
            Если ПустаяСтрока(НаименованиеПолное) ТОгда
                НаименованиеПолное = Наименование;   
            КонецЕсли;
           
            Если ПустаяСтрока(Этажи) и Этаж<>0 Тогда
                Этажи = СокрЛП(Этаж);
            КонецЕсли;
           
        //КонецЕсли;  //Перенесено ниже
        Если ЗначениеЗаполнено(ОбъектЗадания) ТОгда
           
            Отбор = Новый Структура;
            Отбор.Вставить("ОбъектЗадания",ОбъектЗадания);
            Поиск =  ОбъектыЗадания.НайтиСтроки(Отбор); 
            Если Поиск.Количество()= 0 Тогда 
                ОбъектыЗадания.Добавить().ОбъектЗадания = ОбъектЗадания;
               
            КонецЕсли;
           
        КонецЕсли;
        КоличествоОбъектовЗадания = ОбъектыЗадания.Количество();
        КонецЕсли; 
       
    Иначе   
        ТекстСообщения = "Вам запрещено редактирование данные справочника!!!"+Символы.ПС+"Обратитесь к Веселову Сергею Владимировичу!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Наименование", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
    КонецЕсли;   
    Если ЭтоГруппа Тогда
    Иначе 
        Если КоличествоОбъектовЗадания = 0 Тогда
                ТекстСообщения = "Не выбран Объект задания!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ОбъектЗадания", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
         КонецЕсли;
    КонецЕсли;
КонецПроцедуры
если помогло нажмите: Спасибо!

syemye


LexaK

аа, так ругается на реквизит: КоличествоОбъектовЗадания

где-то вы в него пишите,

весь модуль объекта справочника выкладывайте
(вообще даже указывается строка 62, проверьте что бы она была в проверке Если ЭтоГруппа Тогда Иначе (Тут) КонецЕсли )
если помогло нажмите: Спасибо!

syemye

LexaK, #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
// Вставить содержимое обработчика.
Сообщить("ДанныеЗаполнения="+ДанныеЗаполнения);
Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.ГВК_ОбъектыПоТехническомуЗадания") Тогда
ОбъектЗадания = ДанныеЗаполнения;
КонецЕсли;
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("Подразделение") Тогда
Подразделение = ДанныеЗаполнения.Подразделение;
КонецЕсли;
Если ДанныеЗаполнения.Свойство("ОбъектЗадания") Тогда
ОбъектЗадания = ДанныеЗаполнения.ОбъектЗадания;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    МенеджерГВК = ОбщийМодульГВК.МенеджерГВК();   
    МенеджерВеселов= ОбщийМодульГВК.МенеджерВеселов();
    ФизЛицоПользователя = Пользователи.ТекущийПользователь().ФизическоеЛицо;
    МожноРедактировать = Ложь;
    Если Пользователи.ТекущийПользователь() =  МенеджерВеселов Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли Пользователи.ТекущийПользователь() =  МенеджерГВК Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли ОбщийМодульГВК.ЕстьПраво("ПраваОКС") Тогда
        МожноРедактировать = Истина;   
    КонецЕсли;     
    Если МожноРедактировать Тогда 
        Наименование = СокрЛП(Наименование);
        Наименование =Врег(Лев(Наименование,1))+ Сред(Наименование,2);
        Если ЭтоГруппа Тогда
        Иначе
            Если ПустаяСтрока(НаименованиеПолное) ТОгда
                НаименованиеПолное = Наименование;   
            КонецЕсли;
           
            Если ПустаяСтрока(Этажи) и Этаж<>0 Тогда
                Этажи = СокрЛП(Этаж);
            КонецЕсли;
           
        //КонецЕсли;  //Перенесено ниже
            Если ЗначениеЗаполнено(ОбъектЗадания) ТОгда
               
                Отбор = Новый Структура;
                Отбор.Вставить("ОбъектЗадания",ОбъектЗадания);
                Поиск =  ОбъектыЗадания.НайтиСтроки(Отбор); 
                Если Поиск.Количество()= 0 Тогда 
                    ОбъектыЗадания.Добавить().ОбъектЗадания = ОбъектЗадания;
                   
                КонецЕсли;
               
            КонецЕсли;
            КоличествоОбъектовЗадания = ОбъектыЗадания.Количество();
        КонецЕсли; 
       
    Иначе   
        ТекстСообщения = "Вам запрещено редактирование данные справочника!!!"+Символы.ПС+"Обратитесь к Веселову Сергею Владимировичу!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Наименование", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
    КонецЕсли;   
    Если ЭтоГруппа Тогда
    Иначе 
        Если КоличествоОбъектовЗадания = 0 Тогда
                ТекстСообщения = "Не выбран Объект задания!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ОбъектЗадания", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
         КонецЕсли;
    КонецЕсли;
КонецПроцедуры
#КонецОбласти 
 

#КонецЕсли

LexaK

странно, после исправления должно было работать...
а вы базу/конфигурацию сохранили? программу/сеанс перезапустили?
если помогло нажмите: Спасибо!

syemye

LexaK, а тут что исправить надо?
Цитата: LexaK от 19 сен 2022, 12:01аа, так ругается на реквизит: КоличествоОбъектовЗадания

где-то вы в него пишите,

весь модуль объекта справочника выкладывайте
(вообще даже указывается строка 62, проверьте что бы она была в проверке Если ЭтоГруппа Тогда Иначе (Тут) КонецЕсли )

LexaK

syemye,
Цитироватьа тут что исправить надо?
здесь, ни чего, уже выше исправили, а вот почему не работает не понятно! 
если помогло нажмите: Спасибо!

syemye

LexaK, помогло, спасибо, решение вот. Всем спасибо.

syemye

решение ниже, всем спасибо. можно закрывать
Цитата: LexaK от 19 сен 2022, 11:40может это, вы изменяете таб.часть вне проверки на группу, немного подправил ваш код, попробуйте так
Процедура ПередЗаписью(Отказ)
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    МенеджерГВК = ОбщийМодульГВК.МенеджерГВК();   
    МенеджерВеселов= ОбщийМодульГВК.МенеджерВеселов();
    ФизЛицоПользователя = Пользователи.ТекущийПользователь().ФизическоеЛицо;
    МожноРедактировать = Ложь;
    Если Пользователи.ТекущийПользователь() =  МенеджерВеселов Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли Пользователи.ТекущийПользователь() =  МенеджерГВК Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли ОбщийМодульГВК.ЕстьПраво("ПраваОКС") Тогда
        МожноРедактировать = Истина;   
    КонецЕсли;     
    Если МожноРедактировать Тогда 
        Наименование = СокрЛП(Наименование);
        Наименование =Врег(Лев(Наименование,1))+ Сред(Наименование,2);
        Если ЭтоГруппа Тогда
        Иначе
            Если ПустаяСтрока(НаименованиеПолное) ТОгда
                НаименованиеПолное = Наименование;   
            КонецЕсли;
           
            Если ПустаяСтрока(Этажи) и Этаж<>0 Тогда
                Этажи = СокрЛП(Этаж);
            КонецЕсли;
           
        //КонецЕсли;  //Перенесено ниже
        Если ЗначениеЗаполнено(ОбъектЗадания) ТОгда
           
            Отбор = Новый Структура;
            Отбор.Вставить("ОбъектЗадания",ОбъектЗадания);
            Поиск =  ОбъектыЗадания.НайтиСтроки(Отбор); 
            Если Поиск.Количество()= 0 Тогда 
                ОбъектыЗадания.Добавить().ОбъектЗадания = ОбъектЗадания;
               
            КонецЕсли;
           
        КонецЕсли;
        КоличествоОбъектовЗадания = ОбъектыЗадания.Количество();
        КонецЕсли; 
       
    Иначе   
        ТекстСообщения = "Вам запрещено редактирование данные справочника!!!"+Символы.ПС+"Обратитесь к Веселову Сергею Владимировичу!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Наименование", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
    КонецЕсли;   
    Если ЭтоГруппа Тогда
    Иначе 
        Если КоличествоОбъектовЗадания = 0 Тогда
                ТекстСообщения = "Не выбран Объект задания!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ОбъектЗадания", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
         КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск