Сергей

6081
Рейтинг

Сергей
ildarovich



  •   Регистрация: 19.04.2008 (10 лет назад)

  •   Был(а) на сайте: сегодня в 11:12


Группы

Профессиональный разработчик

Рейтинг 6081

"Взлом" теста "1С:Профессионал" методом машинного обучения 72

v8 1cv8.cf Абонемент ($m)

Нейронные сети – не единственная модель, реализующая принципы машинного обучения. Есть еще байесовская модель, которая математически строже и определеннее, поскольку построена на надежном фундаменте теории вероятностей. Применению байесовского вывода к решению интересной теоретической задачи и посвящена данная статья. Слово "взлом" в заголовке использовано для привлечения внимания. Речь идет исключительно о математическом методе, показанном на примере знакомой всем задачи. 

12.03.2018    8509    18    

Минимализмы 3 280

v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    15834    33    

Простой способ индексирования интервалов 164

v8 Абонемент ($m)

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

1 стартмани

28.09.2016    21761    22    

Простая и быстрая эмуляция операций с битовыми строками 61

v8 Бесплатно (free)

Битовые строки могли бы упростить реализацию некоторых алгоритмов на языке платформы «1С: Предприятие 8». Но пока в платформе операций с битовыми строками нет. В то же время уже сделанные попытки смоделировать эти операции преобразованиями над числами опираются на циклы обработки отдельных битов, что плохо сказывается на скорости их работы. Предлагается новое простое решение, основанное на представлении битовых строк строками символов «0» и «1». Приводится примеры кода выполнения основных логических операций AND, OR, XOR, NO без использования циклов. В качестве прикладной задачи рассмотрено получение последовательных значений кода Грэя, который можно использовать для ускорения перебора вариантов.

22.06.2016    19675    14    

Настраиваемый генератор числовой последовательности для запроса 43

v8 Бесплатно (free)

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

08.05.2016    11549    6    

Еще один способ расчета остатков на каждый день в запросе 123

v8 Абонемент ($m)

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

1 стартмани

24.04.2016    20969    38    21    

Минимализмы 2 311

v8 Бесплатно (free)

Следующая серия "минимализмов" [http://infostart.ru/public/306536/]. Также, как и в предыдущей статье, здесь приведена подборка коротких оригинальных решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

23.02.2016    35566    80    

Поиск пропусков в нумерации документов запросом 32

v8 1cv8.cf Абонемент ($m)

Предлагается отчет на основе системы компоновки данных для выявления нарушений последовательности нумерации документов. Применяются методы из статей "Выразить строку как число и строку как дату в запросе" [http://infostart.ru/public/170336/] и "Быстрое определение интервалов в запросе" [http://infostart.ru/public/402534/]. Это позволяет решить задачу быстро и непосредственно в запросе.

1 стартмани

24.12.2015    14734    26    10    

Быстрое определение интервалов в запросе 167

v8 Абонемент ($m)

В статье описывается новый метод определения интервалов между данными различных записей в запросе. В отличие от общеизвестного метода, время работы предлагаемого метода зависит от объема данных ЛИНЕЙНО. Это обеспечивает ему значительный выигрыш по быстродействию на больших объемах данных. В качестве иллюстрации возможностей метода приведен отчет, показывающий гистограмму распределения времени между продажами.

1 стартмани

01.10.2015    29943    31    40    

Расчет хэш-функции в запросе 133

v8 1cv8.cf Бесплатно (free)

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

20.03.2015    41966    39    

Выразить число как строку и дату как строку в запросе 302

v8 1cv8.cf Бесплатно (free)

Предлагается новый и более компактный метод преобразования даты и числа в строку в запросе

22.02.2015    74267    51    

Лучшие методы сравнения таблиц значений 281

v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.02.2015    65998    45    47    

Минимализмы 569

v8 1cv8.cf Бесплатно (free)

Приводится подборка кратчайших решений некоторых задач. Ранее эти решения были разбросаны по комментариям к чужим публикациям.

08.10.2014    61795    82    

Расчет вероятностей запросом 58

v8 1cv8.cf Абонемент ($m)

Предлагается метод расчета вероятностей сложных событий с использованием языка запросов. Метод иллюстрируется примерами решения трех задач: расчет вероятности сдачи теста «1С: Профессионал», расчет вероятности отказа дискового массива RAID-10, расчет вероятности критического превышения сроков выполнения проекта. Все описанные решения можно протестировать с помощью прилагаемого отчета.

1 стартмани

20.09.2014    14480    5    8    

Запрос – комбинатор 44

v8 Абонемент ($m)

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

1 стартмани

07.08.2014    16831    24    16    

КопиПастаМер 164

v8 1cv8.cf Абонемент ($m)

Предлагается отчет, который за приемлемое время находит и показывает ВСЕ повторяющиеся фрагменты в текстах программных модулей анализируемой конфигурации. Приводятся подробности реализации отчета, основанного на алгоритме Манбера и Майерса построения суффиксного массива и на алгоритме Касаи построения LCP-массива. В данной реализации поиск повторов ведется до уровня строк. Отчет можно применять для определения повторяющихся последовательностей строк и в любых других текстах.

1 стартмани

30.07.2014    29850    160    73    

Компаратор оборотов в информационных базах 60

v8 1cv8.cf Абонемент ($m)

Простой, универсальный, удобный и очень быстрый инструмент для сравнения оборотов в двух информационных базах через COM-соединение. В отчете на указанном интервале поиска выделяются все интервалы, на которых обороты по заданному регистру различаются. Это делается методом половинного деления. В этих интервалах показываются регистраторы, имеющие различающиеся обороты. Универсальность достигается возможностью выбора контролируемого регистра (включая регистр бухгалтерии), набора учитываемых при сравнении ресурсов выбранного регистра, отбора по организации и возможностью задания списка контролируемых счетов.

1 стартмани

04.05.2014    20595    143    40    

Наш ответ американским лекторам 41

v8 1cv8.cf Абонемент ($m)

Это спойлер к замечательной публикации «Алгоритмы. Часть 1.1. Динамические соединения». Здесь описывается гораздо более быстрый способ решения задачи динамического связывания при отсутствии ограничений на используемые структуры данных

1 стартмани

11.04.2014    17123    7    36    

Определение кратчайших путей, критических путей одним запросом 101

v8 1cv8.cf Абонемент ($m)

Еще два примера применения алгоритма каскадного матричного умножения, впервые описанного в статье «Транзитивное замыкание запросом» http://infostart.ru/public/158512/

1 стартмани

07.04.2014    27107    57    30    

Будни автоматизации или "мне нужна программка для 3D упаковки" 172

v8 1cv8.cf УУ Оптовая торговля Бесплатно (free)

Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: "Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: "Ну, папа, пожалуйста, сделай мне кораблик!", папа отвечает: "Ага! - Сейчас все брошу и пойду делать тебе кораблик!". Про один такой сделанный для клиента "кораблик" и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

24.03.2014    34571    114    

Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали 217

v8 v8::СКД КА1 УТ10 УПП1 УУ Дебиторская и кредиторская задолженность Абонемент ($m)

Предлагается метод для быстрого нахождения неоплаченных долгов при распределении оплаты по правилу ФИФО, основанный на дихотомии. Описывается реализация метода в виде достаточно простого запроса, решающего за линейное время указанную задачу, считавшуюся ранее существенно более трудоемкой. Приводятся примеры использования запроса в отчетах на СКД для конфигураций УТ, КА, УПП.

1 стартмани

28.02.2014    50451    95    

"Возраст" остатков номенклатуры 20

v8 УТ10 УПП1 УУ Оптовая торговля Учет ТМЦ Абонемент ($m)

Отчет показывает остатки номенклатуры с дополнительным делением по длительности нахождения ("возрасту") номенклатуры на складе. Отчет построен на основе СКД и предназначен для конфигураций, содержащих регистр накопления "ТоварыНаСкладах" (УТ10.3, УПП 1.3 и т.п.).

1 стартмани

27.01.2014    16458    134    6    

Баттерфляй - метод быстрого расчета нарастающего итога в запросе 207

Абонемент ($m)

Описывается метод предельно быстрого расчета нарастающего итога в запросе для случая, когда суммируемые строки таблицы пронумерованы. В качестве только одного из возможных примеров использования метода приведен отчет по остаткам номенклатуры на каждый интервал (минуту, час, день, месяц, квартал,год) заданного периода.

1 стартмани

20.09.2013    50077    47    

Агрегатное суммирование строк в запросе – сложно, но не невозможно 101

v8 Абонемент ($m)

Описывается метод соединения строк из одной колонки таблицы в единую результирующую строку в запросе на языке 1С. Метод сложный и по сравнению с внезапросной техникой представляет больше спортивный, чем практический интерес.

1 стартмани

09.09.2013    53311    53    

Рефакторинг без тормозов (десять приемов в одной задаче) 48

v8 Абонемент ($m)

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

1 стартмани

06.09.2013    15807    50    

Как нарисовать граф на 1С 362

v8 Абонемент ($m)

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

1 стартмани

09.08.2013    49950    112    

Выразить строку как число и строку как дату в запросе 224

v8 1cv8.cf Абонемент ($m)

Приведены и прокомментированы запросы, помогающие решать указанные задачи в составе пакетных запросов. Отличием от других известных решений является простая структура, относительная компактность, высокие быстродействие и устойчивость к ошибкам исходных данных. Применяется техника искусственных таблиц, изначально упомянутая в статье "Порождающий запрос" [http://infostart.ru/public/90367/].

1 стартмани

24.01.2013    64916    51    

Новый запрос и новая таблица значений как функции 160

v8 Абонемент ($m)

Предлагается две простые функции, использование которых уменьшает объем кода в конфигурациях на платформе «1С:Предприятие 8». Эти функции можно добавлять к своему общему модулю, что сделает процесс программирования более эффективным.

1 стартмани

27.11.2012    35458    46    

Опять двойка! 55

Абонемент ($m)

Продолжение тем, связанных с использованием степеней двойки «Порождающий запрос» [http://infostart.ru/public/90367/], «Транзитивное замыкание запросом» [http://infostart.ru/public/158512/]. На этот раз речь пойдет об операциях со строками.

1 стартмани

26.11.2012    23241    30    

Уровни, глубина, прародители, циклы и аналоги запросом 350

v8 1cv8.cf Абонемент ($m)

В продолжение публикации «Транзитивное замыкание запросом» [http://infostart.ru/public/158512/] добавлены другие варианты использования того же приема. Приведены запросы для быстрого определения уровней всех элементов справочника, максимальной глубины справочника, прародителей произвольных элементов справочника, запрос для быстрого определения циклов (на примере справочника спецификаций «1С:Управление производственным предприятием») и определения множеств аналогов номенклатуры (также на примере конфигурации «1С:Управление производственным предприятием»).

1 стартмани

13.11.2012    85830    94    

Транзитивное замыкание запросом 284

v8 1cv8.cf Абонемент ($m)

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

1 стартмани

29.10.2012    60437    109    

Расчет средних по периодам в запросе - это элементарно! 145

v8 1cv8.cf Россия Абонемент ($m)

Распространено мнение, что расчет средних по периодам в запросе - это сложно. В статье приводится прием, позволяющий опровергнуть это заблуждение. Приводится описание метода, его обоснование и ограничения использования. Как примеры прилагаются два практичных отчета на СКД: для расчета среднедневных остатков товаров и для расчета среднедневной задолжности контрагентов. Отчеты созданы на платформе 8.1 для конфигурации УТ10.3 .

1 стартмани

29.09.2011    48812    154    32    

Игра "Жизнь" в одном запросе 81

v8 1cv8.cf Россия Абонемент ($m)

В статье приводится запрос, одного которого достаточно, чтобы реализовать всю механику игры "Жизнь" (http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) на бесконечном поле. Запрос основан на технике искусственных таблиц, применяемой также в примерах из http://infostart.ru/public/90367/. Приведен отчет-игра "Эволюция", реализующий игровой процесс на основе рассматриваемого запроса. Отчет не привязан к метаданным и должен работать в любой конфигурации.

1 стартмани

24.09.2011    14311    71    12    

Порождающий запрос 245

v8 1cv8.cf Абонемент ($m)

Иногда в запросе необходимо получить искусственную таблицу заданного размера, не связанную с данными информационной базы. Эта получаемая «из воздуха» таблица может быть заполнена, например, числами натурального ряда или функционально связанными с ними значениями. Такая таблица может пригодится как временная таблица в запросе для соединения с реальными таблицами. Другой вариант – быстрое получение таблиц значений заданного размера, списков, массивов и прочее. В последних версиях MS-SQL есть возможности непроцедурной генерации таблиц посредством специального «итеративного» описания. Ну а для 1С пригодится следующее решение:

1 стартмани

15.09.2011    51205    148    85    

Эффективная обработка данных в оперативной памяти за счет использования коллекции "соответствие" 234

v8 1cv8.cf Россия Абонемент ($m)

Разработчики, перешедшие с 7-ки на 8-ку по привычке продолжают использовать универсальные коллекции "список значений", "таблица значений" в задачах, которые в 8-ке существенно быстрее решаются с использованием новой коллекции "соответствие". Эта статья для тех, кто еще не оценил всех преимуществ новой структуры данных. Статья позволит создавать Вам максимально быстрые программы. Приведено несколько примеров, в том числе, решение для задач на графах.

1 стартмани

11.12.2010    37093    39    

Как не «попасть на миллион», решая задачу разузлования 47

v8 1cv8.cf Россия Абонемент ($m)

Часто, столкнувшись с долгим временем выполнения какого-либо фрагмента кода, мы начинаем искать технологические программные решения: переносить вычисления в СУБД, либо в оперативную память, устранять неявные запросы в циклах, применять другие известные приемы оптимизации или просто ругать платформу. Хотя на самом деле проблема может быть всего лишь в неверно выбранном алгоритме. В статье рассказывается об одном таком случае, возникшем при решении задачи «разузлования». Надеюсь, прочитав эту статью и ознакомившись с текстом варианта программы, построенной по давно известному алгоритму, Вы избежите подобных ошибок. Тем более программа получилась совсем небольшой.

1 стартмани

21.11.2010    24885    175    52    

Еще один взгляд на проблему «жизнь без последовательностей». Часть вторая (практическая) 63

v8 КА1 БП2.0 УТ10 Розница УПП1 УНФ Россия Абонемент ($m)

В [1 - http://infostart.ru/public/62938/] был предложен метод корректировки списаний по партиям при изменении документов задним числом. Использование данного метода позволяет контролировать остатки при неоперативном проведении и поддерживать учет по партиям всегда в актуальном состоянии, то есть обходиться без механизма последовательности документов. Собственно метод заключался в решении задачи правильного списания по партиям как задачи линейного программирования. В доказательство работоспособности метода приводится следующая «каркасная» конфигурация «Полигон», в которой этот метод реализован.

1 стартмани

19.08.2010    20873    165    35    

Отбор по ОКАТО для ЗУП для документа "Сведения о доходах физлиц" 8

v8 ЗУП2.5 Зарплата Абонемент ($m)

Эта микрообработка оставляет в табличной части документа "Сведения о доходах физлиц" только физлиц с выбранным ОКАТО. Подключается как внешняя обработка заполнения табличных частей.

1 стартмани

10.02.2010    13702    81    8    

Еще один взгляд на проблему "жизнь без последовательностей" 20

Россия Бесплатно (free)

Предлагаю свой взгляд на решение проблемы "документы без последовательности". Решение навеяно обсуждениями http://infostart.ru/public/62785/ и http://infostart.ru/forum/forum11/topic28666/. Даже попытался описать его там (152). Теперь думаю, что оно может быть опубликовано и самостоятельно. Я считаю это решение теоретически исчерпывающим и готовым к практическому воплощению, а что скажете Вы?

21.12.2009    13795    23    

Бухгалтерские проводки в программе "Управление торговлей" 32

v8 УТ10 Россия БУ Абонемент ($m)

При внедрении связки УТ и БП часто приходится слышать вопрос пользователей УТ: "Где можно посмотреть бухгалтерские проводки?". Выслушав объяснения, что теперь проводки только в БП, пользователи делают простой вывод: "В УТ нет проводок! Нам недодали! В ТиС77 проводки были!". В этом свете крутизна УТ несколько меркнет. Однако в случае обмена УТ и БП через прямое подключение существует простой выход: получить проводки из БП через COM-соединение. При автоматическом обмене это выглядит особенно эффектно. Пользователи просто видят проводки там, где хотели! Прилагаемая внешняя печатная форма реализует предложенный подход.

1 стартмани

03.10.2009    19274    277    14    

Комментарии

Новости«1С» представила новый механизм для решения линейных алгебраических уравнений#20 13.08.18 11:53
Нужная вещь, удивлялся: почему раньше не сделали?
БУКомпаратор оборотов в информационных базах#40 26.07.18 14:41
(39) Возможность то есть, но ... сравнение ведется по регистрам одинакового наименования и одинаковой структуры, и, так как таких регистров, наверное, немного, то использование этого режима весьма ограничено.

Можно легко доработать на конкретный случай. Многие, судя по всему, это уже делали.

Когда я разрабатывал эту вещь, не придумал удобного и наглядного интерфейса для сопоставления сравниваемых регистров, поэтому и не стал делать обработку еще более универсальной.
DevНеоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали#94 02.07.18 12:38
(93) на самом деле доцент, кандидат технических наук, в повседневной жизни занимаюсь внедрением 1С, программирую
DevИерархическая диаграмма#2 18.06.18 10:51
Это должно быть в платформе, надеюсь, когда-нибудь появится.
DevПосчитать количество ночных минут работы сотрудников запросом.#7 07.06.18 13:05
(6) в варианте (4) возвращается 60
DevПосчитать количество ночных минут работы сотрудников запросом.#4 07.06.18 11:20
(3) Этот вариант действительно лучше, так как искусственная таблица минут как в (2) в этой задаче ни к чему.
Но можно гораздо короче (ввод данных как в (2) и (3)):
Код
ВЫБРАТЬ
   Сотрудник,
   ДатаВремяНачала,
   ДатаВремяОкончания,
   РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДатаВремяНачала, ЧАС, 2), ДОБАВИТЬКДАТЕ(ДатаВремяОкончания, ЧАС, 2), ДЕНЬ) * 480 - ВЫБОР
      КОГДА ЧАС(ДОБАВИТЬКДАТЕ(ДатаВремяНачала, ЧАС, 2)) > 7
         ТОГДА 480
      ИНАЧЕ ЧАС(ДОБАВИТЬКДАТЕ(ДатаВремяНачала, ЧАС, 2)) * 60 + МИНУТА(ДатаВремяНачала)
   КОНЕЦ + ВЫБОР
      КОГДА ЧАС(ДОБАВИТЬКДАТЕ(ДатаВремяОкончания, ЧАС, 2)) > 7
         ТОГДА 480
      ИНАЧЕ ЧАС(ДОБАВИТЬКДАТЕ(ДатаВремяОкончания, ЧАС, 2)) * 60 + МИНУТА(ДатаВремяОкончания)
   КОНЕЦ КАК НочныеМинуты
ИЗ
   Данные
Результаты те же.

Здесь две идеи:
1) Считать ночные минуты лучше "по екатеринбурскому времени" (с плюсом два часа), так как тогда ночное время будет с 0 до 8;
2) Ночные минуты интервала можно считать, отнимая ночные минуты до левого края интервала от ночных минут до правого края интервала. Та же идея применялась в решении задачи 71 из Минимализмов 3.

Можно заметить много повторных вычислений в выражении для ночных минут:
трижды повторяется
Код
ДОБАВИТЬКДАТЕ(Данные.ДатаВремяНачала, ЧАС, 2)

и
Код
ДОБАВИТЬКДАТЕ(Данные.ДатаВремяОкончания, ЧАС, 2)

по два раза
Код
ЧАС(ДОБАВИТЬКДАТЕ(Данные.ДатаВремяНачала, ЧАС, 2)) 
и
Код
ЧАС(ДОБАВИТЬКДАТЕ(Данные.ДатаВремяОкончания, ЧАС, 2)) 
В первом случае выручит вложенный запрос, во втором - вычисление агрегатного максимума (ВЫБОР по сути вычисляет максимум).

Но, сокращаясь по числу символов, запрос удлинняется в строках, поэтому лучше оставить так как есть.
DevЛучшие методы сравнения таблиц значений#47 31.05.18 14:38
(46) Слишком много преобразований, это будет совсем не "лучший" метод.
Кроме того, когда выполняется свертка по списку полей (речь идет о рассмотренном в публикации методе "свертка и сортировка"), платформа, думаю, как раз и считает тот же самый хэш, который вы предлагаете считать "вручную". Чтобы быстро находить группу, к которой должна отнестись строка.
DevСтроим графы средствами 1С (без GraphViz)#9 24.05.18 13:51
(8) Ну, если хотите спорить, уточню. Конкретно меня зацепили вот эти слова:
Цитата
Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С.
Поэтому я и привел две ссылки в ответ на слова "практически нет".
А с точки зрения минимизации пересечений ориентированный граф или нет - разницы мало.
DevСтроим графы средствами 1С (без GraphViz)#7 24.05.18 12:01
Приведу ссылку на свое решение, которое здесь почему-то не упомянуто:
"Как нарисовать граф на 1С".
Тогда поддержки SVG еще не было, поэтому стрелки на связях не рисовались.
Сейчас это нетрудно исправить.
Также интересно решение из Анализатор сложных запросов (консоль запросов с графом), где автор потратил немало времени (по его словам) на практическое решение той же, только чуть более конкретной задачи и получил красивый результат.