Квадратный корень в запросе 1С
Разработка - Математика и алгоритмы
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Статья ценна комментариями, благодаря которым, с момента первоначальной публикации запрос претерпел значительные изменения. При активном участии сообщества была выполнена оптимизация запроса по быстродействию и уменьшению ошибок вычисления. Таким образом, проделанная работа – успешный опыт совместного решения проблем сообществом Инфостарт.
Важно: На Инфостарт появилась разработка от agrustny: Обработка с обычным (не СКД) запросом, извлекающим корни нужной степени
Язык запросов 1С не позволяет вычислить квадратный корень 1С. Квадратный корень может пригодиться при вычислении среднеквадратического отклонения или геометрических вычислениях. Предложенный метод имеет ограничение на верхнее значение.
Для вычисления квадратного корня в запросе предлагается использовать метод Герона, когда последовательно вычисляется формула


Проблемой является найти начальное значение. Предлагается взять его методом грубой оценки.
принимается равным
, а 
Грубое значение будет вычислено как:

Учитывая вышесказанное, запрос по вычислению квадратного корня можно написать так:
ВЫБРАТЬ 0.012345678 КАК Значение ПОМЕСТИТЬ СписокЗначений ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 123.45 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 12345678 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 123456789012345678 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ SQRTS.X КАК Значение, (((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2 + SQRTS.X / ((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2)) / 2 + SQRTS.X / (((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2 + SQRTS.X / ((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2)) / 2)) / 2 КАК КореньКвадратный ИЗ (ВЫБРАТЬ СписокЗначений.Значение КАК X, ВЫБОР КОГДА СписокЗначений.Значение < 0 ТОГДА NULL КОГДА СписокЗначений.Значение < 0.000001 ТОГДА 0.0005623413251903491 КОГДА СписокЗначений.Значение < 0.00001 ТОГДА 0.001778279410038923 КОГДА СписокЗначений.Значение < 0.0001 ТОГДА 0.005623413251903491 КОГДА СписокЗначений.Значение < 0.001 ТОГДА 0.01778279410038923 КОГДА СписокЗначений.Значение < 0.01 ТОГДА 0.05623413251903491 КОГДА СписокЗначений.Значение < 0.1 ТОГДА 0.1778279410038923 КОГДА СписокЗначений.Значение < 1 ТОГДА 0.5623413251903491 КОГДА СписокЗначений.Значение < 10 ТОГДА 1.778279410038923 КОГДА СписокЗначений.Значение < 100 ТОГДА 5.623413251903491 КОГДА СписокЗначений.Значение < 1000 ТОГДА 17.78279410038923 КОГДА СписокЗначений.Значение < 10000 ТОГДА 56.23413251903491 КОГДА СписокЗначений.Значение < 100000 ТОГДА 177.8279410038923 КОГДА СписокЗначений.Значение < 1000000 ТОГДА 562.3413251903491 КОГДА СписокЗначений.Значение < 10000000 ТОГДА 1778.279410038923 КОГДА СписокЗначений.Значение < 100000000 ТОГДА 5623.413251903491 ИНАЧЕ NULL КОНЕЦ КАК Y ИЗ СписокЗначений КАК СписокЗначений) КАК SQRTS
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Математика и алгоритмы Разработчик 1С 8.3 Абонемент ($m)
Данная внешняя обработка для платформы 1С:Предприятие реализует усовершенствованный алгоритм Левенштейна для вычисления схожести строк с учетом различных лингвистических особенностей русского языка. В отличие от классической реализации, этот алгоритм учитывает фонетические, визуальные и контекстные особенности набора текста.
1 стартмани
07.11.2025 7046 18 InFlach 17
Математика и алгоритмы Запросы Разработчик 1С:Предприятие 8 Бесплатно (free)
Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.
08.07.2024 9200 ivanov660 9
Математика и алгоритмы Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Абонемент ($m)
На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.
1 стартмани
30.01.2024 17005 stopa85 12
Математика и алгоритмы Бесплатно (free)
Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.
19.10.2023 25275 user1959478 57
Математика и алгоритмы Разное 1С:Предприятие 8 1C:Бухгалтерия Россия Абонемент ($m)
Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.
2 стартмани
29.09.2023 15759 maksa2005 8
Математика и алгоритмы Инструментарий разработчика Разработчик 1С:Предприятие 8 Россия Абонемент ($m)
Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.
1 стартмани
09.06.2023 25590 13 SpaceOfMyHead 20
Математика и алгоритмы Разработчик 1С:Предприятие 8 Бесплатно (free)
Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.
03.04.2023 17753 RustIG 10
Механизмы платформы 1С Математика и алгоритмы Разработчик 1С:Предприятие 8 Россия Бесплатно (free)
В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.
23.11.2022 16636 gzharkoj 17
В данном случае не нужны "какие хошь" функции, нужен квадратный корень средствами языка запросов. Это два принципиально разных подхода: вычисление на уровне СУБД и вычисление на уровне 1С.
Это кто вам сказал такую глупость? Тот, кто показал, как в 1С "круто програмичить"?
Все вычисления в 1С идут через 1С. Через СУБД идет первоначальный
Все вычисления в 1С идут через 1С. Через СУБД идет первоначальный накопление капитала сбор данных.
Ваше утверждение весьма спорное. Не думаю, что элементарные операции плюс, минус, делить вынесены на сторону сервера 1С. Основные конструкции языка запросов 1С соотносятся с конструкциями SQL. Думаю, что они конвертируются в SQL один-в-один. Даже, если в текущем релизе 1С это не так (зная 1С, я допускаю это), то 1С не стоит на месте. И в следующих релизах элементарные операции могут быть вынесены на сервер СУБД. Скорость при этом вырастет, и в 1С-скриптах ничего менять не нужно.
Перехватите на СУБД профайлером оттранслированный в SQL 1сный запрос и посмотрите, что все вычисляется там. Если вы, конечно, понимаете о чем речь и язык SQL вам не чужд.
Но!
Насколько быстро "считает" СУБД - вопрос интересный, я его задавал профессору Эльдорадовичу здесь
(21)
Вообще рекомендуют арифметику СУБД не использовать.
А Вы что думаете?
Зависит от ситуации, объеме данных. Думаю, процессор не работает особенным медленным образом в режиме СУБД. И почему-то есть уверенность, что MSSQL постарается распараллелить вычислениями своими силами, что даст выигрыш в производительности. Параллельности вычислений от 1С ждать не приходится.
Бывают ситуации, что вынесение арифметики на сторону 1С приводит к нескольким последовательным обращениям к СУБД, задержки от которых буду намного выше, чем потенциальные замедления арифметики СУБД.
Если есть необходимость вычислить квадратный корень в отчете на СКД, можно использовать вычисляемые поля, вызвав функцию из общего модуля, предварительно описав её там.
(9) В приведенной Вами ссылке вычисление начального значения SQRT(S) как Значение/2 не выдерживает критики. Как следствие необходимо больше итерационных операций, чтобы увеличить точность вычисления корня. А так да - формула (Xn+S/Xn)/2 - это баян. Она придумана была не нами, а Героном в трактате «Метрика», I век н. э.
Опять одно и тоже. Понятно, что если нам нужно вычислить только сигму и отобразить ее, то можно добавить вычисляемое выражение. А если ее значение должно использоваться в следующем запросе пакета?
Все СУБД: MSSQL, Oracle, Postgree, db/2 содержат SQRT(N)-определение. Почему бы некоторые общие математические функции компании 1С не добавить в язык запросов? Не было бы извращений в виде этой статьи.
В идеале в статье не хватает оценки точности метода: можно было бы взять все числа в диапазоне 1 - 1000 /10000/ и определить максимальную погрешность (в %, конечно). Понятно, что в задаче оценки страхового запаса высокая точность не нужна, но если предлагать это решение как универсальное, то тех, кто привык копипастить готовые фрагменты кода, нужно предупредить о погрешностях (а вдруг будут считать расход материала на изготовление медных труб?). Также нужно сказать, что данный запрос не подойдет для случаев Х<1 (будет большая погрешность - нужно другое начальное приближение).
Ну и что можно улучшить.
1) начальное приближение можно переписать компактнее. Для этого нужно понять, что метод грубой оценки - это не какая-то загадочная формула, которой нужно почему-то в точности следовать, а просто среднее значение корней из 1, 2, 3, 4, ... 10 - то есть 2,246827819 (примерно 2) или корней из 11, 12, 13, ..., 100 - 7,211051877 (примерно 6? - интересно поразмышлять почему не 7). То есть мы смотрим - в какой диапазон попадает аргумент и выбираем в качестве начального приближения корень середины этого диапазона. Тогда запрос в части табулирования начального приближения будет иметь вид:
ВЫБРАТЬ
СписокЗначений.Значение КАК Значение,
ВЫБОР
КОГДА СписокЗначений.Значение < 0
ТОГДА NULL
КОГДА СписокЗначений.Значение < 10
ТОГДА 2.246827819
КОГДА СписокЗначений.Значение < 100
ТОГДА 7.211051877
КОГДА СписокЗначений.Значение < 1000
ТОГДА 22.46827819
КОГДА СписокЗначений.Значение < 10000
ТОГДА 72.11051877
КОГДА СписокЗначений.Значение < 100000
ТОГДА 224.6827819
КОГДА СписокЗначений.Значение < 1000000
ТОГДА 721.1051877
КОГДА СписокЗначений.Значение < 10000000
ТОГДА 2246.827819
КОГДА СписокЗначений.Значение < 100000000
ТОГДА 7211.051877
ИНАЧЕ NULL
КОНЕЦ КАК КореньКвадратный
ИЗ
СписокЗначений КАК СписокЗначений Показать2) в принципе, можно плотнее протабулировать начальные приближения в интересующем нас диапазоне и получать его не через ВЫБОР КОГДА ТОГДА КОНЕЦ, а соединением с таблицей известных корней (в свое время выпускались даже книжки с такими таблицами). Понятно, что по сути тут нужна логарифмическая линейка и плотность покрытия должна быть логарифмически равномерной. Я бы взял логарифм по основанию два.
3) Хотя итерации на основе вложенных запросов выглядят и красиво и понятно, возможно, стоит для скорости сразу выполнить подстановки и считать три (четыре?) итерации "за раз".
Предложения 2) и 3) - приведены как возможности альтернативных решений, а вот 1) можно было бы исправить непосредственно в данном решении.
Кстати, в статье приведено другое решение той же задачи (менее практичное), а в статье для расчета расстояния между точками на плоскости применяется точно такой же метод как в данной статье, правда, с особенным для геометрии выбором начального приближения.
В вашем комментарии есть рациональная составляющая. Запрос выглядит красивее. Но не понятен выбор за основу 2,246827819 и 7,211051877. Если посмотреть расчет грубой оценки в
Основа должна быть выбрана как
Sqrt(Sqrt(10)) = 1.778279410038923
Sqrt(Sqrt(1000)) = 5.623413251903491
Во вложении обработка с оценкой ошибки по 3м способам. Максимальная ошибка получилась при выборе метода из статьи, с уменьшением ошибки идет ваш способ и лучший результат показали основы 1.778279410038923 и 5.623413251903491.
Как только согласуем этот подход, можно будет перейти к п.3 вашего комментария. Думаю, оптимизация будет не лишней. Хотя всю нашу совместную работу перечеркнет добавление функции Sqrt в языке запросов ))). Пункт 2 - на любителя математики, и он может усложнить читаемость.
Побочным результатом перепроверки является оценка точности метода. Она оказалась очень высокой! На интервале 1 - 100000 максимальная погрешность составила 0,0075844384 (семь с половиной тысячных) процента!
Такая высокая точность делает 2) совершенно ненужным. Тогда единственно, что меня еще беспокоит - это интервал 0-1, то есть отрицательные значения степеней 10. По-хорошему (для минимизации относительной погрешности), там тоже нужно для интервала 0.1-1 брать начальным приближением 0,5623413252, а для 0.01-0.1 брать 0,177827941 и так далее.
Долго думал про интервал 0-1. Не все так однозначно. Не понятно, почему пристальное внимание уделять именно этому интервалу. Ведь задача может требовать интервала 1-2 или 7-8. Если встанет задача работы с интервалом 0-1, можно будет умножить начальное значение на 10^2N, вычислить корень и разделить результат на 10^N. Как вы думаете?
Иначе правило выбора начального приближения выглядит несимметрично: для степеней больше 8 запрос выдает NULL. Почему? - Видимо, потому, что не обеспечивается достаточная точность. Хотя, взяв в качестве начального значения 6000, запрос достаточно точно определит и корень из 1000 000 000 и корень из 10 000 000 000. Тогда почему для расчета корня из 0.1 и 0.01 мы разрешаем себе пользоваться приближением 2.0? ОТНОСИТЕЛЬНАЯ погрешность вычисления корня из 0.01 при начальном приближении 2.0 будет примерно той же, что и погрешность вычисления корня из 10 000 000 000 при начальном приближении 6000.
Другой вариант - не ограничивать интервал ни сверху, ни снизу, просто указав, что точность вычислений для чисел, больших 10^8 и меньших 1 будет уменьшаться при отдалении от этого интервала.
Добавим в запрос конструкцию для числе меньше 1?
ВЫБОР
КОГДА СписокЗначений.Значение < 0
ТОГДА NULL
КОГДА СписокЗначений.Значение < 0.00000001
ТОГДА 0.00005623413251903491
КОГДА СписокЗначений.Значение < 0.0000001
ТОГДА 0.0001778279410038923
КОГДА СписокЗначений.Значение < 0.000001
ТОГДА 0.0005623413251903491
КОГДА СписокЗначений.Значение < 0.00001
ТОГДА 0.001778279410038923
КОГДА СписокЗначений.Значение < 0.0001
ТОГДА 0.005623413251903491
КОГДА СписокЗначений.Значение < 0.001
ТОГДА 0.01778279410038923
КОГДА СписокЗначений.Значение < 0.01
ТОГДА 0.05623413251903491
КОГДА СписокЗначений.Значение < 0.1
ТОГДА 0.1778279410038923
КОГДА СписокЗначений.Значение < 1
ТОГДА 0.5623413251903491
ПоказатьВЫБОР
КОГДА СписокЗначений.Значение < 0
ТОГДА NULL
КОГДА СписокЗначений.Значение < 0.000001
ТОГДА 0.0005623413251903491
КОГДА СписокЗначений.Значение < 0.00001
ТОГДА 0.001778279410038923
КОГДА СписокЗначений.Значение < 0.0001
ТОГДА 0.005623413251903491
КОГДА СписокЗначений.Значение < 0.001
ТОГДА 0.01778279410038923
КОГДА СписокЗначений.Значение < 0.01
ТОГДА 0.05623413251903491
КОГДА СписокЗначений.Значение < 0.1
ТОГДА 0.1778279410038923
КОГДА СписокЗначений.Значение < 1
ТОГДА 0.5623413251903491 ПоказатьВозразить ничего не могу против. Изменил запрос в статье согласно вашему коду. Думаю, проблему определения оптимального начального приближения решили.
Давайте поговорим теперь об итерационных шагах. 3х шагов достаточно?
ВЫБРАТЬ
SQRTS.Х,
(((SQRTS.У + SQRTS.Х / SQRTS.У) / 2 + SQRTS.Х / ((SQRTS.У + SQRTS.Х / SQRTS.У) / 2)) / 2 + SQRTS.Х / (((SQRTS.У + SQRTS.Х / SQRTS.У) / 2 + SQRTS.Х / ((SQRTS.У + SQRTS.Х / SQRTS.У) / 2)) / 2)) / 2 КАК КореньКвадратный
ИЗ
(ВЫБРАТЬ
СписокЗначений.Х КАК Х,
ВЫБОР
КОГДА СписокЗначений.Х < 0
ТОГДА NULL
КОГДА СписокЗначений.Х < 0.000001
ТОГДА 0.0005623413251903491
КОГДА СписокЗначений.Х < 0.00001
ТОГДА 0.001778279410038923
КОГДА СписокЗначений.Х < 0.0001
ТОГДА 0.005623413251903491
КОГДА СписокЗначений.Х < 0.001
ТОГДА 0.01778279410038923
КОГДА СписокЗначений.Х < 0.01
ТОГДА 0.05623413251903491
КОГДА СписокЗначений.Х < 0.1
ТОГДА 0.1778279410038923
КОГДА СписокЗначений.Х < 1
ТОГДА 0.5623413251903491
КОГДА СписокЗначений.Х < 10
ТОГДА 1.778279410038923
КОГДА СписокЗначений.Х < 100
ТОГДА 5.623413251903491
КОГДА СписокЗначений.Х < 1000
ТОГДА 17.78279410038923
КОГДА СписокЗначений.Х < 10000
ТОГДА 56.23413251903491
КОГДА СписокЗначений.Х < 100000
ТОГДА 177.8279410038923
КОГДА СписокЗначений.Х < 1000000
ТОГДА 562.3413251903491
КОГДА СписокЗначений.Х < 10000000
ТОГДА 1778.279410038923
КОГДА СписокЗначений.Х < 100000000
ТОГДА 5623.413251903491
ИНАЧЕ NULL
КОНЕЦ КАК У
ИЗ
СписокЗначений КАК СписокЗначений) КАК SQRTS ПоказатьВЫБРАТЬ
SQRTS.Значение,
(((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2 + SQRTS.Значение / ((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2)) / 2 + SQRTS.Значение / (((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2 + SQRTS.Значение / ((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2)) / 2)) / 2 КАК КореньКвадратный
ИЗ
(ВЫБРАТЬ
SQRTS.Значение КАК Значение,
((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2 + SQRTS.Значение / ((SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2)) / 2 КАК КореньКвадратный
ИЗ
(ВЫБРАТЬ
SQRTS.Значение КАК Значение,
(SQRTS.КореньКвадратный + SQRTS.Значение / SQRTS.КореньКвадратный) / 2 КАК КореньКвадратный
ИЗ
(ВЫБРАТЬ
СписокЗначений.Значение КАК Значение,
ВЫБОР
КОГДА СписокЗначений.Значение < 0
ТОГДА NULL
КОГДА СписокЗначений.Значение < 0.000001
ТОГДА 0.0005623413251903491
КОГДА СписокЗначений.Значение < 0.00001
ТОГДА 0.001778279410038923
КОГДА СписокЗначений.Значение < 0.0001
ПоказатьВЫБРАТЬ
0.0005623413251903491 КАК Y,
0.000001 КАК ВерхнееЗначение,
0 КАК НижнееЗначение
ПОМЕСТИТЬ SQRTS
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.001778279410038923,
0.00001,
0.000001
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.005623413251903491,
0.0001,
0.00001
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.01778279410038923,
0.001,
0.0001
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.05623413251903491,
0.01,
0.001
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.1778279410038923,
0.1,
0.01
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0.5623413251903491,
1,
0.1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1.778279410038923,
10,
1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
5.623413251903491,
100,
10
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
17.78279410038923,
1000,
100
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
56.23413251903491,
10000,
1000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
177.8279410038923,
100000,
10000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
562.3413251903491,
1000000,
100000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
1778.279410038923,
10000000,
1000000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
5623.413251903491,
100000000,
10000000
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
100 КАК Поле1
ПОМЕСТИТЬ Набор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
125
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
625
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
100000
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Набор.Поле1,
SQRTS.Y,
(((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2 + Набор.Поле1 / ((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2)) / 2 + Набор.Поле1 / (((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2 + Набор.Поле1 / ((SQRTS.Y + Набор.Поле1 / SQRTS.Y) / 2)) / 2)) / 2 КАК Поле2
ИЗ
Набор КАК Набор
ЛЕВОЕ СОЕДИНЕНИЕ SQRTS КАК SQRTS
ПО Набор.Поле1 < SQRTS.ВерхнееЗначение
И Набор.Поле1 >= SQRTS.НижнееЗначение ПоказатьВы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 204916
Создание 24.10.13 14:18
Обновление 17.04.14 14:03
Просмотры 37245
Загрузки 10
Рейтинг
52
Комментарии 53
Код открыт Не указано
Рубрики Математика и алгоритмы
Кому Разработчик
Тип файла Архив с данными
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)