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

Обход справочников

Автор Gendelf, 26 дек 2013, 12:06

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

Gendelf

Ребят... задача такая что нужно обойти справочник Книга, и обнулить реквизит "состояние". Пишу обработку, до поры до времени работает, а потом начинает брать и созданные группы (родитель) итого получаю ошибку "Реквизит недоступен для группы"


Процедура Обработать();
   
    // Сброс статусов всех книг
    СпрСсылка = Справочники.Книга.Выбрать();

    Пока СпрСсылка.Следующий() Цикл
       
       
        СпрОбъект = СпрСсылка.ПолучитьОбъект();
        СпрОбъект.Состояние = Перечисления.СостояниеКниги.ПустаяСсылка();
        СпрОбъект.Записать();
        Сообщить(СпрОбъект.Код);
       
    КонецЦикла;
   
КонецПроцедуры



mixqn

ну так не обрабатывайте группы :)
варианты решения:
1. описать выборку при помощи запроса, в котором условие ЭтоГруппа = Ложь
2. попробовать использовать тот же метод менеджера справочника, но в отборе указать ЭтоГруппа = Ложь (там через структуру делается, не знаю, сработает ли)
3. в цикле при обходе проверять значение ЭтоГруппа и если ЭтоГруппа = Истина, не менять реквизит
Добавлено: 26 дек 2013, 12:15


P.S. я бы сделал запросом.

Gendelf

так, щас попробую через условие...

Добавлено: 26 дек 2013, 12:32


спасибо всё получилось, через условие.

Besart

Процедура Обработать();
   
    // Сброс статусов всех книг
    СпрСсылка = Справочники.Книга.Выбрать();

    Пока СпрСсылка.Следующий() Цикл
       
        Если НЕ СпрСсылка.ЭтоГруппа Тогда
        СпрОбъект = СпрСсылка.ПолучитьОбъект();
        СпрОбъект.Состояние = Перечисления.СостояниеКниги.ПустаяСсылка();
        СпрОбъект.Записать();
        Сообщить(СпрОбъект.Код);
        КонецЕсли;
       
    КонецЦикла;
   
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск