Сергей

6020
Рейтинг

Сергей
ildarovich



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

  •   Был(а) на сайте: 13.07.2018


Группы

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

Рейтинг 6020

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

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

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

12.03.2018    7911    18    

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

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

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

19.02.2018    14103    33    

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

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

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

1 стартмани

28.09.2016    20734    22    

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

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

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

22.06.2016    19075    14    

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

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

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

08.05.2016    11141    6    

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

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

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

1 стартмани

24.04.2016    20297    38    21    

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

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

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

23.02.2016    34797    80    

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

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

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

1 стартмани

24.12.2015    14232    26    10    

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

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

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

1 стартмани

01.10.2015    28911    31    40    

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

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

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

20.03.2015    41439    39    

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

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

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

22.02.2015    71625    50    

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

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

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

1 стартмани

02.02.2015    64388    44    47    

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

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

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

08.10.2014    60664    81    

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

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

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

1 стартмани

20.09.2014    14127    5    8    

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

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

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

1 стартмани

07.08.2014    16392    23    16    

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

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

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

1 стартмани

30.07.2014    29092    160    73    

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

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

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

1 стартмани

04.05.2014    19974    141    38    

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

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

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

1 стартмани

11.04.2014    16679    7    36    

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

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

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

1 стартмани

07.04.2014    26512    56    30    

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

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

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

24.03.2014    33820    114    

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

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

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

1 стартмани

28.02.2014    49354    93    

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

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

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

1 стартмани

27.01.2014    16016    133    6    

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

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

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

1 стартмани

20.09.2013    49188    47    

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

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

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

1 стартмани

09.09.2013    52032    53    

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

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

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

1 стартмани

06.09.2013    15367    50    

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

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

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

1 стартмани

09.08.2013    48600    112    

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

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

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

1 стартмани

24.01.2013    63872    51    

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

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

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

1 стартмани

27.11.2012    34664    46    

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

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

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

1 стартмани

26.11.2012    22694    30    

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

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

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

1 стартмани

13.11.2012    84432    94    

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

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

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

1 стартмани

29.10.2012    59418    109    

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

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

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

1 стартмани

29.09.2011    47826    153    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    13927    71    12    

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

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

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

1 стартмани

15.09.2011    50327    148    85    

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

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

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

1 стартмани

11.12.2010    36354    38    

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

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

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

1 стартмани

21.11.2010    24286    175    52    

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

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

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

1 стартмани

19.08.2010    20351    165    35    

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

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

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

1 стартмани

10.02.2010    13359    81    8    

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

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

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

21.12.2009    13340    23    

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

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

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

1 стартмани

03.10.2009    18805    277    14    

Комментарии

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 еще не было, поэтому стрелки на связях не рисовались.
Сейчас это нетрудно исправить.
Также интересно решение из Анализатор сложных запросов (консоль запросов с графом), где автор потратил немало времени (по его словам) на практическое решение той же, только чуть более конкретной задачи и получил красивый результат.
DevБыстрое определение интервалов в запросе#36 14.05.18 10:52
Задача кажется интересной, нужной, сложной, но данных для выбора способа решения недостаточно.
Нужно знать структуру полей таблицы, возвращаемой по запросу из Виалон, метод определения стоимости запроса (стоимость определяется или числом запросов, числом строк в запросе, числом объектов и прочее), а также структуру регистра для хранения полученных данных в 1С.
DevПомогите придумать алгоритм#8 25.04.18 22:51
(5)(6)(7) Погорячился, пожалуй. Тут, оказывается (понял после критики решения из (2)), нельзя разбивать строки.
Тогда это более сложная задача целочисленного программирования типа транспортной, но с целыми значениями переменных (о назначениях?).

При небольшом количестве можно решать перебором. Тогда нужно знать, есть ли ограничения на количества строк с одним артикулом в ТЗ1 и ТЗ2. Если ПРОИЗВЕДЕНИЕ максимального числа строк по одному артикулу в ТЗ1 на максимальное число строк по одному артикулу в ТЗ2 меньше 20, то можно решить перебором, иначе - более сложные методы типа динамического программирования. Проблема в том, что придется выполнять возвраты при неудачных связываниях.

А вообще тут любят давать задачи, оставив лишь "математику". Тогда как реально интересна практическая суть задачи. Будет понятно, то ли это бессмысленная учебная задача, то ли практическая, на которую есть смысл тратить время.