Универсальная коллекция. Класс-надстройка
Задачи пользователя - Поиск данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Общий концепт
Класс задумывался, как сборник интерфейсов, позволяющих единообразно обрабатывать различные универсальные коллекции, не тратя время на особенности реализации каждой из них. В итоге, получилось как и было задумано; и дописывая последние на момент первого релиза методы и тесты, уже в полной мере пользовался новыми интерфейсами, что на последних этапах ускорило процесс разработки функциональности и тестов. То есть уже на этапе саморазработки, класс активно использовался и помогал в работе.
В ходе обсуждения, стало ясно, что без тонкого клиента впечатление будет неполным, поэтому добавлена поддержка тонкого и веб клиентов.
Описание
Планы развития
- реализовать задуманные методы (список прямо в коде в секции "Описание"), если возникнет нужда или попросят пользователи.
- реализовать подкласс для обработки таблиц, в том числе таблиц формы и динамических списков. остальные коллекции более менее хорошо живут в одном интерфейсе, но таблицам точно нужно расширение ассортимента методов.
Примеры кода
Быстродействие и некоторые кейсы применения
Накладные расходы на обслуживание интерфейсов присутствуют, но на фоне статистической погрешности. Значения этих расходов будут изменяться в единицах/десятках миллисекунд при числе операций от десяти тысяч.
Операции поиска без индексирования имеет смысл использовать при однократном поиске или небольших размерах коллекций или если эти коллекции Массив/Список значений на современных версиях платформы.
Операции множественного поиска рекомендуется использовать совместно с индексированием. Скорость поиска в данном случае вырастает на 1-3 порядка в зависимости от типа исходной коллекции.
То есть если использовать с умом, по ряду операций можно реально ускорить поиск, без увеличения объёма кода. Но в основном, назначение данного продукта это ускорение разработки прикладных решений, а не выполнения кода. Узкие места всегда можно расшить, в случае нужды, а вот написание кода, порой занимает много времени.
Общее впечатления от использования:
Так как давно хотел, но не доходили руки, то впечатления сугубо положительные. Код становится меньше похож на фарш, а обработка разнотипных коллекций становится тривиальной задачей. таким образом алгоритмы без особых усилий становятся универсальными и повторно используемыми.
Архитектура решения:
Технические требования
- Не требует никаких библиотек для использования, полностью самодостаточный продукт
- В коде ничего кроме СтрСоединить, кажется не используется, поэтому требования к версии платформы гуманные. Если нужна адаптация под раритетную версию платформы, пишите в комментариях - помогу.
- Обработка не имеет графического интерфейса, за исключением формы, для проведения тестирования методов.
Варианты поставок и внедрения
Сокращенная поставка с поддержкой только сервера. В виде внешней обработки - загружается в конфигурацию и используется. Не забудьте выдать права пользователям на её использование.
ВАЖНО! Чисто серверная поставка больше развиваться не будет. Причины в разделе "Архитектура решения".
Поставка "УниверсальнаяКоллекция" реализована как микро-библиотека, содержащая реализацию класса. Поддерживается Сервер и толстые клиенты, тонкий и веб клиенты.
При первой установке, необходимо поставить на поддержку данную микро-библиотеку. Для этого нужно чтобы корень конфигурации был доступен для изменения:
- Сравнить/Объединить
- В ответ на предложение поставить на поддержку согласиться
- В окне сравнения/объединения снять все флаги со свойств шапки (версия, поставщик, итд)
- Дальше ничего не выбирать
- При последующих обновлениях выбирать пункт - Поддержка\Обновить конфигурацию\Из файла
- После первого обновления добавить роль из поставки в профили доступа. Если профили не используются, то дать права на использование обработки "УниверсальнаяКоллекция".
Если нужна поставка с техподдержкой и обновлениями - пишите в ЛС или в комментариях. Добавлю поставку за рубли.
Условия использования
Всё стандартно - пользуйтесь на своё усмотрение, но не отчуждайте неотчуждаемое право на авторство.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.19.63
Вступайте в нашу телеграмм-группу Инфостарт
