Нелады с позиционированием выборки 1С7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем LoveSilense, 11 июл 2008.

Статус темы:
Закрыта.
  1. LoveSilense

    LoveSilense Гость

    Заранее извиняюсь за глупый вопрос - но никак осилить не удаётся=(
    При создании элемента справочника нужно спозиционировать на нем выборку для проверки, находится ли он в группе "продукция". Как это сделать если никаких уникальных атибутов при создании не присваевается?

    я пробовал так
    ТМЦпоз = СоздатьОбъект("Справочник.ТМЦ");
    ТМЦпоз.ВыбратьЭлементы();
    ТМЦпоз.ТекущийЭлемент();
    Если ТМЦпоз.ПринадлежитГруппе("Продукция") = 1 Тогда
    ВидТМЦ=Перечисление.ВидыТМЦ.Продукция;
    Иначе
    ВидТМЦ=Перечисление.ВидыТМЦ.Товар;
    КонецЕсли;

    насколько я понял строка ТМЦпоз.ТекущийЭлемент(); тут абсолютно не в тему и вроде как не позиционирует на активном елементе выборку... но как тогда все-таки это сделать?
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    ТМЦпоз = СоздатьОбъект("Справочник.ТМЦ");
    ТМЦпоз.ВыбратьЭлементы();
    Пока ТМЦпоз.ПолучитьЭлемент() = 1 Цикл
    //ТМЦпоз.ТекущийЭлемент(); //не обязательно
    Если ТМЦпоз.ЭтоГруппа() = 0 Тогда // Проверка на группу - вряд-ли у группы есть реквизит перечисления.
    Если ТМЦпоз.ПринадлежитГруппе("Продукция") = 1 Тогда
    //Если ТМЦпоз.Родитель.Наименование = "Продукция" Тогда // про принадлежность группе не пробовал
    ВидТМЦ=Перечисление.ВидыТМЦ.Продукция;
    //ТМЦпоз.ВидТМЦ=Перечисление.ВидыТМЦ.Продукция; // Если ВидТМЦ не переменная а реквизит справочника
    //ТМЦпоз.Записать();// Ну что-то с ним сделать надо ;-)
    Иначе
    ВидТМЦ=Перечисление.ВидыТМЦ.Товар;//см строчку выше
    КонецЕсли;
    КонецЕсли;//Проверка на группу
    КонецЦикла;

    Удачи!
     
  3. LoveSilense

    LoveSilense Гость

    Никак не удаётся установить принадлежность группе=( Пробовал отладчиком, выдает что
    Если ТМЦпоз.ПринадлежитГруппе("Продукция") = 0
    и во втором случае ТМЦпоз.Родитель.Наименование =""
    непонимаю, почему такое может быть, если я создаю новый элемент именно в группе Продукция?????
     
  4. Isabela

    Isabela Гость

    Если ТМЦпоз.НайтиПонаименованию("Продукция",0) = 1 тогда
    Продукция = ТМЦпоз.ТекущийЭлемент();
    КонецЕсли
    вот теперь Продукция - элемент справочника ТМЦпоз, и можно проверять остальные элементы справочника на предмет принадлежности группе
    Продукция
    Если ТМЦпоз.ПринадлежитГруппе(Продукция) = 1 и т.д.
    а такое
    Если ТМЦпоз.ПринадлежитГруппе("Продукция") = 1 Тогда
    не будет работать никогда, ибо "Продукция" - здесь текст, а не элемент справочника
     
  5. LoveSilense

    LoveSilense Гость

    Хм... спасибо, будем попробовать
     
  6. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    + Попробуйте еще почитать ЖКК "Описание встроенного языка". Там кроме описания методов есть еще и примеры.
     
Статус темы:
Закрыта.

Поделиться этой страницей