Набор математических функций

Публикация № 558782

Разработка - Универсальные функции

математика массив функции библиотека обработка среднее минимум максимум дисперсия среднеквадратичное отклонение крайнее положение вхождение в диапазон

Небольшой набор математических функций для работы с массивами чисел.

Быстрый поиск по запросу "математи*" по ИС выдаёт всего одну статью с набором полезных математических функций:

Библиотека математических функций 1.1

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

Функция Сумма(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат 0 КонецЕсли;
	
	ТЗ = Новый ТаблицаЗначений;
	ТЗ.Колонки.Добавить("Сумма");
	
	Для ё = 1 по Массив.Количество() Цикл
		ТЗ.Добавить();
	КонецЦикла;
	
	ТЗ.ЗагрузитьКолонку(Массив, "Сумма");
	Сумма = ТЗ.Итог("Сумма");
	
	Возврат Сумма;
КонецФункции

Функция Минимум(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	
	УпорядочитьМассив(Массив);
	
	Возврат Массив[0];
КонецФункции

Функция Среднее(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	
	Возврат Сумма(Массив) / Массив.Количество();
КонецФункции

Функция Максимум(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	
	УпорядочитьМассив(Массив);
	
	Возврат Массив[Массив.Количество() - 1];
КонецФункции

Функция Медиана(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	КоличествоЭлементов = Массив.Количество();
	
	Если КоличествоЭлементов = 1 Тогда
		Возврат Массив[0];
	ИначеЕсли КоличествоЭлементов = 2 Тогда
		Возврат Среднее(Массив);
	КонецЕсли;
	
	УпорядочитьМассив(Массив);
	
	Середина = КоличествоЭлементов / 2;
	
	Если Середина = Цел(Середина) Тогда
		Медиана = (Массив[Середина - 1] + Массив[Середина]) / 2;
	Иначе
		Медиана = Массив[Середина - 0.5]
	КонецЕсли;
	
	Возврат Медиана;
КонецФункции

Функция Дисперсия(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	
	Среднее = Среднее(Массив);
	
	Сумма = 0;
	
	Для каждого Значение из Массив Цикл
		Сумма = Сумма + Pow((Значение - Среднее), 2);
	КонецЦикла;
	
	Дисперсия = Сумма / Массив.Количество();
	
	Возврат Дисперсия;
КонецФункции

Функция СреднеКвадратичноеОтклонение(Массив) Экспорт
	Если Массив.Количество() = 0 Тогда Возврат Неопределено КонецЕсли;
	
	Дисперсия = Дисперсия(Массив);
	
	Возврат ?(Дисперсия < 0, 0, Sqrt(Дисперсия));
КонецФункции

Процедура УпорядочитьМассив(Массив) Экспорт
	СЗ = Новый СписокЗначений;
	СЗ.ЗагрузитьЗначения(Массив);
	СЗ.СортироватьПоЗначению(НаправлениеСортировки.Возр);
	Массив = СЗ.ВыгрузитьЗначения();
КонецПроцедуры

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

Также возникла необходимость проверить входят ли значения  одного массива в крайние положения другого с учётом допустимого процента отклонения:

Функция МинимумКП(МассивПолный, МассивТекущий, ПроцентОтклонения, ВернутьКоличество = Ложь) Экспорт
	Минимум = Минимум(МассивПолный);
	ПроцентХ = Минимум / 100 * (100 + ПроцентОтклонения);
	сч = 0;
	
	Для каждого Значение из МассивТекущий Цикл
		Если Значение >= Минимум и Значение <= ПроцентХ Тогда
			Если ВернутьКоличество Тогда
				сч = сч + 1;
			Иначе
				Возврат Истина;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Если ВернутьКоличество Тогда Возврат сч КонецЕсли;
	
	Возврат Ложь;
КонецФункции

Функция МаксимумКП(МассивПолный, МассивТекущий, ПроцентОтклонения, ВернутьКоличество = Ложь) Экспорт
	Максимум = Максимум(МассивПолный);
	ПроцентХ = Максимум / 100 * (100 - ПроцентОтклонения);
	сч = 0;
	
	Для каждого Значение из МассивТекущий Цикл
		Если Значение >= ПроцентХ и Значение <= Максимум Тогда
			Если ВернутьКоличество Тогда
				сч = сч + 1;
			Иначе
				Возврат Истина;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Если ВернутьКоличество Тогда Возврат сч КонецЕсли;
	
	Возврат Ложь;
КонецФункции

У данных функций есть параметр ВернутьКоличество, при установке значения которого в Истина функция возвращает количество значений, попавших в диапазон, иначе вернёт булево (есть пападания/нет).

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

Надеюсь, кому-то может оказаться полезным.

Скачать файлы

Наименование Файл Версия Размер
НаборМатематическихФункций.epf

.epf 11,12Kb
5
.epf 1.0 11,12Kb 5 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Caliban 70 12.01.17 09:27 Сейчас в теме
Зачем такие сложности с суммой?

Функция Сумма(Массив) Экспорт
	Cумма = 0;
	
	Для Каждого Число Из Массив Цикл
		Сумма = Сумма + Число;
	КонецЦикла;
	
	Возврат Сумма;
КонецФункции
Показать
starik-2005; Diversus; v3rter; ice-net; +4 Ответить
4. SvoyakMartin 54 12.01.17 10:16 Сейчас в теме
(1) ситуация аналогична использованию упорядочивания массива для получения крайних вместо перебора.
Несмотря на то, что логично предположить, что получение итога по колонке выполняет ту же операцию сложения в цикле, а я предлагаю дополнительно тратить время и память на создание объекта и его заполнение, по замерам производительности в моём случае выигрывает тот вариант, что я предложил.
6. ice-net 20 12.01.17 10:20 Сейчас в теме
(4)
Ладно время, а как Вы проверяли производительность по памяти?
8. SvoyakMartin 54 12.01.17 11:00 Сейчас в теме
(6) Конкретно в моём случае в приоритете была скорость выполнения отчёта. С памятью же вроде всё очевидно: создавая новую сущность с целью копирования в неё данных можно рассчитывать, что памяти придётся выделить как минимум в два раза больше(например при передаче по значению), а при использовании списка значений и тем более таблицы значений и подавно!
9. ice-net 20 12.01.17 11:09 Сейчас в теме
(8)
Я не совсем это имел ввиду)) Я хотел узнать почему в функции Сумма используется ТЗ, а не перебор по массиву как в (1)?
5. v3rter 12.01.17 10:19 Сейчас в теме
Ну если изменения в процессе вызова функции исходного массива некритичны, то да.
Хотя считаю, что сумму и минимум лучше было делать "дедовскими" способами - циклом с условием и вспомогательной переменной, как в
(1)

Идея понравилась, за идею "звездану".
10. SvoyakMartin 54 12.01.17 11:09 Сейчас в теме
(5) Изменения в исходный массив вносит только упорядочивание. Если важна сохранность не только данных, но и их индексов, тогда да, стоит озадачиться данным вопросом.
2. v3rter 12.01.17 09:58 Сейчас в теме
Мне показалось

https://its.1c.ru/db/metod8dev#content:2606:hdoc
Передача параметров по ссылке

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

или надо было передавать по значению?
Функция Сумма(Знач Массив) Экспорт
3. ice-net 20 12.01.17 10:14 Сейчас в теме
(2)
Знач Массив - породит новую переменную Массив (в текущем контексте), что не есть Массив - передаваемый в параметр
=> пришлось бы писать что-нибудь типа
Массив = Сумма(Массив);

Функция Сумма(Знач Массив)
.....
Возврат Массив;
КонецФункции
7. Alias 163 12.01.17 10:23 Сейчас в теме
На всякий случай напоминаю о наличии в платформе объекта
Новый АнализДанных
в котором уже есть встроенные механизмы расчёта различных параметров, в том числе максимума/минимума, медианы, среднего, стандартного отклонения и др.

Надеюсь автор сравнивал свою разработку с использованием платформенных методов и выяснил, что она работает быстрее и лучше?...
vsozansky; корум; +2 Ответить
12. SvoyakMartin 54 12.01.17 11:51 Сейчас в теме
(7) Признаюсь, с данным классом был не знаком, и при поиске способа получения дисперсии и ср.кв. отклонения средствами платформы он мне так же не попадался. На досуге озадачусь изучением сего.
(11) За сравнение - спасибо, думаю, если объединить повторяющиеся вызовы, то общее время чуть сократится.
11. Alias 163 12.01.17 11:19 Сейчас в теме
Сравнил с платформенным методом.

За счет того что платформа получает сразу несколько параметров (напомню, для типа анализа АнализДанныхОбщаяСтатистика это Количество, Максимум,
Медиана, Минимум, Размах, Среднее, СтандартноеОтклонение), время выполнения анализа платформой больше, чем каждое из вычислений с использованием приведённых функций.
Для примера:
Анализ данных платформой: 100 мс (получены 7 параметров)
Расчет приведёнными функциями: медиана - 25 мс, среднее - 80 мс, макс/мин - по 20 мс

Таким образом, возможно, для получения единичного параметра (той же медианы) выгоднее использовать приведённую функцию. Ну это если не брать в расчёт то что она работает только с числами и не умеет, например, посчитать медиану по датам :)

Если нужно получить сразу пакет параметров -- то нужно или переделывать функции, оптимизируя получение за один проход, или всё же использовать платформенный механизм (т.к. судя по времени исполнения 100 всё же меньше чем 25+80+20+20).
Прикрепленные файлы:
Медиана.epf
13. v3rter 12.01.17 12:00 Сейчас в теме
В инженерных калькуляторах статистические функции сохраняют в памяти устройства количество элементов, сумму и сумму квадратов. Для расчета дисперсии этих данных достаточно. Я это к тому, что если надо считать ещё быстрее, то может каким-то образом сохранять или кешировать эти данные, вместе с минимумом и максимумом?
14. vasilev2015 2067 12.01.17 12:08 Сейчас в теме
Предлагаю:

рядом с медианой добавить моду ))
вместо возведения во вторую степень POW использовать умножение на себя
вместо Количество()-1 использовать ВГраница()
15. SvoyakMartin 54 12.01.17 15:00 Сейчас в теме
(14) С модой не всё так просто, что делать, если попадётся мультимодальный массив? Можно посчитать по интервальной, но какой брать интервал?

POW(x, 2) vs x * x - повторюсь, что у меня в приоритете время выполнения, в единичных случаях простое умножение выигрывает, но в среднем наоборот.

ВГраница() - согласен! На 6 символов короче запись и быстрее в среднем в 5 раз!
16. Probot1c 04.02.17 06:10 Сейчас в теме
с набором функций и обработкой данных удобно в екселе работать, хорошо что в 1с что-то подобное есть.
17. Diego_Iv 32 23.05.19 18:41 Сейчас в теме
Огромное спасибо за СреднеКвадратичноеОтклонение и Дисперсию !
Пригодилось...
Оставьте свое сообщение

См. также

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    49981    168    ekaruk    32    

Парсинг Excel-файла

Загрузка и выгрузка в Excel Универсальные функции v8 Розница УНФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Шаблон внешней обработки для парсинга Excel без использования COM-объектов, с учетом клиент-серверного взаимодействия, на толстом, тонком и веб-клиенте. С учетом требований безопасности и отображением длительных операций.

1 стартмани

15.09.2020    5255    18    LamerSoft    0    

Обработка просмотра DBF-файлов

Универсальные функции v8 Казахстан Абонемент ($m)

Данная обработка предназначена для просмотра DBF-файлов на управляемых формах

1 стартмани

14.09.2020    1388    7    makfromkz    5    

Дружелюбный интерфейс итогов в диалоге табличных частей, для Управляемых форм.

Работа с интерфейсом Адаптация типовых решений Универсальные функции v8 Абонемент ($m)

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

1 стартмани

14.09.2020    2015    3    DrZombi    9    

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом Промо

Печатные формы документов Универсальные функции Email v8 КА1 БП2.0 УТ10 УПП1 Абонемент ($m)

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    27171    21    stvorl    0    

Таблица значений в табличный документ (СКД)

Универсальные функции v8 Абонемент ($m)

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

1 стартмани

12.08.2020    14317    4    markivkin    2    

Нормализация адреса с помощью API Почты России

WEB Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

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

2 стартмани

11.08.2020    3926    8    Cerberdm    5    

Обработка чтения табличного документа (УФ)

Загрузка и выгрузка в Excel Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

07.08.2020    3988    4    chum1roma    5    

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

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.02.2015    119648    57    ildarovich    63    

Выполнение кода и получение данных запросов через HTTP сервис

Обмен данными 1С Универсальные функции Расширения v8 1cv8.cf Абонемент ($m)

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

2 стартмани

19.07.2020    3717    4    vladnet    7    

Универсальная функция получения дополнительных реквизитов и пример на форме

Универсальные функции v8 1cv8.cf Абонемент ($m)

Решаем следующую задачу. Например, в справочнике «Номенклатура» — 10 дополнительных реквизитов: "Материал", "Наименование на английском", "Наименование на французском" и т.д., и 20 дополнительных реквизитов в справочнике «Характеристики номенклатуры». Необходимо вывести все характеристики по ТЧ "Товары", так называемую «Спецификацию» по «Заказу клиента» или «Заказу поставщика».

2 стартмани

05.05.2020    2743    3    papche    7    

Универсальное хранилище настроек

Универсальные функции v8 Абонемент ($m)

Универсальная константа для хранения любых настроек, например интеграции с API. Легко вносить новые настройки без "ломания" выполнения кода в модулях.

1 стартмани

10.03.2020    6826    1    v.krivenko    17    

Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API) Промо

Универсальные функции Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).

3 стартмани

04.02.2016    51601    177    TuneSoft    30    

Шаблоны внешних обработок (БСП, управляемые формы)

Обработки Печать Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

01.03.2020    5601    49    riposte    4    

Выгрузка любого запроса или таблицы значений в текст JSON, разбор JSON в таблицу

Обработка справочников WEB Универсальные функции Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

07.02.2020    12679    49    user796054    23    

Подпись PDF в новой версии 8.3.16

Универсальные функции v8 1cv8.cf Абонемент ($m)

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    7346    26    kolya_tlt    14    

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 Промо

Универсальные функции Практика программирования v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    29839    4    Serginio    1    

Простой способ загрузить файл Excel на тонком клиенте.

Загрузка и выгрузка в Excel Универсальные функции v8 1cv8.cf Абонемент ($m)

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    9634    3    John_d    16    

Версионирование объеков УТ 10 с возможностью перехода к сохраненной версии

Журнал регистрации Универсальные функции v8 УТ10 Абонемент ($m)

Версионирование объектов УТ 10.3 с возможностью перехода к сохраненной версии. Взята стандартная система версионирования УПП, добавлена возможность восстановления ранее сохраненной версии.

1 стартмани

28.10.2019    8617    37    art.prm    8    

Картинка вместо кнопки без html

Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    7462    6    zatoichi    3    

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

Универсальные функции v8 1cv8.cf Абонемент ($m)

Функция, которая сама подставляет в текст запроса "УНИЧТОЖИТЬ" в местах последнего использования ВТ.

1 стартмани

14.11.2015    21324    0    SeiOkami    3    

Выгрузка данных из дерева значений 1С в формат JSON иерархический список (Сериализация ДереваЗначений в JSON)

Обмен через XML Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Тема: Иерархические списки при обмене данными. В интернете не удалось найти подобного решения. Обнаружена реализация только обратной операции JSON в дерево значений 1С или рассматриваются линейные списки (таблицы).

1 стартмани

22.10.2019    8513    12    mwoleg    8    

Универсальная подсистема ДМ

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

ДМ — дополнительные модули Это не альтернатива или дополнение БСП. Данная подсистема призвана быстро получить множество нужных функций в любой конфигурации. Для использования подсистемы изменения в конфигурацию вносить не надо. Обычные формы поддерживаются частично, т.к. с каждым годом таких конфигураций попадается всё реже. Разработка ведётся с 2009 года, но именно этот релиз был подготовлен на платформе 8.3.16.1063 и применяется на 8.3.15 с включенной совместимостью 8.2

1 стартмани

22.10.2019    5099    5    strange2007    10    

Вывод QR-кода типовыми средствами.

Универсальные печатные формы Сканер штрих-кода Универсальные функции v8 КА1 УТ10 УПП1 Абонемент ($m)

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    27456    47    Емельянов Алексей    50    

Библиотека математических функций 1.1 Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.12.2014    27375    41    alex271    68    

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

Универсальные обработки Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

11.10.2019    19024    97    dm1try    0    

Универсальное удаление движений регистров накопления по всем непроведенным документам

Универсальные функции Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

27.09.2019    12634    19    John_d    16    

1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API

Универсальные обработки WEB Универсальные функции Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf УУ Абонемент ($m)

Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

10 стартмани

29.07.2019    11075    14    osivv    15    

Полезные функции БСП Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

Список часто востребованных, по моему мнению, функций из состава Библиотеки стандартных подсистем 2.2.

1 стартмани

01.02.2015    70832    52    spec8s    31    

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    11292    25    SanchoD    30    

Создание и запуск скрипта для ввода текста на базе AutoHotkey

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.01.2019    7464    2    Wezoowy    1    

Поиск свободного штрихкода одним запросом по оригинальной методике

Универсальные функции Розничная торговля Розничная торговля v8 1cv8.cf УУ Абонемент ($m)

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

1 стартмани

19.06.2018    6115    0    BackHand001    4    

Регулярные выражения без COM объектов и внешних компонент Промо

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

09.02.2015    26290    19    boogie    38    

Подписка на события, преобразование объекта в JSONAPI, отправка в RabbitMQ

Внешние источники данных Универсальные функции v8 1cv8.cf Абонемент ($m)

Обработка содержит функции: - сериализация объекта 1с в JSONAPI - отправка в RabbitMQ по HTTP

1 стартмани

26.02.2018    13490    22    yaxinr    5    

Свертка таблицы значений. С блэкджеком и всем остальным

Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

22.01.2018    12363    2    dusha0020    11    

Определение MIME-типа файла

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

12.01.2018    11775    12    o.nikolaev    4    

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.02.2015    110059    111    daMaster    90    

Запуск приложений на клиенте из RDP-сессии

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

30.10.2017    13375    6    GusevNA    4    

Простые подсистемы: Библиотека подсистем

Инструментарий разработчика Универсальные обработки Универсальные функции v8 Абонемент ($m)

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

1 стартмани

26.10.2017    12354    9    pbabincev    1    

Шаблон внешней обработки регламентного задания с формой настройки параметров выполнения

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Шаблон внешней обработки призван упростить программисту процесс реализации внешнего регламентного задания. Пригоден к использованию во всех конфигурациях на управляемых формах, в которых присутствует подсистема "Дополнительные отчеты и обработки" из состава библиотеки стандартных подсистем (БСП) версии 2.1 и выше.

1 стартмани

28.05.2017    28032    201    Bassgood    11    

Универсальная функция получения таблицы дат за период. С любым интервалом (день, неделя, месяц, квартал и т.д.) Промо

Универсальные функции Практика программирования v8 1cv8.cf Абонемент ($m)

Небольшая функция, возвращающая таблицу значений со всеми датами за период. Интервал дат можно задать любой: Секунда, Минута, Час, День, Неделя, Месяц, Квартал, Полугодие, Год.

1 стартмани

14.06.2014    41033    39    mtv:)    7    

Универсальная процедура по загрузке файла из интернета

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

Передаем в процедуру всего два параметра: откуда взять и куда положить. Остальное она сделает сама

1 стартмани

17.05.2017    18534    12    json    4    

Правильный вопрос

Универсальные функции v8 1cv8.cf Абонемент ($m)

Заметили, что пользователи бездумно кликают по первой попавшейся кнопке, не удосужившись прочитать текст предупреждения или вопроса? Данная функция призвана решить данную проблему!

1 стартмани

15.05.2017    12536    0    SvoyakMartin    15    

Web сервис 1С

Практика программирования Универсальные функции WEB v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

21.03.2017    34175    100    hiduk    34    

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

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

15.05.2014    23456    71    bahbah    16    

Сравнение строк. Наибольшая общая последовательность

Универсальные функции v8 1cv8.cf Россия Абонемент ($m)

Заданы две строки Строка1 и Строка2. Требуется найти наибольшую общую подпоследовательность (НОП) этих строк.

1 стартмани

14.11.2016    10995    2    Alex_YAM    4    

Набор процедур для парсера консоли запросов

Инструментарий разработчика Универсальные функции v8 1cv8.cf Абонемент ($m)

Данный набор функций и процедур необходимо вставить в Консоль запросов для управляемого приложения 1С 8.2 - 8.3 (Такси) http://infostart.ru/public/64522/, и вы получите возможность разбирать сложные запросы на вложенные, вносить необходимые правки и собирать измененные подзапросы в запрос. Данный модуль не содержит консоли!!! Ее придется отдельно скачать по ссылке http://infostart.ru/public/64522/

1 стартмани

09.11.2016    10725    4    blockcode    5    

Организация выбора месяца из списка (универсально + НЕ модально )

Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

Пришлось столкнуться с такой проблемой, как выбор месяца из ниспадающего списка (с элементами вида "НазваниеМесяца Год") с возможностью изменения года. Хочу предложить универсальный вариант реализации данного механизма на основе механизма http://infostart.ru/public/167549/ ЗЫ: основные отличия: - вместо "НачалоВыбораИзСписка" работаем с "ОбработкаВыбора" без модальности - Обратное преобразование в дату не только на русском - Универсальность процедур. Одна функция выбирается в нескольких полях.

1 стартмани

09.11.2016    15634    13    igorkosmos    5    

Включаем звук в 1С. Доступно и всерьез. Промо

Математика и алгоритмы Универсальные функции v8 1cv8.cf Абонемент ($m)

Как сделать воспроизведение звука в 1С без внешних компонентов? Решаем средствами интернета. Для тонкого, толстого и web-клиента.

1 стартмани

30.12.2013    84458    271    sikuda    37    

Отладка/доработка модуля менеджера "на лету"

Инструментарий разработчика Практика программирования Универсальные функции v8 1cv8.cf Абонемент ($m)

Данный прием позволяет отлаживать и дорабатывать модуль менеджера во внешней обработке без необходимости пересохранять конфигурацию и перезапускать базу

1 стартмани

23.10.2016    32068    21    json    22    

Сверка таблиц при разработке через тестирование

Инструментарий разработчика Практика программирования Универсальные функции v8 Абонемент ($m)

Данная статья про инструмент, который я использую уже продолжительное время, и который, по моему мнению, заслуживает внимания. Также опишу несколько примеров его применения.

1 стартмани

09.10.2016    16773    10    json    1    

(Удобняшка) выполнение произвольного кода в большом количестве баз

Универсальные функции v8 Абонемент ($m)

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

1 стартмани

29.09.2016    11627    2    nomadon    4