Вход | Регистрация

1С:Предприятие ::

Метки: 

Не получается реализовать функционал. В чем проблема?

Я
   brenli
 
15.03.18 - 19:37
// Меняем значение реквизита 

//подчиненых элементов на значение взятое у родителя
Процедура ОбходЭлементовВГруппе(Источник) 
    Выборка  = Справочники.Номенклатура.ВыбратьИерархически(Источник.Ссылка);
    Пока Выборка.Следующий() Цикл
        ОбъектНом            =    Выборка.ПолучитьОбъект();
        ОбъектНом.Контрагент =  Источник.Контрагент;
        ОбъектНом.Записать();
    КонецЦикла;        
КонецПроцедуры    

//Работа с реквизитом

Процедура ОбработкаРеквизитаКонтранент(Источник) Экспорт
    Если НЕ Источник.ЭтоГруппа Тогда  // Если это элемент справочника тогда заполняем контра из контра родителя

        Источник.Контрагент = Источник.Родитель.Контрагент;
    ИначеЕсли Источник.ЭтоГруппа Тогда// Если это группа справочника.

        // Группа может быть корневой и вложенной

        // Если группа корневая, контрагента у ней принудительно не устанавливаем

        Если Источник.Уровень()=0 Тогда
            Если НЕ Источник.Контрагент.Пустая() Тогда
                ОбходЭлементовВГруппе(Источник);
            КонецЕсли;    
        Иначе    
            Если НЕ Источник.Родитель.Пустая() Тогда
                Источник.Контрагент = Источник.Родитель.Контрагент;    
                ОбходЭлементовВГруппе(Источник);
            КонецЕсли;    
        КонецЕсли;    
    КонецЕсли;    
    
    Если НЕ Источник.ДополнительныеСвойства.РодительДоИзменения = Источник.Родитель Тогда
        Источник.Контрагент = Источник.Родитель.Контрагент;    
        Источник.Записать();
        ОбходЭлементовВГруппе(Источник);
    КонецЕсли;    
КонецПроцедуры    

//Подписка на событие

Процедура ЛК_НоменклатураПередЗаписью(Источник, Отказ) Экспорт 
    Источник.ДополнительныеСвойства.Вставить("РодительДоИзменения", Справочники.Номенклатура.НайтиПоКоду(Источник.Код).Родитель);
КонецПроцедуры

//Подписка на событие

Процедура ЛК_НоменклатураПриЗаписи(Источник, Отказ) Экспорт
    ОбработкаРеквизитаКонтранент(Источник);
КонецПроцедуры


Задача такая: У справочника программно реализованно отображение реквизита контрагенты. У групп - доступ для редактирования Истина, у элементов - доступ для редактирования ложь.
При изменении реквизита контрагент в корневой группе (без родителя), устанавливаем значение этого реквизита у  всех дочерних. - работает.
При переносе из группы в группу значение контрагента у групп и элементов так же меняется, НО не могу запретить менять реквизит контрагент у вложенных групп.
Что только не пробовал (..
Может есть идеи?
 
 
   Cyberhawk
 
1 - 15.03.18 - 19:50
Замути видео
   Малыш Джон
 
2 - 15.03.18 - 21:30
Лучше стрим. Потом - выполнять реквесты, собирать донат.

(0) у тебя ведь все группы вложенные, кроме самого верхнего уровня, а говоришь - "У групп - доступ для редактирования Истина". ты с логикой работы разберись, а потом уже её в коде реализуй.
   Сергиус
 
3 - 16.03.18 - 02:12
(0)Как связано то, что ты присваиваешь значение реквизиту Контрагент и запрет на изменение данного реквизита?


Список тем форума
Рекламное место пустует Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует