8.х Обсуждения алгоритма решения задачи

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

  1. TopicStarter Overlay
    DDRON
    Offline

    DDRON Опытный в 1С

    Регистрация:
    26 авг 2008
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Добрый вечер.
    В этой теме я хотел бы рассказать о стоящей задаче и о том как я вижу алгоритм её решения.
    От Вас я бы хотел получить оценку алгоритма и помощь по реализации некоторых моментов в коде.

    Изучение 1С я начал недавно, возможно некоторые вещи я объясню не понятно. Если так - спрашивайте.

    Задача:

    Есть экселевский файл, содержащий много документов "РогаиКопыта". То есть вид документа один, но много экземпляров (отличаются значением полей и т.д.). Этот экселевский файл создаётся путём импорта документов "РогаиКопыта" из программы "Флагман" (аналог 1С).

    Надо импортировать информацию из него в аналогичный документ (много доукументов вида "РогаиКОпыта") 1С.

    Алгоритм (как я его вижу).
    Если посмотреть на структуру документа РогаиКопыта в 1С, то мы увидим что тип полей имеет вид на подобие такого:
    СправочникСсылка.Организации

    Для каждого поля свой справочник. То есть напрямую из Excel в документ мне информацию не вставить.
    Сначала, информацию мне придётся импортировать в соответствующие справочники. Так? Хорошо. Это я умею. Но тут у меня возникает вопрос.

    В справочниках обычно 2 поля. Наименование и код.
    При вставке в документ нужной записи из справочника мне нужен код. Знай я его, я бы поступил так:

    Код:
    НовДок.Организация = Справочники.Организации.НайтиПоКоду("00000003");
    
    Но я же не буду знать код. Что тогда?

    Во Флагмане эти поля тоже бедутся из вещи подобной справочнику. И там тоже есть свой номер у наименовании. Естественно не совпадающий с тем что мы получим в Excel.

    Как насчёт варианта добавить в справочник третье поле, содержащее номер из Флагмана?
    Пройдёт тогда следующий вариант:
    Код:
    НовДок.Организация = Справочники.Организации.ПоискПоКод2("345");
    
    где код2 - это код наименования во Флагмане.

    Возможно есть ещё варианты решения этого момента, которые я не вижу?
  2. opkc
    Offline

    opkc Опытный в 1С

    Регистрация:
    28 янв 2008
    Сообщения:
    149
    Симпатии:
    0
    Баллы:
    26
    Код:
    Справочники.Организации.НайтиПоРеквизиту("КодПоФлагману","код");
    
    
    можно использовать НайтиПоНаименованию("");

    а вообще поищи обработки для импорта документов из Excel. зачем изобретать велосипед? :)

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