Сергей

5910
Рейтинг

Сергей
ildarovich



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

  •   Был(а) на сайте: вчера в 16:02


Группы

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

Рейтинг 5910

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

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

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

12.03.2018    6127    18    

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

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

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

19.02.2018    10001    32    

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

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

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

1 стартмани

28.09.2016    17857    22    

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

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

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

22.06.2016    16957    14    

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

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

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

08.05.2016    9929    6    

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

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

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

1 стартмани

24.04.2016    18419    33    21    

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

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

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

23.02.2016    32294    80    

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

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

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

1 стартмани

24.12.2015    12755    26    10    

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

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

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

1 стартмани

01.10.2015    25957    30    34    

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

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

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

20.03.2015    39198    39    

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

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

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

22.02.2015    66575    48    

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

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

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

1 стартмани

02.02.2015    58985    41    44    

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

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

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

08.10.2014    57189    79    

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

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

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

1 стартмани

20.09.2014    13164    5    8    

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

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

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

1 стартмани

07.08.2014    15255    23    16    

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

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

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

1 стартмани

30.07.2014    26552    157    71    

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

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

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

1 стартмани

04.05.2014    18069    140    38    

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

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

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

1 стартмани

11.04.2014    15413    7    36    

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

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

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

1 стартмани

07.04.2014    24545    54    30    

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

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

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

24.03.2014    31577    114    

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

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

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

1 стартмани

28.02.2014    45754    90    

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

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

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

1 стартмани

27.01.2014    14842    133    6    

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

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

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

1 стартмани

20.09.2013    46689    47    

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

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

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

1 стартмани

09.09.2013    48385    53    

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

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

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

1 стартмани

06.09.2013    14260    50    

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

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

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

1 стартмани

09.08.2013    45609    111    

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

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

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

1 стартмани

24.01.2013    60867    51    

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

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

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

1 стартмани

27.11.2012    32074    46    

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

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

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

1 стартмани

26.11.2012    21252    30    

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

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

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

1 стартмани

13.11.2012    79890    93    

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

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

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

1 стартмани

29.10.2012    56007    109    

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

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

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

1 стартмани

29.09.2011    44484    152    31    

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

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

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

1 стартмани

24.09.2011    12867    71    12    

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

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

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

1 стартмани

15.09.2011    47010    148    85    

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

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

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

1 стартмани

11.12.2010    34327    38    

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

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

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

1 стартмани

21.11.2010    22598    173    52    

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

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

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

1 стартмани

19.08.2010    18718    165    35    

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

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

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

1 стартмани

10.02.2010    12308    81    8    

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

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

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

21.12.2009    12088    23    

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

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

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

1 стартмани

03.10.2009    17421    277    14    

Комментарии

DevМинимализмы 3#19 10.04.18 13:14
(18) Сомневаться нужно, но, чтобы сделать выводы, нужны замеры. "Лишнего" расхода ОЗУ, нагрузки на процессор (видимо, имеется ввиду работа со структурой для работы сборщика мусора). Просто сказать "наилучшим решением будет" в данном случае недостаточно. Выигрыш приема из (69) был настолько большим (в моих измерениях), что его указанные минусы не перекрывают. - Попробуйте сделать замеры сами!
DevПомогите найти потерянную задачу#8 02.04.18 13:54
Всем спасибо. Нашел задачу сам. Вто она: НЛО
DevПомогите найти потерянную задачу#7 02.04.18 12:01
Нашел похожую по математике задачу, но там формулировки и ограничения другие, да и тестирования решений нет. Называется Alien Abduction. Пока ищу дальше и жду подсказок.
DevПомогите найти потерянную задачу#5 31.03.18 18:42
(3) Пытался делать это, но проблема в том, что я запомнил суть задачи, а саму фактуру - нет.
Толи речь шла о подсчете космических кораблей в пространстве, то ли еще каких-то объектов. Сейчас вообще стал сомневаться, а на русском ли языке была задача, возможно, язык был английский. Еще, что я запомнил, что там были отрейтингованные по времени участники и решения.
DevПомогите найти потерянную задачу#4 31.03.18 18:35
(2) Спасибо, просмотрел практически все задачи из указанного обсуждения, включая задачи по ссылкам https://www.e-olymp.com/ru/problems и http://acmp.ru/ . Нужной задачи не нашел.
DevПомогите найти потерянную задачу#1 29.03.18 12:49
Некоторое время назад в одном из обсуждений видел ссылку на сайт типа codeforces.com или Timus Online Judge или acmp.ru и задачу, смысл которой был примерно такой:
Имеется плоскость 256 х 256 клеток, в которых появляются и исчезают объекты. Требуется составить самую быстродействующую программу, которая позволит учитывать количество объектов в клетках и быстро отвечать на вопрос, сколько объектов находится в прямоугольниках с задаваемыми при каждом запросе координатами.
Задача показалась очень интересной, сейчас вроде бы есть решение, но теперь не могу найти куда записал ссылку на задачу. Возможно, откликнется участник обсуждения или кто другой, кто видел эту задачу.
DevТеорема номер тринадцать#22 26.03.18 11:41
Статья интересная, постановка вопроса необычная, есть пища для размышлений...
DevПрименение нейронных сетей в прикладных решениях на платформе 1С#48 22.03.18 15:46
(38)(41)(45) На всякий случай (если еще не обратили внимание) вставлю сюда ссылку на статью "Взлом" теста "1С:Профессионал" методом машинного обучения, где решение описано более подробно и приведена обработка для проверки.
DevВыразить число как строку и дату как строку в запросе#46 22.03.18 13:27
(45) А что получается, если просто
Код
ВЫБРАТЬ Год(&Дата)
DevКак уже в запросе объединить число и строку?#52 15.03.18 16:38
(45) Если очень нужно и именно в запросе, то в статье Выразить число как строку и дату как строку в запросе написано как это сделать. Там не такое уж громоздкое выражение получается (по сравнению с выделением разрядов делением как предлагается в (49)).
Кстати, в (41) предлагается решение именно из указанной статьи.

(49) Все же это не единственный метод - посмотрите статью по ссылке.