1С: Ускорение поиска в массиве структур

Задача: есть два массива структур. Один 500 записей, второй — порядка 900 тыс. Нужно для каждой из 500 записей, найти соответствующую запись из второй структуры.

  • Массив «субабоненты», заполнен структурами вида «то,лс,ипу,окпу,нс,улица,дом,квартира»
  • Массив «реестр_замен», заполнен структурами вида «лс,нп,улица,дом,квартира,ипу,дата_установки»

Решение 1: ищем и сопоставляем в «лоб»

Замеряем время выполнения…и устаём ждать.. Поиск и сопоставление длится по крайне мере несколько часов..

Решение 2:

А зачем нам в массиве субабонентов держать те данные, которых нет? Правильно, не зачем. Поэтому из массива «реестр_замен», сначала вычленим список л/с, и положим его в отдельный массив. И далее при заполнении из файла массива субабонентов, нужно штатно (функция Найти) проверять нужна такая строчка или нет в результирующем массиве? Функция «Найти» скажем работает ОЧЕНЬ быстро.

В итоге, в массиве «субабоненты» у нас ровно то количество записей, которое в «реестр_замен «, а вовсе не 900тыс.

И дальше пробуем снова сопоставить:

Скрипт выполнился уже в приемлемые примерно 400 секунд

Чтение большого файла csv в 1С

Куда ни глянь, в интернете чаще всего предлагается обработка и чтение большого файла csv в 1С при помощи загрузки в «текстовыйДокумент». Примерно так:

Что в корне не верно, при обработке большого csv файла, так как в этом случае весь файл вычитывается предварительно в память. А она не безразмерная в большинстве случаев. Правильный же способ обработки — построчное чтение файла. Примерно так:

Чтиво за последнее время

Давно не писал в эту рубрику «чтиво за последнее время». Забыл, забегался да и дачный сезон 😉

Жорж-иномирец 1-4. Автор: Сергей Панченко. Сюжет: обычный человек после ДТП получил возможность ходить между измерениями, коих бесконечно. Там он находит друзей ну и разные приключения конечно. Читабельность: 4

Попаданец с огромным потенциалом. Автор: Сергей Полев. Сюжет: хорошо поживший в своём мире человек попадает в другое измерение в другое тело. Там где магия и приключения. Читабельность 4.

чтиво за последнее время

Триллионер из трущеб 1-4. Автор: Сергей Полев. Сюжет: Попаданец в мир где правит система. Обладает уникальным навыком — тратить заработанные деньги на бесконечную прокачку навыков. Читабельность 3.

Грани. Автор: Валентин Дмитриев. Сюжет: Два друга встречают основательницу загадочной фирмы «Пирамида», которая может исполнять любые желания. Читабельность 2. Не дочитал..

Звёзды — холодные игрушки. Автор: Сергей Лукьяненко. Третья или четвертая перечитка уже. Читабельность 5 😉

Сборник Гаджет 1-10. Автор: Сергей Лукьяненко. Сборник фантастических рассказов на различные тематики. Читабельность 4.

Остальное моё чтиво тут

Установка OpenSSH из исходных кодов на RedOS

Задача: необходимо обновить существующую установку демона sshd на ОС RedOS (установка sshd из исходников).

Решение:

Подготавливаю необходимый инструментарий и окружение:

Скачиваю на сайте https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ необходимую версию sshd, распаковываем её в папку и переходим в неё:

Конфигурируем, cобираем, устанавливаем:

После установки нужно перестартовать демон и посмотреть версию sshd:

установка sshd из исходников

Таблица в массив на php

Задача: Есть некая очень захламленная сторонними элементами страница в разметке html. Необходимо преобразовать находящуюся на ней таблица в массив данных.

Решение: сначала вычленим «грязное» содержимое таблицы между тегами <tbody></tbody>, затем преобразуем его в DOM документ, а далее уже распарсим его обходами и разложим элементы в массив.

Получилось что-то вроде:

1 2 3 4 288