Алгоритмы, команды, http, регламентные задания (расширение)

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

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

http сервис алгоритмы регламентные задания 8.3 универсальный

Универсальный механизм для создания алгоритмов и регламентных задач.

Расширение для 1с (8.3.11 + , БСП 2+) 

Основные возможности:

* выплнение произвольного кода на клиенте и сервере

* контролируемое выполнение кода  на клиенте или  сервере
* взаимные вызовы алгоритмов с передачей параметров
* сохраняемые параметры алгоритма (параметры по умолчанию)
* команды объектов
* регламентные задания
* настраиваемые веб сервисы

* декораторы функций


* лог ошибок в  журнале регистрации
* дополнительные роли - использование и редактирование алгоритмов
* экспорт/импорт .xml

протестировано:

платформа (8.3.12 +) ,  конфигурации УНФ 1.6 (1.6.17.174), БП 3 (3.0.71.86) 

github - https://github.com/pm74/_37583

update 10.06.2021

-  журнал ошибок (событий) в отдельном регистре,

-  декораторы переписаны , стали значительно удобнее и мощнее

-  более удобно реализован вызов функций с передачей контекста 

 

 $Состояние = "ИмяФункции";
-->$Состояние;

- github больше не обновляется

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

Наименование Файл Версия Размер
1c_alg_37583_rel4.2

.cfe 435,54Kb
2
.cfe 435,54Kb 2 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 1687 28.05.18 09:48 Сейчас в теме
Петр, я правильно понимаю что:
Основа это "Конфигурация Алгоритмы" cf или "Алгоритмы расширение (8.3.11)." cfe, а Обработка обновления РЗ. это просто Доп обработка с описанием команд для "Алгоритмы расширение (8.3.11)."?


Пример файл шаблонов xml какие примеры содержит?
2. pm74 194 28.05.18 09:52 Сейчас в теме
(1) да все верно
файл шаблонов - это просто сериализованая в xml ТЗ с колонками Ключ(Строка10) Значение(Строка1024)
можно редактировать и в 1С , но в файле удобнее
3. dsdred 1687 28.05.18 09:54 Сейчас в теме
(2)Хорошо, сегодня скачаю поэксперементирую.
4. pm74 194 28.05.18 09:57 Сейчас в теме
5. pm74 194 28.05.18 11:06 Сейчас в теме
(3)
поэксперементирую


эта версия несколько отличается от видео , в части написания кода , примеры есть во встроенной справке
напр:
Пример:

алгоритм1 :   $Ё=1;  Сообщить($Ё); @Процедура(@алгоритм2, Новый Структура("this,Й",this,66)); Сообщить($Ё); // выведет  1 1  66  2 99

алгоритм2 : Сообщить($Ё); Сообщить(@Й);  $Ё=2; @$Ё=99;  Сообщить($Ё);  
6. dsdred 1687 28.05.18 11:11 Сейчас в теме
7. zeegin 96 01.06.18 18:54 Сейчас в теме
Зачем нужно расширение, позволяющее сохранять и исполнять произвольный код, если можно этот произвольный код сразу расположить в расширении и подключить/исполнять штатными средствами, при этом сохраняя безопасный режим не подвергая сервер угрозам.

Выглядит как ужасный костыль.
8. pm74 194 01.06.18 19:17 Сейчас в теме
(7)
Выглядит как ужасный костыль

улыбнуло , на самом деле этот костыль одна из самых полезных штук которые я для себя сделал
все дело в параметрах
9. VVi3ard 50 29.11.18 15:35 Сейчас в теме
Спасибо.
Как раз возникла задача добавить в свою разработку произвольные алгоритмы с поддержкой цепочек алгоритмов.

Хотел уже сам делать но идея была другая (ваша с использованием @Процедура оказалась на порядок удобнее чем моя первоначальная идея).

Спасибо за то что поделились подсистемой.
12. pm74 194 29.11.18 17:45 Сейчас в теме
(9)пожалуйста, если пригодилась пользуйтесь на здоровье,
Писалось кусками на разных версияхтплатформ для себя в основном , поэтому код не совсем причесан, сейчас понемногу дорабатываю
10. VVi3ard 50 29.11.18 16:17 Сейчас в теме
&НаСервере
Процедура ПрочитатьНаСервере(АдресХранилища)
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);	
	Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();	
	ЧтениеXML = новый ЧтениеXML;
	ЧтениеXML.ОткрытьПоток(Поток);
	ТаблицаШаблонов = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
	ДобавитьНовыйПараметрНаСервере(Новый Структура("НаименованиеПараметра,ЗначениеПараметра","Шаблоны",ТаблицаШаблонов));
КонецПроцедуры // ПрочитатьНаСервере()
Показать


В 1С:Предприятие 8.3 (8.3.9.2170) у ЧтениеXML нет метода ОткрытьПоток он появился только в 8.3.10.2168.
В описании у вас написано что для работы нужен 8.3.8.
Думаю стоит поправить в описании что минимальный релиз платформы 8.3.10
11. pm74 194 29.11.18 17:41 Сейчас в теме
(10)это просто бантик для удобства , не считается, на одной фирме работает на 8.2 хотя где то могут быть небольшие нестыковки , см следующий коммент.
13. VVi3ard 50 07.12.18 12:09 Сейчас в теме
Появилось еще несколько вопросов по подсистеме, думаю они будут интересны не только мне.

1. В форме редактирования алгоритмов есть кнопки работы с текстом: "ФормаСохранитьТекст,ФормаВосстановитьТекст" для чего предполагается их использовать?
2. Совсем не понял идею шаблонов, таблиц шаблонов, в видео есть пара слов об этом но не понятно в чем смысл, плюс в видео вероятно достаточно старая версия подсистемы и там шаблоны немного по другому устроены.
3. Для чего используются тэги.
4. Что дает флаг настройки алгоритма "На клиенте", мы ведь сами выбираем откуда выполнить алгоритм (алг_АлгоритмыКлиент.Выполнить..., алг_АлгоритмыСервер.Выполнить....)? Я пока нашел только одно место где это используется для определения того как передавать параметр с типом ТЗ в алгоритм.

Отдельный вопрос, точнее даже пожелание, не нашел способа выгрузки (Рекурсивной с учетом зависимостей) алгоритмов в файл для переноса их между базами.
Понятно что можно самому реализовать выгрузку, однако возможно уже есть выгрузка просто в виде отдельного функционала?
14. pm74 194 07.12.18 12:39 Сейчас в теме
(13)
"ФормаСохранитьТекст,ФормаВосстановитьТекст"

текущую версию алгоритма сохранить в хранилище , для восстановления версии - переименовать параметр в ТекстАлгоритма

(13)
Совсем не понял идею шаблонов, таблиц шаблонов, в видео есть пара слов об этом но не понятно в чем смысл, плюс в видео вероятно достаточно старая версия подсистемы и там шаблоны немного по другому устроены

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


(13) тэги для быстрого поиска в списке

(13)
Что дает флаг настройки алгоритма "На клиенте", мы ведь сами выбираем откуда выполнить алгоритм (алг_АлгоритмыКлиент.Выполнить...,

это в основном для дальнейшего функционала - построения пользовательских интерфейсов + в режиме редактирования алгоритма позволяет его протестировать

способа выгрузки (Рекурсивной с учетом зависимостей) алгоритмов в файл для переноса их между базами.
да тоже думал об этом , первоначально было сделано для тз шаблонов просто как элемент справочника , нужно будет добавить
Прикрепленные файлы:
16. VVi3ard 50 07.12.18 18:00 Сейчас в теме
(14) Что делают кнопки я понял, не понял именно прикладной смысл использования, зачем это нужно?
т.е. это типа черновика? что бы потом можно было посмотреть предыдущие версии алгоритма?

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


(14)
это в основном для дальнейшего функционала - построения пользовательских интерфейсов + в режиме редактирования алгоритма позволяет его протестировать

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



(14)
да тоже думал об этом , первоначально было сделано для тз шаблонов просто как элемент справочника , нужно будет добавить

Да это было бы полезно странно как вы без этого живете, вероятно у вас одна база? Но даже просто из тестовой базы в продакшен перенести уже проблема.
Мне в общем то все равно пришлось писать отдельную выгрузку т.к. алгоритмы используюся совместно с другими сущностями и выгружать их нужно вместе.
18. pm74 194 07.12.18 19:57 Сейчас в теме
(16)
А шаблон это получается обычный алгоритм
.. не понял именно прикладной смысл использования, зачем это нужно?
т.е. это типа черновика?

ну да

(16)
странно как вы без этого живете, вероятно у вас одна база

не понял именно прикладной смысл использования

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

по поводу интерфейсов , тут разные варианты
например написать небольшие алгоритмы- адаптеры
Запрос = Новый Запрос; 
Запрос.Текст = @ТекстЗапроса; 
Для Каждого Параметр Из Параметры Цикл 
	Если Не Параметр.Ключ = "ТекстЗапроса" Тогда 
		Запрос.УстановитьПараметр(Параметр.Ключ,Параметр.Значение); 
	КонецЕсли; 
КонецЦикла; 
тз = Запрос.Выполнить().Выгрузить(); 
ТабДок = Новый ТабличныйДокумент;
ТабДок.Защита = Истина; 
Для i = 0 По тз.Количество()-1 Цикл 
	Для j = 0 По тз.Колонки.Количество()-1 Цикл 
		Область = ТабДок.Область("R"+(i+1)+"C"+(j+1)); 
		Область.Текст = Формат(тз[i][j], "ЧЦ=10; ДФ=dd.MM.yyyy; БЛ=Ложь; БИ=Истина"); 
		Область.Расшифровка = тз[i][j]; 
	КонецЦикла; 
КонецЦикла; 
возврат ТабДок;;

//----------------
или  например  обработка  ДЗ  на форме  с рекурсией


Если @дз.Строки.Количество() > 0  Тогда 
	Для Каждого Строка Из @дз.Строки Цикл
     	@Процедура(@алгоритм,Новый Структура("дз",Строка));
	КонецЦикла;
Иначе
	@дз.Пометка = Не @дз.Пометка;
КонецЕсли;

или просто взять любой   понравившийся код  на   ИС
Показать

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

задача на ближайшую перспективу , сделать универсальный механизм для декларативного (почти) описания систем со сложным поведением
15. pm74 194 07.12.18 12:56 Сейчас в теме
(13)
думаю они будут интересны не только мне

думаю тут вы ошибаетесь )) см 7 ,
впрочем меня это устраивает, я даже плюсанул
это все очень далеко до завершения , использую пока больше для повседневки, регламентов и всяких экспериментов
зы еще примерчик шаблонов
Прикрепленные файлы:
17. VVi3ard 50 07.12.18 18:06 Сейчас в теме
(15) Ну разные люди бывают с разным мнением. Я рад за (7) и что ему не приходится с этим связываться.
В моем случае алгоритмы это часть другой подсистемы которая используется в большом количестве ИБ по РБД при этом обновить их достаточно тяжело и только в определенные моменты времени. А вот спустить несколько элементов справочника через встроенный НСИ сервер можно в любой момент. Так же есть теоретическая необходимость дать возможность определенным пользователям править алгоритмы не давая доступа к толстому клиенту и конфигуратору. Не всегда есть необходимость и время рисовать интерфейсы.
19. leosoft 151 23.09.19 10:53 Сейчас в теме
1. Попробовал подключить Ваше расширение к Бухгалтерии 30. Однако
подсистема не появилась. Подскажите, пожалуйста, надо как-то
настраивать роли?

2. В обсуждении упоминается какое-то видео? Где его можно скачать?
Может есть какая-то инструкция по заложенным возможностям?
20. pm74 194 23.09.19 10:59 Сейчас в теме
(19) У вас должен быть пользователь с правами Администрирование
25. leosoft 151 23.09.19 11:28 Сейчас в теме
(20) Я запускаю под типовым пользователем "Администратор" и тишина...
В ЗУП тоже не запускается. Само расширение "зеленое". Может что-то еще надо
подстроить?
26. pm74 194 23.09.19 11:31 Сейчас в теме
(25) из типовых там заимствована роль Администрирование с правами просмотра подсистемы
и 2 доп роли на редактирование и выполнение
27. pm74 194 23.09.19 11:37 Сейчас в теме
(25) м.б типовая роль Администрирование не определилась в расширении , т.к сохранял его из унф
28. leosoft 151 23.09.19 12:39 Сейчас в теме
(27) Я с расширениями не работал. Поставил последнюю демку УНФ 1.6, запустил от Администратора, подключил расширение.
перезагрузил, но раздел с алгоритмами не появился.
29. pm74 194 23.09.19 12:50 Сейчас в теме
(28) Сейчас проверю как все работает на пустой БП
30. pm74 194 23.09.19 13:24 Сейчас в теме
(28) сделал пустую базу, добавил пользователя , назначил роль Администратор системы, Администрирование, Полные права , запустил в режиме предприятие и добавил расширение , после перезапуска система почему то сбросила роль Администрирование ( кторая нужна для просмотра подсистемы), поставил у пользователя нужную галку в КФ , перезапустился , все заработало
Прикрепленные файлы:
31. leosoft 151 23.09.19 13:40 Сейчас в теме
(30) Большое спасибо! Заработало после установки галочки в КФ.
32. pm74 194 23.09.19 13:43 Сейчас в теме
(31) роль Администрирование ещё не даёт прав на редактирование.дальше нужно настроить доступ на редактирование и выполнение, во втором случае сама подсистема не доступна
33. leosoft 151 23.09.19 13:48 Сейчас в теме
(32) Спасибо, буду пробовать.
34. pm74 194 23.09.19 14:03 Сейчас в теме
(33) для примера на гитхабе что то есть в папке xml , можно загрузить обрботкой импорт /экспорт
35. leosoft 151 23.09.19 14:13 Сейчас в теме
(34) Там по одному отчетику грузим или все сразу можно
36. pm74 194 23.09.19 14:15 Сейчас в теме
(35) можно кучей , файлики папок тоже желательно
21. pm74 194 23.09.19 11:06 Сейчас в теме
(19)
В обсуждении упоминается какое-то видео? Где его можно скачать?
Может есть какая-то инструкция по заложенным возможностям?


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

вкратце работает через

_37583_АлгоритмыСервер.ВыполнитьПроцедуру(ПредставлениеАлгоритма,ДополнительныеПараметры)
_37583_АлгоритмыСервер.ВыполнитьФункцию(ПредставлениеАлгоритма,ДополнительныеПараметры
_37583_АлгоритмыКэш.ВыполнитьФункцию(Алгоритм,ДополнительныеПараметры

_37583_АлгоритмыКлиент.ВыполнитьПроцедуру(ПредставлениеАлгоритма,ВходящиеПараметры

_37583_АлгоритмыКлиент..ВыполнитьФункцию
22. pm74 194 23.09.19 11:08 Сейчас в теме
(19) здесь есть ссылки на видео , правда старые
23. leosoft 151 23.09.19 11:09 Сейчас в теме
24. pm74 194 23.09.19 11:09 Сейчас в теме
37. cprit 571 26.12.19 12:52 Сейчас в теме
Добрый день!
Для обычных форм есть замечательный набор инструментов "Инструменты разработчика 1С", но его невозможно использовать в линуксе и в тонком и веб клиенте.

Поэтому мы решили собрать подобный пакет, но который будет работать только на платформенных механизмах или с использованием кроссплатформенных компонент.

Использование этого пакета инструментов хотим сделать общедоступным(OpenSource), разработку вести через гитхаб с использованием EDT.

Можем ли мы включить в этот набор обработки(или часть идей и функционала) из этого репозитория https://github.com/pm74/_37583.git?

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

Ссылка на репозиторий с новыми инструментами https://github.com/cpr1c/tools_ui
38. pm74 194 04.01.20 23:36 Сейчас в теме
(37)
Можем ли мы включить в этот набор обработки(или часть идей и функционала) из этого репозитория

включайте
39. cprit 571 05.01.20 09:27 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

22.10.2014    217979    4311    ekaruk    184    

Загрузка данных из 1С МиниДеньги в 1С:Деньги 8, редакция 2.0

Обмен через XML Перенос данных из 1C8 в 1C8 v8 Домашние учет и финансы УУ Абонемент ($m)

Обработка для первоначальной загрузки данных (справочников и операций) в настольную программу 1С:Деньги 8, редакция 2.0 из файлы резервной копии мобильной программы 1С Миниденьги.

2 стартмани

01.10.2015    16490    15    Claus32    5    

Редактор чеков ККМ Розница 2.0 - 2.3

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

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

1 стартмани

06.08.2015    57264    544    Dima_    83    

Загрузка из Excel в 1С:Розница

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

Универсальная загрузка Excel файлов в 1С:Розница 2.0

1 стартмани

27.05.2015    15720    110    KarinaSV    7    

Автоматическая установка себестоимости номенклатуры для конфигурации Розница 2.0 (2.1) +Бонус, исправляем ошибки при настройке расписания запуска для внешних обработок в Рознице 2.0

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

Обработка для автоматического создания документов Установка себестоимости, в случае если себестоимость не установлена на момент продажи. Помогает упростить установку себестоимости номенклатуры, если у вас в базе ведется учет по нескольким магазинам. Тестировалась на релизе 2.0.8.12 и 2.1.7.14. Подойдет для тех систем, где себестоимость номенклатуры одинакова для всех магазинов.

1 стартмани

31.03.2014    28421    74    sanches    15    

Выемка денежных средств из КассыККМ. Розница 2.0

Кассовые операции ККМ Кассовые операции v8 Розница УУ Абонемент ($m)

Уставшим от отсутствия ВыемкиДС после закрытия кассовой смены посвящается. Подключаемая обработка. Управляемый интерфейс.

1 стартмани

12.12.2012    78957    527    StepByStep    40