8.х Загрузка больших объемов данных

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем nbIpKuH_BaH9I, 1 июн 2015.

  1. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Всем счастья. Задача такая. Есть у меня файл аксес. В нем хранится перечень номенклатур. Их много. Порядка 600000. Необходимо написать загрузку этих номенклатур в базу. Причем не одноразовую, в чтобы выполнять ее раз в месяц. Если есть новые добавить, если нет, то обновить старые при необходимости. Загрузку написал. Но она во-первых, достаточно медленная. Во-вторых, комп осиляет только первые 80000 штук. Как быть, что делать? Какие советы? Прошу помощи? И дай бог всем здоровья. :)
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    1.Надо грузить партиями - такие большие объемы грузить целиком не нужно - медленно , ели ошибка - теряещь много времени и система занята - другие пользователи не работают.
    2. партиями лучше грузить не разхаово в конце месяца, а может в конце каждой недели.
    3. Ну как я вижу - что может нет смысла грузить из Аксеса. в аксесе нужен во первых реквизит Выгружен, что получать номенклатуру которая уже выгружалась.Создаете папку на сервере или где для аксеса пиште программу легкую котрая запросиком вытаскивает все номенклатуры у которых данный реквизит Ложь - устанвливает его в истина а саму номенклатуру грузить в файлики эксель пачками по 10 000 например
    Вот получилось у тебя 3 файлика . Зашел 1Ской и грузишь их поочередно.
  3. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Может внешнюю компоненту делать :) ?
    К Access`u через ком подключаешься ?
  4. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Да. Вот прикрепляю. Если интересно, гляньте.
    Объясню. Файл мы берем от поставщика. Менять его структуру они не будут. Уже говорили про это. Они выгружают его так как есть. 600000 строк.
    --- Объединение сообщений, 1 июн 2015 ---
    Плюс запись в базу происходит очень долго. Когда номенклатура новая например.
    --- Объединение сообщений, 1 июн 2015 ---
    Да и просто перезапись номенклатуры тоже долго. + еще нужно создавать документ с ценами на номенклатуру. :)

    Вложения:

  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Чет как то расклад поменялся моментом то была база Аксес то тперь файл вам присылают.
    Ну Вы что не можете в базе у себя в Аксесе сделать свою табличку в которую будут добаляться номекнклатура
    Ну Вот есть ваш Аксес, создали там таблицу номенклатура с реквизитом как я написал - прислали Вам файл, это вторая таблица, там труда нет большого в рамках двух таблиц из одной перекинуть в другую только ту номенклатуру, которой не хватает.
    я бы даже третью таблицу следад и назвал ее номенклатура для выгрузки.
    Смысл в чем берем изанчально наша база пуста пришел первый файл мы его закгрузитили все понятно
    у нас в нашей базе Наша таблица номеклатура стала содеержать 500 тыс первых которые пришли.
    Затем следующий раз они присылают файлик с 600 тыс ну быстро запросиком и интсертиком вставляем разность 100 в нашу таблицу номенклатура и эти же 100 тыс в таблицу для выгрузки

    Затем либо выгружаем эти 100 твыс напрямую либо через файлы как сказал, и очищаем ее
  6. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    1) Есть ли идентификатор с Аксесовской стороны? Если есть тогда его есть смысл тащить.
    2) Делать в транзакции , но не большими партиями. Т.е. если запишем 500 штук, а на вторых 500 зависнет ничего страшного.ъ
    3) Вариант который я бы не стал применять , но если совсем плохо, то найти спеца который напишет это на T-SQL
  7. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Андрей, нам присылают файл с расширением *.accdb. Это файл майкрасофт аксесса. Делать в ручную никто ничего не собирается. Я в том числе. Я не собираюсь тратить свое время, чтобы разбивать им файлы. Следить за этим и чтобы они мне голову мурыжили каждый раз когда нужно список товара загрузить. Пользователи не из самых умных у нас. Они механическую то работу с ошибками выполняют. В процессе работы пользователи сами меняют те или иные реквизиты номенклатуры. Поэтому это тоже нужно отслеживать. Для начала данные файла нужно сравнить с данными 1С. Выявить новые, измененные и т.д. В приницпе я так и делаю
    --- Объединение сообщений, 1 июн 2015 ---
    Ну как я сидел размышлял, то единственный вариант средствами 1С (простите, но на SQL я не умею писать:) и искать спеца точно никто не будет), так это порциями записывать. Просто это очень долго происходит.
  8. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Каким образом сравнение идет? по каким полям? Еще одна бешеная идея. Накидать отдельную конфушку в которой будет идти сравнение, на другом железном ресурсе, а оттуда уже выгружать только то что надо.
  9. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Обычным запросом 1С. Обработку я скинул, можешь поглядеть. :)
    Загрузка больших объемов данных
  10. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Блин ну вот зачем.. своих 5 штук открыто)) я имел ввиду по каким полям. Судя по всему по артикулу. Так может создать базу, на отдельном от сервака компе и в нее выгрузить все артикулы.. и там анализировать. А в рабочую грузить уже без анализа.
  11. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Костик, ты спросил совета, ты не писал что ты хочешь делать, что ты не хочешь делать - по это прости не учитывал данные аспекты.
    То что Вы сейчас предложили в отдельную конфу -я предложил сделать в аксесе. Хотите - не хотите - это уже Ваш вопрос
    Насчет автоматизации то все то что я предлагаю - автоматизируюется. Что нельзя написать регламентное заданеи котрое каждой воскресень в 12 ночи будет заходить в папку выбирать оттуда вайлы и каждый по очереди загружать?
  12. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Не, извини, если грубо как то написал. ;) Просто может кто уже сталкивался с подобной задачей. В принципе 1С и сама нормально обрабатывает файл. Достаточно оперативно. Проблема лишь с записью этих изменений. Тогда вопрос немного переформулирую. Можно как то ускорить запись в базу данных 1С?
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Что за конфа? Ограничение на уровне записей
    --- Объединение сообщений, 1 июн 2015 ---
    используется?
  14. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Прямыми SQL запросами.
  15. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Конфа Альфа-авто. НЕ видел пока. Щас еще гляну.
    :(
  16. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Кстати в этом контексте, давно хотел но не на чем было попробовать. Хотел испытать в MS SQL файловые группы. Т.е. базу данных можно хранить не в одном файле. Соответственно вынести номенклатуру и сопутствующие данные в отдельную файловую группу и перекинуть на SSD.
  17. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Это конечно можно:), но проект будет стоить миллионы :)
    Кость, на мой взгляд - делай вторую базу, в которую будешь грузить данные из файлов. Можешь написать даже самую простую. Пусть работает 24/7
    В центральной базе делаешь обмен (ты это хорошо умеешь :) ), и тянешь данные из своей конфы.
  18. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    А смысл какой? :) Все равно же из файла в 1С как то нужно грузить данные.
    Я конечно опытный пользователь, но это уже перебор для меня :D.
  19. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Все цены одним документом Установка цен точно писать не надо. 1С загнется. Она на 20 тыс позиций загибается уже, документ минуты 3 открывается на файловой базе с ssd диска.
    Поэтому только бить на части.
    --- Объединение сообщений, 1 июн 2015 ---
    Обработку не смотрел.
    Там что за номенклатура? Запчасти? Ну там же у них ничего не меняется. Я к тому что повторно номенклатуру перезаписывать не надо если она в базе уже есть.
  20. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Ну там на самом деле в теории не так грустно. Т.е. база хранится в одном файле и в одной файловой группе. Создается еще группа и туда переносятся те таблицы SQL что нас интересуют... т.е. храниться будет в разных файлах, которые можно физически разнести.

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