0. pm74 130 17.01.18 07:39 Сейчас в теме

Алгоритмы и регламентные задания

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

Перейти к публикации

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


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


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

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

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

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

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

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

Спасибо за то что поделились подсистемой.
12. pm74 130 29.11.18 17:45 Сейчас в теме
(9)пожалуйста, если пригодилась пользуйтесь на здоровье,
Писалось кусками на разных версияхтплатформ для себя в основном , поэтому код не совсем причесан, сейчас понемногу дорабатываю
10. VVi3ard 41 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 130 29.11.18 17:41 Сейчас в теме
(10)это просто бантик для удобства , не считается, на одной фирме работает на 8.2 хотя где то могут быть небольшие нестыковки , см следующий коммент.
13. VVi3ard 41 07.12.18 12:09 Сейчас в теме
Появилось еще несколько вопросов по подсистеме, думаю они будут интересны не только мне.

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

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

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

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

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


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

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

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

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

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


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

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



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

Да это было бы полезно странно как вы без этого живете, вероятно у вас одна база? Но даже просто из тестовой базы в продакшен перенести уже проблема.
Мне в общем то все равно пришлось писать отдельную выгрузку т.к. алгоритмы используюся совместно с другими сущностями и выгружать их нужно вместе.
18. pm74 130 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 130 07.12.18 12:56 Сейчас в теме
(13)
думаю они будут интересны не только мне

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

Вакансии

Старший Программист 1С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 75 000 руб.
Полный день



Руководитель проектов 1С
Санкт-Петербург
По совместительству