Преобразование запросов

Публикация № 794859 15.03.18

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

математическая индукция объединение полное соединение эквивалентные запросы

Использование математических методов для языка запросов.

Два утверждения.

Мы все куда-то торопимся, поэтому кратко.

  1. Левое соединение с дополнительным условием в запросе SQL можно заменить внутренним соединением, если не используются функции null.
  2. Полное соединение в запросе SQL можно заменить объединением с группировкой, если поля группировки не содержат значений null.

Статья окончена, спасибо за внимание.

Пояснение.

  • Многие программисты используют эти преобразования запросов, но не задумываются об условиях применения.
  • Предполагаем, что поля таблиц СУБД не содержат null, это настройки по умолчанию:

MS https://docs.microsoft.com/ru-RU/sql/connect/ado-net/sql/handle-null-values?view=sql-server-2017

PG https://postgrespro.ru/docs/postgrespro/13/ddl-constraints#id-1.5.4.6.6

null возникают в результате (правое, левое, полное) соединения таблиц, когда условия соединения не выполняется и присоединяемые поля отсутствуют.

  • Функции null – например: (Аргумент) is null, (Аргумент)  is not null, isnull(Аргумент1, Аргумент2)

MS https://docs.microsoft.com/ru-ru/sql/t-sql/queries/is-null-transact-sql?view=sql-server-ver15

PG https://postgrespro.ru/docs/postgresql/9.6/functions-comparison

  • Два значения null никогда не равны между собой, однако если столбец группирования содержит значения NULL, они рассматриваются как равные и помещаются в одну группу.

MS https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-ver15

 
 Пример для левого соединения
 
 Предыдущая версия статьи.

 

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. bulpi 202 15.03.18 12:26 Сейчас в теме
Уважаемый, я ничего не понял. А я ведь мехмат заканчивал, хоть и давно. Зачем пытаться доказать теорему, которая явно не верна ? Результаты запросов 1 и 2 совпадают не всегда, даже при выполнении указанных условий. И Вы сами это показали в примерах. Чувствую, что я где-то туплю, но где ?
ipoloskov; starik-2005; +2 Ответить
2. vasilev2015 2426 15.03.18 12:50 Сейчас в теме
Здравствуйте ! Примеры приведены корректно: в них условия теоремы НЕ выполняются - поэтому запросы не эквивалентны. Почему считаете, что теорема не верна ? Добавил символичное вознаграждение, чтобы Вам было интереснее.
alexei366; +1 Ответить
3. vasilev2015 2426 15.03.18 14:30 Сейчас в теме
Коллеги, я вижу что не все понимают.

Извините за сухой язык изложения. Я по-другому не умею, правда.

Вместо слов "пример" поставил слова "КонтрПример" чтобы было понятнее.

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

Под это подведено математическое доказательство на уровне первого курса мехмата.

Добавил еще немного вознаграждения ))
4. TODD22 18 15.03.18 14:37 Сейчас в теме
Один из приемов оптимизации запросов - замена соединения на объединение.

А что оптимизируют таким способом? Скорость выполнения?
itriot11; +1 Ответить
5. vasilev2015 2426 15.03.18 14:44 Сейчас в теме
(4) таким образом программисты 1С помогают СУБД выбрать оптимальный план запроса, а от этого выбора фундаментально зависит скорость работы запроса и блокировки, которые могут появляться вследствие работы запроса.
6. TODD22 18 15.03.18 15:07 Сейчас в теме
(5) А сравнительные тесты методов будут? Какой вариант быстрее работает в повседневных задачах на файловой, на SQL сервере.
7. vasilev2015 2426 15.03.18 15:15 Сейчас в теме
(6)
Не будем обсуждать преимущества и недостатки такого приема - применение зависит от конкретной ситуации.

Для MS SQL сравнивать нужно в MS Profiler. Это отдельная тема.
8. TODD22 18 15.03.18 15:33 Сейчас в теме
(7) Да хотя бы простое сравнение. Без профайлера. Интересует какая реально будет разница, на одном и том же объёме данных. А так без цифр говорить об оптимизации. Чем то же её надо измерить, оптимизацию.
Не будем обсуждать преимущества и недостатки такого приема - применение зависит от конкретной ситуации.

А где можно почитать про преимущества и недостатки и для какой конкретной ситуации можно применять, а для какой не имеет смысла? Что бы для себя понять, есть ли практический смысл или нет.
9. vasilev2015 2426 15.03.18 15:37 Сейчас в теме
Вкратце, если применять левое соединение которое соответствует в плане Nested Loops, то при замене на объединение скорость увеличится в разы для достаточно большой выборки.
10. bulpi 202 16.03.18 12:59 Сейчас в теме
Все , понял, где я туплю. МАКСИМУМ(NULL) будет NULL. Возражения снял.
11. vasilev2015 2426 16.03.18 13:42 Сейчас в теме
(10) я сам долго шел к этой теореме. Сначала я задумался: почему вообще можно заменять соединение на объединение. Потом сообразил, что наборы должны быть уникальными по ключам соединения. Через несколько месяцев догадался, что можно использовать метод мат. индукции для доказательства. И еще через месяц - что нужно исключить NULL из-за его особенностей. Как написано https://technet.microsoft.com/ru-ru/library/ms191270%28v=sql.105%29.aspx
значения NULL всегда считаются равными для ключевых слов ORDER BY, GROUP BY и DISTINCT
хотя (NULL=NULL) всегда ложь.
12. bulpi 202 16.03.18 14:04 Сейчас в теме
Теперь следующий вопрос :
если применять левое соединение которое соответствует в плане Nested Loops, то при замене на объединение скорость увеличится в разы для достаточно большой выборки.


Это не вызывает возражений. Но ведь потом Вы берете группировку и функцию МАКСИМУМ. Это, по идее, должно сожрать весь выигрыш . А может, и нет. Тут нужны тесты!
13. vasilev2015 2426 16.03.18 14:14 Сейчас в теме
(12) этот способ не я придумал. Это из программы подготовки к 1С:Эксперт. Но конечно безоглядно им пользоваться не стоит. Тесты никогда не помешают. Иначе бы операции "левое соединение" не придумали ))
14. bulpi 202 16.03.18 17:50 Сейчас в теме
А я вот не поленился, и протестировал.
Результаты ... хм... неоднозначны.
На 2 таблицы по 100 000 записей выигрыш примерно в 2 раза у объединения .
Взял 2 таблицы на 1 млн записей каждая с частичным пересечением ключей. В результате соединение дало 1.5 млн записей, а объединение (до группировки) - 2 млн записей. И вот эти 2 млн не поместились в физическую оперативную память, началось использование файла подкачки и вуаля! Проигрыш в 1.5 раза. Перевернул порядок тестов, получил все таки выигрыш в 30 %.
Так что идут они лесом с этой программой 1С:Эксперт
15. vasilev2015 2426 16.03.18 21:10 Сейчас в теме
(14) Вы меня спровоцировали, нужно экспертов защищать )). Потестирую тож. Там должны быть условия специальные, например: Первый запрос - две (или более) виртуальные таблицы, обе с индексами, но при соединении должно быть nested loops (соединение циклами) - поэтому медленно. Второй запрос - таблицы объединяем, потом делаем группировки steam aggregate (один проход выборки, используется индекс). Требования по памяти одинаковые.
16. bulpi 202 17.03.18 13:48 Сейчас в теме
(15)
Я не использовал индексы. С индексами картина другая - выигрыш есть, но маленький, около 10% . Не верю , что "Требования по памяти одинаковые.". Похоже, тут закон рычага - выиграли в быстродействии, проиграли в памяти. Если ее хватает с запасом, то все хорошо. Если нет - внезапно проигрыш. Для любого значения ОП можно найти достаточное кол-во записей в таблицах такое, что этот эффект проявится.
vaskomain; +1 Ответить
19. IvSchekin 26.03.18 05:33 Сейчас в теме
(16) нет такого закона в оптимизации запросов как "выиграли в быстродействии, проиграли в памяти".
У запросов прямая зависимость времени выполнения как раз от необходимой памяти.
Если для запроса приходится сканить всю таблицу, то приходится и памяти больше использовать и по этому скорость выполнения растет.

Для скорости выполнения запросов, особенно при соединении таблиц самое важное это наличие индексов по полям по которым осуществляются связи и которые указаны в секции ГДЕ. Индексы увеличивают скорость в десятки разов на больших таблицах.
17. Hatson 494 26.03.18 00:01 Сейчас в теме
Не, Николай)) Я это лайкать не буду ))
24. vasilev2015 2426 02.04.18 11:51 Сейчас в теме
(17) Ну вот, одумался. Поставил лайк. Я заметил.
18. IvSchekin 26.03.18 05:29 Сейчас в теме
(9) Можно пояснить фразу "скорость увеличится в разы для достаточно большой выборки".
Если выборка маленькая что скорость разве не в те же разы увеличится?

В относительных величинах всегда одинаково, а вот в абсолютный действительно будет заметно так в два раза меньше для 10 минутного запроса сильно отличается от уменьшения минутного запроса.
20. vasilev2015 2426 26.03.18 09:08 Сейчас в теме
(18) Скорость увеличивается нелинейно в зависимости от размера выборки.
21. w3bstr 26.03.18 09:39 Сейчас в теме +5.1 $m
23. vasilev2015 2426 02.04.18 10:23 Сейчас в теме
(21) Спасибо за участие, но sm вернул. Мне кажется, так справедливо. Статья получилась узкоспециальная, для широкой публики не подходящая.
22. ildarovich 7509 26.03.18 11:41 Сейчас в теме
Статья интересная, постановка вопроса необычная, есть пища для размышлений...
Оставьте свое сообщение

См. также

Как работает серверный вызов в 1С Промо

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

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    74128    pahich    86    

Изменения формата файлов конфигурации (CF) в 8.3.16

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

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    2334    fishca    10    

Установка отбора по списку значений при открытии формы выбора справочника из реквизита обработки

Математика и алгоритмы v8 1cv8.cf Россия Бесплатно (free)

Описан алгоритм установки отбора по списку значений при открытии формы выбора справочника. Параметром отбора является список значений передаваемый из одной формы обработки в другую форму этой же обработки. Тестировано под платформу 8.3.18

11.12.2021    1348    prog1c_vl    4    

Что за ? в коде, или Секретный оператор в 1С

Математика и алгоритмы v8 Платформа 1C v8.2 Платформа 1С v8.1 1cv8.cf Бесплатно (free)

Инкремент, модуль и прочая магия, которая скрыта под символом "?"

21.10.2021    12509    SeiOkami    43    

Минимализмы 3 Промо

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

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

19.02.2018    51720    ildarovich    47    

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета v8 v8::DataMining Бесплатно (free)

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

31.08.2021    3371    dusha0020    8    

Практическое применение операции копирования массива

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

Решение задачи https://projecteuler.net/problem=250 из Project Euler средствами 1C.

02.08.2021    1293    scientes    2    

Запрос всей номенклатуры с характеристиками

Математика и алгоритмы v8 ERP2 УТ11 КА2 Бесплатно (free)

Сравнение различных вариантов запроса всей номенклатуры с характеристиками (УТ11.4, КА 2.4, ERP 2.4).

1 стартмани

30.07.2021    1941    Daemonold    3    

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

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

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

24.03.2014    47848    ildarovich    119    

Распределенные алгоритмы РИБ 1С

Математика и алгоритмы Обмен между базами 1C v8 Бесплатно (free)

Небольшое исследование на тему применимости классических распределённых алгоритмов репликации и синхронизации данных между узлами обмена РИБ 1С.

02.07.2021    1616    zhichkin    1    

Параллельная обработка очереди сообщений

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

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

15.06.2021    2895    zhichkin    11    

Чем воспользоваться для распознавания котиков в 1С?

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

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    4027    comol    10    

Минимализмы 2 Промо

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

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

23.02.2016    52712    ildarovich    83    

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД v8 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    4090    SergeyN    13    

Проект Эйлер в 1С. Задача №5

Математика и алгоритмы v8 1cv8.cf Россия Бесплатно (free)

Решение задачи №5 проекта Эйлер.

02.03.2021    701    VasRogov    0    

Рекурсия для начинающих

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

Рассмотрен подход к пониманию рекурсий. Приведены примеры из реальной практики.

10.02.2021    5396    szv    5    

Минимализмы Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

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

08.10.2014    96175    ildarovich    85    

Самый быстрый FizzBuzz на 1С

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

Давайте попробуем найти самое быстрое решение задачи "BuzzFizz" на 1С.

03.02.2021    1554    Donrad    23    

Программное создание корректировочного счета-фактуры выданного в УПП 1.3

Математика и алгоритмы Механизмы типовых конфигураций Запросы v8 УПП1 Россия БУ НДС Бесплатно (free)

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

17.12.2020    863    ksnik    0    

Параллельные вычисления расчета факториала числа N

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Распараллеливание алгоритма с помощью фоновых заданий (асинхронные вычисления)

29.06.2020    4540    Rustig    18    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Обмен между базами 1C v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    73214    tormozit    29    

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

Математика и алгоритмы Склад и ТМЦ v8 1cv8.cf Оптовая торговля, дистрибуция, логистика Россия УУ Бесплатно (free)

Особенности учета партионной системы при наличии двух количественных показателей.

26.03.2020    4997    lastcontra    5    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Предлагается ознакомиться с редким способом графического представления иерархических данных. Приводится алгоритм формирования и пример реализации.

18.02.2020    7272    randomus    20    

Сравнение адресов: случай из практики

Математика и алгоритмы Универсальные функции v8 Россия Бесплатно (free)

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

04.01.2020    4391    AnatolPopov    7    

Решение транспортной задачи запросом Промо

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

Списание по двум последовательностям партий запросом (без программной обработки)

1 стартмани

30.04.2014    36573    bforce    22    

[После]Новогодние задачи

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

Совсем немного времени осталось до того момента, когда отзвучат куранты, шампанское будет выпито, мандарины съедены, и даже оливье закончится. Возникнет вопрос: чем бы занять неожиданно появившееся свободное время?

30.12.2019    3648    Alxby    23    

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    29779    YPermitin    63    

Иерархия без "В ИЕРАРХИИ"

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

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    16911    ildarovich    24    

Парсер запросов 1С. Часть 1: Введение, разбор математических выражений Промо

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

Рано или поздно становится скучно решать типичные задачи, для которых придумана 1С. Голова пухнет от бухгалтерских терминов и очередных "хотелок" пользователей. Именно в такие моменты хочется гордо поднять голову, воскликнуть "Но я же программист!" и заняться чем-то интересным. В цикле статей я постараюсь доступно описать, как устроены парсеры в целом и на примере парсера языка запросов 1С. Требования к навыкам читающего: основы языка 1С, основы алгоритмизации.

1 стартмани

04.12.2013    31608    juntatalor    49    

Побитовые операции "на пальцах"

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

Простой пример для понимания того, как это работает.

02.08.2019    4370    nbeliaev    16    

Обработчики событий при записи объектов. Зачем и что за чем?

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

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    144167    AlbinaAAA    50    

FizzBuzz на 1С. Чем короче, тем веселее. Варианты принимаются...

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

Мне было скучно, я не мог себя заставить написать ничего полезного. И читал статью на Хабре. Потом я читал комментарии, а потом... нет я не ушел смотреть котиков на ютюбе. Я решил сделать несколько решений задачки FizzBuzz на 1С, с целью "чем короче, тем лучше". Прошу сильно не пинать, это просто развлечение для вечера.

24.07.2019    6326    vandalsvq    19    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

Подготовка к аттестации Математика и алгоритмы v8 Бесплатно (free)

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    51997    bpc222    54    

Что делает "В ИЕРАРХИИ" в запросе?

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

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    57525    YPermitin    34    

Создание отчетов с помощью СКД - основные понятия и элементы

Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    86095    ids79    30    

Реализуем Стек, Очередь и Приоритетную очередь в 1С

Математика и алгоритмы Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

24.06.2019    17698    RonX01    69    

v8: Концепция минимального изменения конфигурации для легкого обновления Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

"Лучше день потерять потом за пять минут долететь" ((с) "Крылья, ноги и хвосты") или как сделать так чтобы обновление конфигурации проходило с минимальными трудозатратами.

28.01.2013    39050    MarSeN    57    

Организация хранения промежуточных данных

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

Организация хранения промежуточных данных в процедуре сверки.

29.05.2019    4755    scientes    1    

Вычисление 200 тысяч знаков числа pi

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

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    10047    Oleg_nsk    97    

Парсер таблиц по шаблону. Автоматическая корректировка парсера. Представление таблиц в виде графа.

Математика и алгоритмы Работа с интерфейсом Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

25.04.2019    4325    trim89    5    

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

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

Данная публикация предназначена для начинающих разработчиков и является продолжением статьи "Обработчики событий при записи объектов. Зачем и что за чем?" (ссылка далее). Содержит пример использования несколько обработчиков событий для решения одной задачи и объясняется почему выбраны именно они.

27.09.2012    197919    AlbinaAAA    65    

Нечёткий поиск. Bitap алгоритм, модификация от Wu-Manber

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

Временами нужен нечёткий поиск в тексте, но не всегда можно использовать внешние компоненты. Данный алгоритм прост, достаточно быстр.

01.04.2019    5445    trim89    10    

Решение системы линейных уравнений

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

Пример использования объекта Расчет систем линейных уравнений.

25.03.2019    9840    scientes    9    

Обсуждение двух задач на пересечение отрезков

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

Ищем общее в частностях, или задача о пересечении отрезков.

15.03.2019    6931    scientes    16    

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML Промо

Математика и алгоритмы Файловые протоколы обмена (TXT, XML, DBF), FTP v8 1cv8.cf Бесплатно (free)

В предыдущей статье "Введение в DOM или объектная модель документа" было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML - при помощи языка запросов xPath.

09.08.2012    43770    1cspecialist    13    

Многопоточное восстановление последовательностей

HighLoad оптимизация Математика и алгоритмы Универсальные функции v8 Бесплатно (free)

Универсальный алгоритм многопоточного фонового восстановления любой последовательности.

05.12.2018    16199    _ASZ_    33    

Возврат (loop) в Алгоритмах визирования. Бит Финанс

Бюджетирование и планирование Математика и алгоритмы v8 1cv8.cf Финансовые услуги, инвестиции Россия Госбюджет Бесплатно (free)

В статье рассматривается минимальная доработка конфигурации БИТ Финанс, с сохранением поддержки, для расширения функционала Визирования: Возрат к предидущим точкам алгоритмов. Полезно будет для программистов и специалистов, занимающихся внедрением БИТ Финанс.

07.08.2018    7995    gladky    2    

Извлечение текстов модулей из внешней обработки 1С

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

Лень в очередной раз сподвигла меня на доработку существующего инструментария. В публикации опишу свой опыт парсинга бинарного файла с данными обычной формы (выгруженного с помощью функционала платформы 1С "Выгрузить в файлы").

28.04.2018    16040    zenechka    6    

От Hello world - к защите конфигураций за 1 минуту Промо

Защита ПО и шифрование Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Вы всегда хотели но боялись создать COM объект? Тогда мы идем к вам! С обычным блокнотом, где будем программировать на c#, и таймером ...

19.05.2012    36103    O-Planet    130    

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

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

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

12.03.2018    21854    ildarovich    19    

Очистка текста - в помощь копирайтеру

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

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

13.02.2018    8342    user748289    0    

Введение в CI для 1С

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

Значение роли тестирования при разработке ПО трудно переоценить, его применение позволяет повысить надёжность продукта и улучшить качество кода. Для продуктов для платформы 1С:Предприятие существует ряд инструментов для проведения тестирования, в том числе и от самого вендора. Но, также появились открытые инструменты, реализующие мировые практики проведения тестирования (проверки продукта), поддерживаемые сообществом. В этой статье описаны базовые принципы, которые необходимо понимать перед началом применения этих инструментов.

21.11.2017    25244    real_MaxA    22