8.х Нужна помощь v8.1

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Destroyed, 12 сен 2008.

  1. TopicStarter Overlay
    Destroyed
    Offline

    Destroyed

    Регистрация:
    1 май 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Я недавно начал программировать и не могу решить одну проблему. Пишу внешн.обработку "загрузки & выгрузки" док-ов из ЗУП в ПБ v8.1 формата DBF. Столкнулся со сложностью "загрузки из DBF" документа "Отражение зарп-ы в реглам.учете" отрывок кода из загрузки док-та:
    Код:
    СчДТ = СокрЛП(xB.ПолучитьЗначениеПоля("D21S_DT")); // СчетДт.
    ТЗ_ОВУ.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчДТ); // Присв. в нов.док ТЗ, найденный СчетДт.
    СчДТ = ТЗ_ОВУ.СчетДт.ПолучитьОбъект(); // Получаю СчетДт.
    КолСуб = СчДТ.ВидыСубконто.Количество(); // Узнаю кол-во Субконто счета.
    Для Ном = 1 по КолСуб Цикл // Запускаем цикл перебора Субконто.
    ВидСуб = СчДТ.ВидыСубконто[Ном-1].ВидСубконто; 
    ТипЗнчСуб	 =ВидСуб.ТипЗначения.Типы()[Ном-1]; // Узнали ТИП.
    
    Если Ном <= КолСуб Тогда
    СубДт1 = Число(СокрЛП(xB.ПолучитьЗначениеПоля("D21S_DT1"))); // СубконтоДт1.
    ТЗ_ОВУ.СубконтоДт1 = ?????;
    КонецЕсли;
    
    -----
    Типы и значения Субконто, постоянно меняются в зависимости от найденного счета. :unsure:
    В итоге получается в отладке, допустим:
    Код:
    ТипЗнчСуб =
    Значение: СправочникСсылка: Статьи Затрат
    Тип: Тип
    
    Мне нужно получить тип как ссылку на объект конфигурации,
    чтобы по нему произвести поиск примерно,как в этом коде:
    Код:
    Ссылка = Справочники.СтатьиЗатрат;
    Ссылка.НайтиПоКоду(СубДт1);
    
    Хотелось бы реализовать так, но 1С ругается :smile: :
    Код:
    СубДт1 = Число(СокрЛП(xB.ПолучитьЗначениеПоля("D21S_DT1"))); // СубконтоДт1.
    ТЗ_ОВУ.СубконтоДт1 = Справочники.ТипЗнчСуб.НайтиПоКоду(СубДт1);
    
    Пожалуйста, если есть какие нибудь варианты решить эту проблему, отпишите их.
  2. GvH
    Offline

    GvH Опытный в 1С

    Регистрация:
    12 авг 2008
    Сообщения:
    179
    Симпатии:
    0
    Баллы:
    26
    Ну поиск подходящего варианта я бы начал отсюда:
    Код:
    Метаданные.НайтиПоТипу(<Тип>)
    
    
  3. TopicStarter Overlay
    Destroyed
    Offline

    Destroyed

    Регистрация:
    1 май 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    работает:
    Код:
    ПустаяСсылкаСубконто = Новый (ТипЗнчСуб); //получаем объект с типом СправочникСсылка
    ИмяСпр = ПустаяСсылкаСубконто.Метаданные().Имя;
    
    СпрМенеджер = Справочники[ИмяСпр];//получаем объект с типом СправочникМенеджер
    
    СпрМенеджер.НайтиПоКоду(СубДт1);
    
    --------------------------------
    Спасибо Kitt'у & GvH
  4. GvH
    Offline

    GvH Опытный в 1С

    Регистрация:
    12 авг 2008
    Сообщения:
    179
    Симпатии:
    0
    Баллы:
    26
    Работать-то может и работает, только временно.
    Ибо Субконто может быть не только справочник, но и перечисление, документ.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    +1

    Простое решение найдено?

    Вчера мучал 8.1 на эту тему....Максимум, что можно - это получить ОбъектМетаданых, узнать его полное имя, но нужен объет конфигурации типа СправочникМенеджер.<ИмяСправочника> или ДокументМенеджер.<ИмяДокумента>

    В обработке ВыгрузкаЗагрузкаДанныхXML каждый менеджер тупо описан конструкцией типа

    Код:
    Если Тип = "Справочник" тогда
    Менеджер = Справочники;
    иначеесли тип = "Документ" тогда
    Менеджер = Документы;
    
    и т.д.

    Чую так и придется делать, благо, у конкртеных документов реквизиты завязаны на 3-5 разных объектов :)
Похожие темы
  1. MuHyC
    Ответов:
    9
    Просмотров:
    435
Загрузка...

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