Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Бухгалтерия 8]

Оптимизация загрузки из DBF

Remo
читатель
офлайн
Дата регистрации: 21.07.2011
Сообщений: 3
Пост №1
 
21.07.2011 11:21

"Добрый день! Требуется загрузить контрагентов из внешней программы. <br>Фрагмент кода загрузки:<br> <br>Файл_DBF = Новый XBase;<br> Файл_DBF.ОткрытьФайл("Sprav.DBF");<br> Файл_DBF.Первая();<br> Пока Не Файл_DBF.ВКонце() Цикл<br> КодЭлем = СокрЛП(Файл_DBF.Nom);<br><br> Если КодЭлем = СокрЛП(Справочники.Контрагенты.НайтиПоКоду(КодЭлем).Код) Тогда<br> Файл_DBF.Следующая();<br> Продолжить;<br> КонецЕсли;<br>//<br>//Если нет такого кода загружаем в справочник.<br>//Текст загрузки приводить небуду<br>//<br><br> Файл_DBF.Следующая();<br> КонецЦикла;<br> Файл_DBF.ЗакрытьФайл();<br><br>Возможно ли оптимизировать данную загрузку?<br>И если возможно, то как?"

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
21.07.2011 15:11

> Возможно ли оптимизировать данную загрузку?<br>А в чем должен заключаться смысл оптимизации?

Remo
читатель
офлайн
Дата регистрации: 21.07.2011
Сообщений: 3
Пост №3
 
21.07.2011 15:29

Оптимизировать время загрузки. Можно ли запросом получить только те данные, которых нет в справочнике контрагентов. Уникальность отслеживается по "Коду".<br>Просто строка:<br>Если КодЭлем = СокрЛП(Справочники.Контрагенты.НайтиПоКоду(КодЭлем).Код) Тогда<br>Настораживает тем, что в загружаемом файле большое количество данных. Более 10000 строк. И каждую стороку проверять на уникальность - огромная затрата по времени.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №4
 
21.07.2011 17:14

1. Загружаете данные из DBF в таблицу значений.<br>2. Таблицу значений помещаете во временную таблицу запроса.<br>3. Осуществляете поиск элементов, соединяя временную таблицу с таблицей контрагентов.

Remo
читатель
офлайн
Дата регистрации: 21.07.2011
Сообщений: 3
Пост №5
 
27.07.2011 09:36

После загрузки DBF файла в таблицу значений, перемещения во временную таблицу и сравнением в запросе Временной таблицы и справочника время обработки увеличилось.<br>Итог:<br>Вариант 1.: чтение из DBF -> поиск в справочнике на уникальность. Затраченное время 9 секунд.<br>Вариант 2.: чтение из DBF -> заполнение таблицы значений -> перемещение во временную таблицу -> сравнение, в запросе, временной таблицы и справочника на уникальность элементов. Затраченное время 5 минут 20 секунд.<br>Результат отрицательный.<br>Исходные данные: <br>10300 записей в DBF<br>100000 записей в справочнике контрагентов 1С.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №6
 
27.07.2011 09:40

> Результат отрицательный.<br>Код свой покажите для начала.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация