10 способов получить модуль числа (а может, и больше)

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

Разработка - Практика программирования

модуль числа интересное

Пишем функцию вычисления модуля числа. Сколько способов существует? Давайте посчитаем!

Всем привет, сразу

DISCLAIMER: Данная статья носит исключительно развлекательный характер, не несет в себе никакой практической пользы и написана только для того, чтобы срубить плюсов just for fun:)

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

1.Наиболее логичный и распространенный способ, проверяем на превышение нуля и инвертируем значение при необходимости

Функция МодульЧисла1(Число)

	Возврат ?(Число >= 0, Число, -Число);
		
КонецФункции // МодульЧисла()

2.Также довольно распространенный способ, используем функцию Макс()

Функция МодульЧисла2(Число)
	
	Возврат Макс(Число, -Число);
		
КонецФункции // МодульЧисла()

На этом адекватные способы закончились) и начинаются извращения начинаем использовать

3.Перевести в строку, избавиться от минуса и конвертировать обратно в число?! Легко!

Функция МодульЧисла3(Число)
	
	ЧислоСтрокой = Формат(Число, "ЧРД=.; ЧН=; ЧГ=");
	ЧислоСтрокой = СтрЗаменить(ЧислоСтрокой, "-", "");
		
	Возврат Число(ЧислоСтрокой);
				
КонецФункции // МодульЧисла()

4.Далее вспоминаем, что можем использовать com-объекты, а это открывает нам удивительные возможности

Изначально я использовал такой код:

ЧислоСтрокой = Формат(Число, "ЧРД=.; ЧН=; ЧГ=");
Script = Новый COMОбъект("MSScriptControl.ScriptControl");
Script.Language = "javascript";
Script.Eval(СтрШаблон("var abs = Math.abs(%1);",ЧислоСтрокой));
	
Возврат Script.CodeObject.abs;	

Но в серверном контексте я получил ошибку отсутствия класса из-за различия в разрядности, а делать обертку на корпоративном сервере не хотелось, поэтому я решил использовать другой com, а именно regexp

Функция МодульЧисла4(Число)
	
	RegExp = Новый COMОбъект("VBScript.RegExp");
	RegExp.Global 		= Истина;
	RegExp.IgnoreCase 	= Истина;
	RegExp.Pattern = "\d+[.,]?\d+";
	
	Matches = RegExp.Execute(Число);
	Если Matches.Count() > 0 Тогда
		Возврат Число(Matches.Item(0).Value);
	Иначе
		ВызватьИсключение("Нет вхождения строки");
	КонецЕсли;
	
КонецФункции // МодульЧисла()

5.Используем список значений и сортируем, почему нет?

Функция МодульЧисла5(Число)
	
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(Число);
	СписокЗначений.Добавить(-Число);
	СписокЗначений.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
	
	Возврат СписокЗначений[0].Значение;
			
КонецФункции // МодульЧисла()

6.Используем запрос, в принципе это нормальный способ и т.к. вычисление производится на стороне СУБД я решил его тоже включить

Функция МодульЧисла6(Число)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА &Число >= 0
		|			ТОГДА &Число
		|		ИНАЧЕ -&Число
		|	КОНЕЦ КАК Модуль";
	
	Запрос.УстановитьПараметр("Число", Число);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	
	Возврат ВыборкаДетальныеЗаписи.Модуль;
			
КонецФункции // МодульЧисла()

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

Модуль числа a – это арифметический квадратный корень из квадрата числа a, исходя из этого пишем функцию

Функция МодульЧисла7(Число)
	
	Квадрат = Pow(Число, 2);
	Корень  = Sqrt(Квадрат);
	
	Возврат Корень;
			
КонецФункции // МодульЧисла()

8.Используем Формат, чтобы избавиться от минуса и используем функцию Вычислить 

Функция МодульЧисла8(Число)
	
	ЧислоСтрокой = Формат(Число, "ЧРД=.; ЧН=; ЧГ=; ЧО=0");
	Возврат Вычислить("0+"+ЧислоСтрокой);
		
КонецФункции	

Да остановись уже!

9.Здесь вообщем то уже читерство, используем ОписаниеТипов с допустимым знаком "+" и если после приведения результат = 0, то инвертируем значение

Функция МодульЧисла9(Число)
	
	ЧислоСтрокой = Формат(Число, "ЧРД=.; ЧН=; ЧГ=");
	Подстроки    				= СтрРазделить(ЧислоСтрокой, ".");
	ЧислоРазрядов 				= СтрДлина(Подстроки[0]);
	ЧислоРазрядовДробнойЧасти 	= 0;
	Если Подстроки.Количество() > 1 Тогда
		ЧислоРазрядовДробнойЧасти = СтрДлина(Подстроки[1]);
	КонецЕсли;	
	КвалификаторЧисла = Новый КвалификаторыЧисла(ЧислоРазрядов, ЧислоРазрядовДробнойЧасти, ДопустимыйЗнак.Неотрицательный);
	ТипЧисло = Новый ОписаниеТипов("Число", КвалификаторЧисла);
	Если ТипЧисло.ПривестиЗначение(Число) = 0 Тогда
		Возврат -Число;
	Иначе	
		Возврат Число;
	КонецЕсли;	
				
КонецФункции // МодульЧисла()

Все? Нет

10.И напоследок используем такой же подход, перехватываем исключение в функции, где параметр положительное число, например, СлучайноеЧисло

Функция МодульЧисла10(Число)
	
	ГСЧ = Новый ГенераторСлучайныхЧисел;
	Попытка
		СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, Число);
		Возврат Число;
	Исключение
		Возврат -Число;
	КонецПопытки;
	
КонецФункции	

И в заключение этой "шедевральной" статьи график (обработка во вложении) по скорости выполнения на 10000 итерациях. Версия платформы: 8.3.13.1513

Ожидаемо запрос и com самый медленный ввиду инициализации объектов, а математика самая быстрая.

Знаешь еще способы - пиши в комментах!

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

 

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

Наименование Файл Версия Размер
10 способов получить модуль числа (а может и больше):

.epf 8,03Kb
11.07.19
1
.epf 8,03Kb 1 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. DJDUH 17 11.07.19 13:11 Сейчас в теме
1.Наиболее логичный и распространенный способ, проверяем на превышение нуля и инвертируем значение при необходимости

Функция МодульЧисла1(Число)

Возврат ?(Число >= 0, Число, -Число);

КонецФункции // МодульЧисла()


С точки зрения математики
>=0
.
3. ahahaev 11.07.19 14:09 Сейчас в теме
(1) Либо ?(Число < 0, -Число, Число).

Чтобы произносить было короче :D
4. sam441 47 11.07.19 14:14 Сейчас в теме
2. json 2652 11.07.19 13:43 Сейчас в теме
чисто как еще один способ

МодульЧисла = Число(СтрЗаменить(СтрЗаменить(Число, "-", ""), Символ(160), ""));
6. SlavaKron 11.07.19 14:43 Сейчас в теме
(2) Так быстрее:
МодульЧисла = Число(СтрЗаменить(XMLСтрока(Число), "-", ""));
5. singlych 11.07.19 14:37 Сейчас в теме
Возврат ?(СтрДлина(Число) > СтрДлина(-Число), -Число, Число)
Sergynia; d.menyailov@ngslab.ru; Krio2; CyberCerber; sam441; ahahaev; +6 Ответить
7. singlych 11.07.19 15:17 Сейчас в теме
А еще прикольно с БСП, правда только для целых от -99 до 999
СтроковыеФункцииКлиентСервер.ПреобразоватьЧислоВАрабскуюНотацию(СтроковыеФункцииКлиентСервер.ПреобразоватьЧислоВРимскуюНотацию(Число))
8. SlavaKron 11.07.19 15:28 Сейчас в теме
запрос и com самый медленный ввиду инициализации объектов

Вы каждую итерацию их инициализировали? Так не пойдёт, такие вещи кэшировать надо.
Мои результаты на 1 млн. итераций (в мс):
Число > 0 391
Макс 393
СтрЗаменить 4356
Число(СтрЗаменить(XMLСтрока 2179
СтрДлина 3873
Лев 1200
Sqrt 1115
user774630; +1 Ответить
9. sam441 47 11.07.19 15:48 Сейчас в теме
(8) Была такая мысль, но мы же пишем независимую функцию, работающую без дополнительных настроек, естественно, я знаю про кэш, да и в контексте "несерьезности" задачи вряд ли это имеет смысл :)
d.menyailov@ngslab.ru; user774630; +2 Ответить
10. ildarovich 7018 11.07.19 22:01 Сейчас в теме
Вот два варианта на основе "индикаторной" функции:
Функция МодульЧисла21(Число)
	
	Возврат ((Число > 0) * 2 - 1) * Число
	
КонецФункции

Функция МодульЧисла22(Число)
	
	Возврат (Число > 0) * Число - (Число < 0) * Число
	
КонецФункции
Показать
И для разнообразия
Функция МодульЧисла23(Число)
	
	Возврат - Мин(Число, - Число)
	
КонецФункции
d.menyailov@ngslab.ru; dabu-dabu; Ibrogim; spacecraft; testnv0; mvxyz; singlych; CyberCerber; Krio2; plevakin; user811769; ice-net; alalsl; Serj1C; ahahaev; sam441; json; PowerBoy; awk; Rustig; +20 Ответить
27. spacecraft 15.07.19 14:22 Сейчас в теме
(10)
Возврат (Число > 0) * Число - (Число < 0) * Число

это можно упростить:
Возврат (Число*((Число>0)-(Число<0)))
dabu-dabu; json; ildarovich; +3 Ответить
11. Rustig 1485 11.07.19 22:07 Сейчас в теме
(0) шуточные задачки развивают логическое мышление :)
rpgshnik; sam441; pm74; +3 Ответить
12. acanta 11.07.19 23:28 Сейчас в теме
Все, о чем молчат гусары...
13. user856012 11 12.07.19 00:55 Сейчас в теме
Неее, это другое: "Баловство это, барин, жениться вам надо..." (с)
14. kredko 19 12.07.19 06:44 Сейчас в теме
Якубович и Спанчбоб - самые главные персонажи в этой статье.
15. madonov 155 12.07.19 07:52 Сейчас в теме
18. sam441 47 12.07.19 09:44 Сейчас в теме
(15) Ну как бы в самом начале написал just for fun)
16. pm74 169 12.07.19 08:29 Сейчас в теме
шутки ради
Функция МодульЧисла_00000001(Число)  // для |Число| > 0.00000001
     Возврат -100000000*(Число-(Число+0.00000001)%(Число-0.00000001)-(Число-0.00000001)%(Число+0.00000001))*Число;
КонецФункции
17. user811769 8 12.07.19 09:12 Сейчас в теме
спасибо, повеселили с утра пораньше =)
19. rpgshnik 2186 12.07.19 10:26 Сейчас в теме
Запросы рулят, говорили они :)
20. scientes 244 12.07.19 11:08 Сейчас в теме
23. collider 12.07.19 14:03 Сейчас в теме
Функция МодульЧисла(Число)
    ДобавляемыеРеквизиты	= Новый Массив;
    НеотрицательноеЧисло = Новый РеквизитФормы("НеотрицательноеЧисло",	Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Неотрицательный)));
    ДобавляемыеРеквизиты.Добавить(НеотрицательноеЧисло);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	ЭтаФорма.НеотрицательноеЧисло = Число;   
	Возврат ?(ЭтаФорма.НеотрицательноеЧисло = 0, -Число, Число); 	
КонецФункции
24. morin 14 14.07.19 01:41 Сейчас в теме
Для особо искушенных: (x ^ (x >> 31)) - (x >> 31)
sam441; Yashazz; +2 Ответить
25. FesenkoA 45 15.07.19 12:05 Сейчас в теме
Можно еще создать макет, в котором заполнить все положительные числа, потом в процессе загрузить колонку в массив и проверить на наличие числа в массиве, если нету - умножить на (-1).
26. sam441 47 15.07.19 12:48 Сейчас в теме
(25)
Можно еще создать макет, в котором заполнить все положительные числа
идеально:) какое последнее число?)
28. FesenkoA 45 15.07.19 15:56 Сейчас в теме
(26) 99999999999999999999999999999999,99999999999999999999999999999999

[32,32]
29. FesenkoA 45 15.07.19 17:19 Сейчас в теме
Опять же, можно воспользоваться АПИ (типа http://mobmath.appspot.com), передать туда уравнение и получить ответ
30. FesenkoA 45 15.07.19 17:23 Сейчас в теме
Модуль=?(Pow(10, число)>1,1,-1)*число;
31. qwinter 624 16.07.19 12:36 Сейчас в теме
Какие то жуткие цифры на диаграмме)) Вы не в отладке тест сделали случайно?)) Я советую провести тест без нее и выложить результаты, т.к. первый метод должен выигрывать у второго, пусть и немного.
Оставьте свое сообщение

См. также

Рабочий стол зарплатчика Промо

Зарплата Рабочее место v8 v8::СПР v8::УФ ЗУП3.x Россия БУ Абонемент ($m)

Назначение обработки: - Консолидация основных операций работника кадровой службы, расчетчика заработной платы в одном окне; - Весь цикл кадровых операций: от создания сотрудника, до ввода любого необходимого кадрового документа; - Ввод зарплатных документов: плановых начислений, удержаний; ввода документов расчета, перерасчета, выплаты зарплаты; ввода налоговых документов.

15.01.2020    4941    4    HostHost    0    

Загрузка табелей рабочего времени из файлов Excel

Зарплата Обработка документов Учет рабочего времени Загрузка и выгрузка в Excel v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Обработка по загрузке в типовой документ «Табель» конфигурации ЗУП 3.1 данных из файлов MS Excel, согласно шаблону.

18.10.2019    7406    5    HostHost    0    

Альтернативный способ добавления элементов и реквизитов на формы

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

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

1 стартмани

09.09.2019    8820    10    bmk74    1    

Аналоги номенклатуры для УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Расширение

Рабочее место Оптовая торговля Розничная торговля Управление торговлей Оптовая торговля Розничная торговля v8 Розница ERP2 УТ11 КА2 Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

Расширение для работы с аналогами номенклатуры. Отлично подходит для работы с кроссами запчастей и товаров с аналогичными свойствами. Поддерживаемые конфигурации: УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Лёгкое подключение, без изменения конфигурации.

10 стартмани

30.08.2019    15462    13    AleSSandre    25    

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

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

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

2 стартмани

06.10.2014    145215    1951    ekaruk    164    

Работа с релизами 1С и договорами ИТС

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    12080    34    RocKeR_13    10    

Вам нравятся запросы в 1С?

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Абонемент ($m)

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

1 стартмани

03.07.2019    17255    4    m-rv    86    

Навигатор по конфигурации базы 1С 8.3 Промо

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

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.63 от 10.06.2020

3 стартмани

28.10.2018    29304    276    ROL32    67    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    10821    0    vadim1980    5    

Цифровая подпись Cades-BES для XML средствами 1С с помощью КриптоПро

Защита и шифрование v8 1cv8.cf Россия Абонемент ($m)

Обработка иллюстрирует возможность подписания XML SOAP-конверта по стандарту Cades-BES средствами 1С с помощью внешней компоненты КриптоПРО "CAdESCOM" с учетом ГОСТ 2001 и ГОСТ 2012. Стандарт используется в различных механизмах государственных сайтов России, в том числе в СМЭВ и ГИС ЖКХ. Код не привязан к прикладному решению может быть встроен куда угодно, но только на платформе Windows.

1 стартмани

13.05.2019    9354    38    PythonJ    41    

Быстрый запрос

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

Можно ли дать пользователю "удочку", а не "рыбу"? До сих пор ответ на этот вопрос был отрицательным. Всякий инструмент, который мог бы делать с базой данных все или почти все (или хотя бы многое), отвергался пользователями, как слишком сложный. Вспомните тот же SQL, который изначально разрабатывался именно как пользовательский инструмент. "Быстрый запрос" - это попытка устранить сложность, но сохранить при этом универсальность.

1 стартмани

29.04.2019    13748    25    mkalimulin    28    

Печатные формы для БП 3.0: УПД, ТОРГ-12, Акт, Счет-фактура, Доверенность, Счет Промо

Печатные формы документов Оптовая торговля Производство готовой продукции (работ, услуг) Оптовая торговля Производство готовой продукции (работ, услуг) v8 v8::БУ БП3.0 Россия БУ Абонемент ($m)

Внешние печатные формы УПД, ТОРГ-12, Акта об оказании услуг, Счет-фактуры, Доверенности и Счета на оплату покупателю, актуализированы на последний релиз 3.0.71, поддерживают типовые факсимиле (новую галочку "Подпись и печать"), не содержат ошибок с новой ставкой НДС. В публикации также представлены печатные формы для устаревших релизов.

1 стартмани

28.01.2016    71489    843    config    47    

Безопасная работа с транзакциями во встроенном языке

Практика программирования v8 1cv8.cf Абонемент ($m)

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    30254    10    tormozit    44    

Трудовой договор, Дополнительное соглашение к трудовому договору, Лист ознакомления, Договор о материальной ответственности, Договор о коммерческой тайне, Согласие на обработку персональных данных для ЗУП 3.1

Печатные формы документов Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Комплект печатных форм для отдела кадров для документов Прием на работу и Кадровый перевод: Трудовой договор, Доп. соглашение к трудовому договору, Лист ознакомления с локальными нормативными актами, Договор о полной материальной ответственности, Договор о неразглашении коммерческой тайны, Согласие на обработку персональных данных.

2 стартмани

12.03.2019    27619    145    Asenka    34    

Редактор объектов информационной базы 8.3

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

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.47 от 08.06.2020

2 стартмани

23.01.2019    24424    257    ROL32    33    

Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо

Перенос данных из 1C8 в 1C8 Универсальные обработки Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Абонемент ($m)

Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.

1 стартмани

22.10.2014    202275    3078    ekaruk    178    

Расширение "Курсы валют в формулах расчета динамических цен" для УНФ 1.6

Ценообразование, прайсы Ценообразование, анализ цен Ценообразование, анализ цен v8 УНФ УУ Абонемент ($m)

Расширение "Курсы валют в формулах расчета динамических цен" с автоматическим пересчетом цен при изменении курсов валют для конфигурации "Управление нашей фирмой, редакция 1.6"

5 стартмани

17.01.2019    13482    20    Palmer1976    6    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    39257    245    informa1555    200    

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    32457    28    1C_MApteka    37    

Сравнение pdf-файлов актов сверки

Универсальные обработки Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 v8::БУ БП2.0 Россия БУ Абонемент ($m)

Обработка сравнивает два pdf-файла, в которых находятся стандартные печатные формы актов сверки, и показывает на экране совпадающие и/или отличающиеся по суммам документы взаиморасчетов.

1 стартмани

19.12.2018    15464    6    Torin99    2    

Выгрузка изображений из справочника на диск

Учет ТМЦ Универсальные обработки Учет ТМЦ v8 УТ11 Оптовая торговля, дистрибуция, логистика Россия Абонемент ($m)

Обработка позволяет записать изображения из справочка Номенклатура на диск в указанное место.

1 стартмани

30.11.2018    15178    5    wrooom    8    

Проверка VAT номеров

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

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    10582    0    wtlz    1    

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    22969    32    Ditron    68    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    19795    258    morozov.sv    34    

Шпаргалка разработчика для работы с формами

Работа с интерфейсом v8 Россия Абонемент ($m)

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

3 стартмани

31.10.2018    14495    77    ELAM    3    

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

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

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

1 стартмани

17.08.2015    44817    155    ekaruk    31    

Открывашка ячеек таблиц

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    14982    12    tormozit    31    

Универсальный инструмент для переноса данных через табличный документ (УФ)

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

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

5 стартмани

15.10.2018    29732    114    json    36    

Расширение "Интерфейс Плюс"

Розничная торговля Рабочее место Розничная торговля v8 v8::ОУ Розница УТ11 Россия УУ Абонемент ($m)

Расширение для 1С:Розница 2.2 и 1С:Управление Торговлей 11, которое позволит повысить удобство работы!

3 стартмани

22.09.2018    22678    117    RocKeR_13    105    

Менеджер загрузки данных из весов с печатью этикеток Промо

Внешние источники данных Весы Учет ТМЦ Учет ТМЦ v8 УТ10 УПП1 Абонемент ($m)

Программное обеспечение "Менеджер загрузки данных из весов с печатью этикеток" предназначено для автоматического получения данных по сети Ethernet из весов МАССА-К моделей ВПМ и ТВ_Р3 (модификация MF) в режиме On-Line.

1 стартмани

20.12.2011    20039    3    hrip    10    

Отправка электронной почты с помощью локального почтового клиента из 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    21236    13    stvorl    0    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    15149    17    TSSV    16    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    18794    12    RocKeR_13    16    

Автоматическая рассылка прайс-листов Промо

Ценообразование, прайсы Email Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Абонемент ($m)

Устали от утомительной рассылки прайс-листов своим клиентам? Тогда эта обработка как раз для вас, она сделает полностью все сама! Сформирует прайс с нужными настройками и отправит его по электронной почте, как, куда и когда надо.

1 стартмани

24.03.2014    36106    41    skyadmin    18    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

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

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    25365    25    informa1555    26    

Визуализация событий на временной шкале средствами "Поле HTML документа"

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

31.07.2018    21445    135    Plotks2017    27    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    39214    17    kalyaka    16    

Пример использования REST API Яндекс Диска

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

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    21552    33    MKFreeUser    14    

Приложение Android для идентификации/распознавания образов (с обучением с одного раза, One-Shot Learning) с возможностью работы с 1С через веб-сервис

Мобильная разработка v8 Абонемент ($m)

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

1 стартмани

19.06.2018    13600    4    informa1555    15    

Обмен файловыми базами данных через Yandex диск

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    15429    5    slimper    1    

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

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

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

1 стартмани

02.06.2018    16066    10    DO_WHILE_LOOP    7    

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

Практика программирования v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    27562    86    m-rv    57    

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    41069    33    dsdred    36    

Tool1CD Beta в деле

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    23416    28    baton_pk    26    

Как выполнить отчет на СКД через COM и получить данные отчета?

Практика программирования v8 УПП1 Россия Абонемент ($m)

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    25670    8    wowik    3