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

Публикация № 794859 Дата создания: 15.03.18 09:42

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

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

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

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

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

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

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

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

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

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

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

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

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

А где можно почитать про преимущества и недостатки и для какой конкретной ситуации можно применять, а для какой не имеет смысла? Что бы для себя понять, есть ли практический смысл или нет.
9. vasilev2015 2209 15.03.18 15:37 Сейчас в теме
Вкратце, если применять левое соединение которое соответствует в плане Nested Loops, то при замене на объединение скорость увеличится в разы для достаточно большой выборки.
10. bulpi 184 16.03.18 12:59 Сейчас в теме
Все , понял, где я туплю. МАКСИМУМ(NULL) будет NULL. Возражения снял.
11. vasilev2015 2209 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 184 16.03.18 14:04 Сейчас в теме
Теперь следующий вопрос :
если применять левое соединение которое соответствует в плане Nested Loops, то при замене на объединение скорость увеличится в разы для достаточно большой выборки.


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

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

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

См. также

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

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

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    41664    ids79    45    

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

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

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

02.07.2021    881    zhichkin    1    

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

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

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

12.04.2021    2882    comol    9    

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

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

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

10.02.2021    1598    szv    5    

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

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

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

18.11.2017    63944    pahich    83    

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

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

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

26.03.2020    4179    lastcontra    5    

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

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

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

28.02.2020    2439    real_MaxA    1    

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

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

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

18.02.2020    6106    randomus    20    

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

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

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

24.03.2014    46152    ildarovich    116    

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

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

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

30.12.2019    3334    Alxby    23    

Регистры бухгалтерии. Общая информация

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

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    40614    YPermitin    25    

"Хочу универсально!" [Часть 1]

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

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

02.09.2019    10530    SeiOkami    35    

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

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

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

07.08.2015    70141    tormozit    28    

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

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

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

22.08.2019    14339    ildarovich    24    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    17853    ids79    8    

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

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

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

25.07.2019    94298    AlbinaAAA    33    

XDTO - это просто Промо

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

С появлением платформы 8.1 фирма “1С” представила механизм, носящий интригующее название XML Data Transfer Objects или, если коротко - XDTO. По традиции, документирование механизма составлял тот, кто хорошо разбирался в вопросе, а стало быть опустил “и так понятные” с его точки зрения моменты. Целью данной статьи (или цикла статей, как получится) стало желание поделиться накопленным опытом. Мне кажется, многие неочевидные вещи в механизме XDTO необходимо осветить получше.

24.12.2012    321229    Evil Beaver    182    

Как проводятся документы в типовых конфигурациях от 1С

Математика и алгоритмы Практика программирования Разработка v8::ОУ ERP2 УТ11 Россия УУ Бесплатно (free)

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    33790    skv_79    35    

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

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

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

24.07.2019    5876    vandalsvq    19    

Управление качеством кода

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

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    18795    Stepa86    40    

Самоучитель языка запросов 1С. Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 v8::Запросы Бесплатно (free)

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    113670    bpc222    327    

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

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

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

16.07.2019    40686    YPermitin    34    

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

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

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

25.06.2019    69445    ids79    27    

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

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

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

24.06.2019    15847    RonX01    66    

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

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

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

1 стартмани

30.04.2014    35876    bforce    22    

Почему вообще работает мой запрос? или Ещё раз о планах запросов

Математика и алгоритмы Практика программирования Разработка v8::Запросы Бесплатно (free)

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    10105    DataReducer    12    

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

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

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

29.05.2019    4481    scientes    1    

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

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

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

28.05.2019    8994    Oleg_nsk    97    

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

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

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

1 стартмани

04.12.2013    31161    juntatalor    49    

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты

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

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    40268    YPermitin    8    

Даем названия переменным: как префиксы экономят наше время

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

Понятные названия переменных экономят время и силы разработчика : в начале, когда мы даём названия переменным, в процессе развития разработки, когда мы "на лету" понимаем назначение той или иной переменной, в конце, когда мы передаём разработку на поддержку других программистов, сами переходя к новым разработкам

06.05.2019    8419    Designer1C    81    

Заметки по SQL: Срез последних - аналог запроса

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

В статье описывается создание среза последних данных средствами классического языка запросов. Причем метод построения запроса был разработан еще во времена, когда автор работал с СУБД Oracle 9i и программировал на PL SQL. Основная идея заключается преобразовании запроса с подзапросом, в запрос без подзапроса (в примерах описывается преобразование до двух вложенных подзапросов). Запросы тестировались на реальных базах данных. Платформа - 1С:Предприятие 8.3 (8.3.10.2561).

15.01.2019    13643    IVC_goal    16    

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

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 Бесплатно (free)

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

27.06.2013    50989    bpc222    53    

Короткое нагрузочное тестирование PostgreSQL простыми запросами

Нагрузочное тестирование v8::УФ Абонемент ($m)

Короткое нагрузочное тестирование PostgreSQL простыми запросами. Прилагаются результаты в файлах pgBadger и perfmon.

1 стартмани

10.12.2018    11443    vasilev2015    22    

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

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

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

05.12.2018    14701    _ASZ_    33    

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

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

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

28.01.2013    38598    MarSeN    57    

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C

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

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

23.08.2018    45474    Rain88    49    

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

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

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

12.03.2018    20609    ildarovich    19    

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

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

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

21.11.2017    24533    real_MaxA    22    

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

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

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

27.09.2012    196439    AlbinaAAA    65    

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода

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

Зачастую почти любой модуль в 1С содержит от одного до несметного множества вызовов других модулей. Как с этим бороться, чтобы было проще куда-то что-то переносить - в этом посте.

12.10.2017    18171    for_sale    58    

Пишем игру Минер. Обработка событий ActiveX в 1С

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

Пример демонстрирует обработку событий генерируемых компонентой ActiveX в 1С.

29.05.2017    15019    user621724_Dimav1979    12    

Как я доступ на kb.1c.ru получал

Решение задач на 1С:Специалист Математика и алгоритмы v8 Россия Бесплатно (free)

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    27569    ikekoval    34    

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

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

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

09.08.2012    43057    1cspecialist    13    

УФ: программное создание и копирование документов с использованием конструкций ДанныеФормыВЗначение, ЗначениеВДанныеФормы

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

1С:Предприятие 8.3. Управляемые формы. Программное создание и копирование документов. Использование методов ДанныеФормыВЗначение(), ЗначениеВДанныеФормы() и КопироватьДанныеФормы().

27.04.2017    31318    alexhline    9    

Улучшение стандарта "Структура модуля"

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

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

26.03.2017    14811    o.nikolaev    23    

Маленькая хитрость СКД - выводим строки X раз

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

Здесь я расскажу, как вывести в отчет СКД произвольное количество одинаковых строк.

17.12.2016    17931    alexandersh    16    

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

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

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

19.05.2012    35584    O-Planet    130    

"Распределение в запросе" или "избавляемся от перебора"

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

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    36528    alexandersh    50    

Планы обмена. Квитировать или гарантировать?

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

Планы обмена предлагают использовать две стратегии удаления обработанных изменений: квитирование и гарантированная доставка сообщений. Как сделать правильный выбор?

12.12.2016    18614    zhichkin    10