[РЕШЕНО] Метод "ИспользоватьСписокЭлементов" Баг или руки?)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем andrewch60, 30 окт 2014.

  1. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    добавил в форму списка номенклатуры вариант вывода только имеющегося на складе, и вроде все работает при многоуровневом справочнике, но сегодня добавил код в другую базу и на примере заметил что иногда 1на из групп(обычно 1ая в списке групп, но не всегда) отображается как элемент "???"(если зайти в нее), причем все остальные нормально! изменял количество элементов, попадающих в эту группу (поступлениями регулировал) и волшебным образом "???" появляются только если внутри 2 элемента ... Помогите разобраться в ситуации.

    КОД заполняющий список:
    //_____________________________________________________________________________

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

    Вложения:

    Последнее редактирование модератором: 31 окт 2014
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    в список значений необходимо добавлять все группы которые содержат список элементов для для фильтрации
  3. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    если добавлять в список родителя отображаемого элемента, то получится новый элемент "???" в группе ! или я не правильно понял?

    Вложения:

  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ??? пропадут. Иерархия у вас нарушена. Отсюда и ???
  5. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    в упор не нахожу нарушения иерархии... сделал вывод списка элементов после заполнения с полными кодами
    при открытии
    Список заполняется элементами:
    1 Код:00006103 Балконные рамы
    2 Код:00006104 Окна ПВХ
    выбор родителя Балконные рамы Код :00006103
    Список заполняется элементами:
    1 Код:00006103/00006105 ПОдГРуппа1
    2 Код:00006103/00000134 Балконная алюминиевая рама 1430*2500
    3 Код:00006103/00000129 Балконная алюминиевая рама 1430*2780
    4 Код:00006103/00000081 Балконная алюминиевая рама 1740*2750

    Вложения:

  6. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Решил проблему ! все было из за выполнения ИерархическийСписок(,0); при каждом заполнении списка элементов(перенес исполнение при выборе варианта заполнения остатков)... при указании первого параметра 1Ска просто стала вылетать, при клике на элемент "?", хотя без его указания все нормально было.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Те элементы, которые отображаются со знаком "?" просто не могут быть отображены на данном уровне иерархии.
    Список должен перезаполняться при мене иерархии
  8. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    при смене уровня иерархии...
    вопрос был в том ,что не отображался родитель, причем периодически!!! по какому то случаю это зависело от какого то непонятного конкретного случая...ведь на большинстве тестов все работало прекрасно!!
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Родитель мог не отображаться только в том случае если не был включен в список фильтрации..
    Занаки ??? появлялись в том случае если элемент не принадлежит выбранной иерархии, но включен в список фильтрации
  10. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    родителей всех вышележащих уровней в список фильтрации при ИспользоватьСписокЭлементов включать нельзя, иначе они будут добавлены как элементы "?" в текущий уровень! 1Ска сама их отображает
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    бред какой-то
  12. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    понимаю, что авторитет и опыт ... но я на примере проверил, в список передаваемый в ИспользоватьСписокЭлементов нельзя добавлять ничего, кроме элементов одного уровня, принадлежащих одному родителю. Может мы о разном?
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Благодарю за тактичность. А вышестоящие уровни (родители) вы кому оставите? Добавлять в СЗ не нужно? Думаю действительно имеет место недопонимание.
  14. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    не логично, но так и оказалось, 1С сама всех родителей дорисует
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да. Тут вы правы. Отчасти. Но группировки нужно добавлять для перехода на нижний уровень
    Последнее редактирование: 1 ноя 2014
  16. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    это да, но это я сразу реализовал, с этим проблем не было
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  18. TopicStarter Overlay
    andrewch60
    Offline

    andrewch60

    Регистрация:
    30 окт 2014
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    проблема всплыла опять...ощущение, что играет роль набор данных. Готов предоставить БД, в которой ошибка появляется

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