7.7 Подчененные справочники

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

  1. TopicStarter Overlay
    Sirrin
    Offline

    Sirrin

    Регистрация:
    25 апр 2011
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Здраствуйте.
    У меня такая проблема. Сворганил сам справочник адресов к самописной базе из подчененных справочников. Иерархия такая Город -> Улица -> Дом -> КвартираОфис.
    При выборе Реквизита "АдресВыб" меня посылает по очереди выбирать из справочников элементы пока не дойду до справочника "КвартираОфис", после срабатывает процедура "Адресочик()"

    Ниже привожу код процедуры.
    Код:
    Процедура Адресочик()
    
    СпрГор   =СоздатьОбъект("Справочник.Город");
    СпрГор.ВыбратьЭлементы();
    Пока СпрГор.ПолучитьЭлемент()=1 Цикл
    
    
    СпрУл  =СоздатьОбъект("Справочник.Улица");  
    
    СпрУл.использоватьВладельца(СпрГор.ТекущийЭлемент());
    СпрУл.ВыбратьЭлементы();
    
    Пока СпрУл.ПолучитьЭлемент()=1 Цикл
    
    
    СпрДом  =СоздатьОбъект("Справочник.Дом");  
    
    СпрДом.использоватьВладельца(СпрУл.ТекущийЭлемент());
    СпрДом.ВыбратьЭлементы();
    
    Пока СпрДом.ПолучитьЭлемент()=1 Цикл
    
    
    СпрКО  =СоздатьОбъект("Справочник.КвартираОфис");  
    
    СпрКО.использоватьВладельца(СпрДом.ТекущийЭлемент());
    СпрКО.ВыбратьЭлементы();
    
    Если СпрКО.НайтиЭлемент(АдресВыб)= 1  тогда
    
    Город = СокрЛП(СпрУл.Владелец);
    Улица = СокрЛП(СпрДом.Владелец);
    Дом   = СокрЛП(СпрКО.Владелец);
    КвОф  = СокрЛП(АдресВыб);
    
    Адрес = "г."+Город+", ул."+Улица+", д."+Дом+", кв/оф."+КвОф+".";
    
    КонецЕсли;
    
    КонецЦикла;
    
    КонецЦикла;
    
    КонецЦикла;
    
    КонецПроцедуры
    
    
    В итоге переменная "Адрес" имеет такой вид:
    Город-последняя строка
    Улица-последняя строка
    Дом-Все верно
    кв/оф.-Все верно

    Подскажите где косяк?
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Не понимаю, что за суть у алгоритма...

    С результатом все понятно:
    1. кв/оф.- Это выбранное начение
    2. Дом- это владелец выбранного значения.
    3. Город и Улица- почему-то берутся из предыдущих выборок.

    От сюда куча вопросов:
    1. Зачем эти куча переборов? Ведь можно перебирать только элементы "КвартираОфис", и от них по восходящей выводить владельцев.
    2. Зачем перебор по "КвартираОфис", если он не используется?
    3. Зачем столько справочников? Ведь даже в типовых адрес хранится в виде строк.

    Полагаю, просто нет понимания, что делает выборка по справочнику. Рекомендую открыть отладчик, и по шагам пройти этот алгоритм. Тогда придет ясность происходящего.
  3. TopicStarter Overlay
    Sirrin
    Offline

    Sirrin

    Регистрация:
    25 апр 2011
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Что-т недогоняю, можешь показать, как мне от "КвартираОфис" до "Город" подняться?
    Мне нужно чтоб города, улицы и дома с квартирами заполнялись, а потом просто выбирались.
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Я так понимаю, "АдресВыб" - это какой-то выбранный элемент справочника "КвартираОфис"? Тогда так:
    Город-АдресВыб.Владелец.Владелец.Владелец
    Улица-АдресВыб.Владелец.Владелец
    Дом-АдресВыб.Владелец
    кв/оф.-АдресВыб

    Какой смысл хранить в базе все варианты адресов? Это адреса кого? Клиентов? Сотрудников?
  5. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    [CODE1C]
    Дом = КвартираОфис.Владелец;
    Улица = Дом.Владелец;
    Город = Улица.Владелец;
    [/CODE1C]
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Зачем огород было городить? Типовое решение хранения адреса вас не устраивает? (строка, разделитель запятая)
Похожие темы
  1. kulak
    Ответов:
    7
    Просмотров:
    549
  2. Katushka
    Ответов:
    0
    Просмотров:
    307
Загрузка...

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