Произвольные алгоритмы

01.01.13

Разработка - Математика и алгоритмы

Справочник произвольных поименованных алгоритмов. Упорядочение, управление, поиск, замена. Наглядность. Использование в полях, хранение в реквизитах БД. Обычные формы и УФ.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Конфигурация с подсистемой
.cf 56,90Kb
76
76 Скачать (1 SM) Купить за 1 850 руб.

Идея проста - повысить управляемость произвольными вспомогательными текстами кодов на встроенном языке. Да, мы пишем их в УПОБ и прочих обработках, вводим в полях разовых блоков, но рано или поздно возникает нужда в библиотеке наработок, просто кусков исполняемого кода, решающих конкретные задачи. Одним из вариантов такой библиотеки является справочник алгоритмов в составе простенькой подсистемы. Основные его достоинства:

  • Каждому куску кода, заслуживающему хранения и требующему использования, присваивается имя, уникальный код и идентификатор, снижается путаница и вероятность затереть новую версию старой;
  • Все наработки могут быть упорядочены в папки, как в обычные группы справочника, повышается наглядность и управляемость библиотекой наработок;
  • Данные хранятся в БД, риск потери наработок ниже, удобнее "передавать дела" коллегам; расширенные описания позволяют не забывать цели конкретных кусков кода, задачи, условия создания и применения;
  • Можно использовать журнал регистрации 1С для отслеживания истории объектов;
  • Можно ссылаться на алгоритмы из других реквизитов БД, хранить ссылки, гибче настраивать механизмы БД без переработки конфы, запоминать исключительные случаи, расширять функционал при минимуме затрат;
  • Можно использовать собственный поиск и замену (средствами справочника), можно использовать полнотекстовый поиск.
  • Есть простые инструменты (конструктор запросов, вставка терма "Значение"), сохранение отдельных алгоритмов в файл и открытие из файла (например, чтобы перекинуть из базы в базу по-быстрому, или прислать удалённому клиенту некую доработку для конкретной задачи).

Справочник может быть связан с другими объектами конфигурации, как обычные метаданные. Элемент справочника, конкретный алгоритм, может фигурировать в хранимом реквизите, решая конкретные задачи. Например: "алгоритм расчёта задолженности клиента", привязанный к группе клиентов; "алгоритм загрузки картинки", привязанный к номенклатуре; регламентные алгоритмы и многое другое. Не всегда эти вспомогательные куски кода имеет смысл пихать в конфу, иногда они часто меняются или являются разовыми костылями (нуждающимися, однако, в том, чтобы их применение спустя годы не забылось). Или, работа с клиентом не позволяет прислать cf/cfu-обновление, а внешняя обработка потом "потеряется". Хранение в БД поименованных алгоритмов помогает решить эти проблемы.

Алгоритмы можно вызывать один из другого, можно передавать любые аргументы на вход и получать данные на выходе. На входе у алгоритма - список значений или структура; на выходе - результат (его можно и не заполнять, если задача алгоритма в некоем действии, а не в получении конечного значения). Всё рассчитано и на серверное исполнение, и на внешнее соединение. Единственно - насчёт привилегированного запуска я ничего не делал, права рулятся на общих основаниях.

Наработка поставляется как подсистема с единственным справочником и демо-обработкой. Лично я давно уже просто копипащу справочник в каждую нужную конфу и всё. Никакие более механизмы ему не нужны, всё инкапсулировано. 

По собственному опыту могу сказать, что использование справочника для организации собственных произвольных алгоритмов упрощает работу и делает многие процессы прозрачнее. Надеюсь, кому-нибудь такая штука тоже пригодится.

 

 

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    2925    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7148    user1959478    50    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    2869    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10717    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4124    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.

23.11.2022    3281    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9004    7    kalyaka    11    

44
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. marsohod 123 01.01.13 15:05 Сейчас в теме
Поскольку упомянули контроль версий, то возникает вопрос: а чем какой-нибудь SVN не подходит? Храним программные тексты в обычных текстовых файлах с очевидными именами, да еще и разные версии. Чем такой подход хуже? Или лучше? :)
2. Yashazz 4789 01.01.13 22:03 Сейчас в теме
(1) Мой подход лучше тем, что эти файлы теряются и путаются, а так всё в базе; и тем, что их иерархия в базе; и главное - тем, что на них можно делать функциональные ссылки, а не хранить имена-пути. Впрочем, как кому удобнее, естессно.
3. An-Aleksey 64 06.01.13 10:46 Сейчас в теме
А чем плохи шаблоны текстов? Или подсистема ориентирована на выполнение алгоритмов в режиме Предприятие?
4. Yashazz 4789 07.01.13 16:54 Сейчас в теме
(3) Разумеется, в режиме "Предприятие".
5. e.kogan 1895 24.08.18 15:11 Сейчас в теме +200 $m
Больше пяти лет использования - полёт нормальный )
6. leosoft 166 19.09.18 21:12 Сейчас в теме
Здравствуйте, Яков!

Меня заинтересовала Ваша обработка.
Попытался запустить ее в режиме УФ, открываю
элемент справочника "Алгоритмы" и получаю "вылет"
Переменная неопределенна (Справочники)
рТЗ = Справочники.Алгоритмы.ПостроитьТекстЗапроса();
в процедуре кнКонструкторЗапроса 63 строка.

Может уже есть новая версия?

И еще хотелось бы примеров немного - мне не понятно
что означает алгоритм до цикла, после цикла?
В каком месте цикл будет исполняться?
7. Yashazz 4789 24.09.18 19:39 Сейчас в теме
Есть и более новые версии. А что касается "до цикла/после цикла", то, насколько помню, речь идёт об алгоритме, применяемом для обработки коллекции неких объектов, когда ДО это подготовка данных, ЦИКЛ это обход коллекции, а ПОСЛЕ это обработка результатов обхода. Примерно так.
8. leosoft 166 25.09.18 10:57 Сейчас в теме
Добрый день, Яков - а можете прислать новую рабочую версию
под УФ? А то я только что скачал - а она вылетает!
Оставьте свое сообщение