Загрузка данных из Excel

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

  1. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Уважаемые форумчане, нужна Ваша помощь в таком вопросе

    Пишу впервый раз обработку по загрузке из Excel в 1С .
    Задача: выбрать данные из Excel по определенным колонкам, создать на базе этих данных документ и заполнить в нем табличную часть.

    Смотрела несколько примеров, но в голове каша.

    Есть ли у Вас пример подобной обработки?

    Мне нужен просто "скелет", алгоритм как это делается
    --- Объединение сообщений, 9 сен 2015 ---
    Извиниете , не в тот раздел написала
    Последнее редактирование: 9 сен 2015
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    На форуме неоднократно поднимался вопрос по поводу взаимодействия с экселем, потрудитесь воспользоваться поиском :)
  3. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    пробуйте
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Перенесу тему в конфигурирование. За дубли тем можете схлопотать горчичник :)
  5. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    а разве не для 1с 7.7 нужна обработка?
  6. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    я уже смотрела , мне нужен сам алгоритм
    --- Объединение сообщений, 9 сен 2015 ---
    нет 8.2, я ошиблась
    --- Объединение сообщений, 9 сен 2015 ---
    и в 8.2 создала, до Вашего смс о переносе, сори
  7. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Мне кажется с алгоритмом не должно быть проблем, если в коде разбираетесь.
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Алгоритм прост:
    1. Запустить Excel
    2. Открыть файл книги.
    3. Выбрать лист
    4. Выбрать массив ячеек.
    5. заполнить по массиву ТЗ
    6. Закрыть файл книги.
    7. Закрыть Excel
    8. Выполнить запрос на существующие значения в БД
    9. Не существующие значения добавить в БД.
  9. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое, прояснилось. В основном меня интересовал вопрос необходимости создания промежуточной ТЗ .
    Только вот, пункт 4 - можно подробней, не совсем понятно, это цикл по ячейкам?
    --- Объединение сообщений, 9 сен 2015 ---
    Если бы разбералась настолько , то не спрашивала бы)
  10. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Скажем так: ТЗ создавать нет необходимости, можно и каждое значение проверять на существование и принимать решение по записи данных в БД, но я сторонник снижения нагрузки на БД и увеличения "параллельности" работы с БД всеми возможными способами.
    Цикл по ячейкам - это самое простое и медленное решение в данном случае.
    Если хочется бОльшей производительности, то данные из Ecxel можно брать массивами и оперировать ими в ОЗУ перед проверкой на существование/записью данных в БД.
  11. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    как брать массивами? (сори если вопрос глупый-Shy-)
  12. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Использовать Range вместо Cell.
  13. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    а мини пример можно?
  14. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Код:
    ............
    МногомерныйМассив = Лист.Range(НачальнаяЯчейка, КонечнаяЯчейка).Value;
    МассивМассивов = МногомерныйМассив.Выгрузить();
    МассивДанных = МассивМассивов[0];
    Для Каждого ТекЗначение ИЗ МассивДанных Цикл
    НСтр = ТЗ.Добавить();
    НСтр.Колонка1 = ТекЗначение;
    КонецЦикла;
    .......
  15. TopicStarter Overlay
    Cobie
    Offline

    Cobie

    Регистрация:
    8 июл 2015
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    НачальнаяЯчейка -это колонка №1 (грубо говоря), а Конечная - последняя колонка ? А если мне не все колонки нужны , а только половина
  16. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.580
    Симпатии:
    717
    Баллы:
    204
    Область выделяется с помощью указания адресов ячеек верхнего левого и нижнего правого углов области.
    Каждая ячейка - это область, у которой ячейка верхнего левого и нижнего правого углов одна и та же :)
  17. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Вот вам обработка (для управляемых форм), которая загружает все ячейки Экселя в табличную часть обработки. Делайте потом с этой ТЧ, что угодно.

    Вложения:

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