Понедельник, 02.12.2024, 23:10
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Пожелание: Консоль кода
vsuhДата: Среда, 14.04.2021, 08:56 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 17
Репутация: 12
Статус: Оффлайн
Вызывать из консоли кода алгоритм как функцию.

Сообщение отредактировал vsuh - Среда, 14.04.2021, 13:33
 
tormozitДата: Четверг, 15.04.2021, 19:36 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Пожелания следует создавать в разделе форума "Прочее". Перенес тему туда.
 
tormozitДата: Четверг, 15.04.2021, 19:44 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Эта "дверь" откроет огромное множество хотелок и проблем. Я не готов этим заниматься.
Однако не будет лишним с твоей стороны описать границы своего желания.
Для информации - похожая возможность имеется для справочника "Алгоритмы" http://devtool1c.ucoz.ru/forum/3-45-1
 
redkayaexotikaДата: Понедельник, 07.06.2021, 18:44 | Сообщение # 4
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 6
Статус: Оффлайн
Пока товарищ vsuh взял таймаут я воспользуюсь моментом и опишу свои хотелки:

1) Вызов соседнего алгоритма из списка строкой на подобии:
Код
ТекущиеАлгоритмы.НазваниеАлгоритма(П1, П2, ... П10)

2) Контекстная подсказка после ТекущиеАлгоритмы. в виде списка алгоритмов

3) Для параметров ещё одно булево свойство которое обозначит Возврат - при наличии такой галки алгоритм воспринимается как функция.
Тип возвращаемого параметра определён значит есть возможность подключить контекстную подсказку.

P.S. готов взять реализацию на себя, главное организовать взаимодействие
 
tormozitДата: Понедельник, 07.06.2021, 19:12 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Я уже написал подобную полноценную систему выполнения кода из справочника, которая использовалась в реальных бизнес-задачах в больших базах. Знаю о том, какие сложности будут на этом пути и каких фич захочет пользователь.
Предлагаю тебе для начала написать технический проект, т.е. в общих чертах как ты планируешь это делать. Я оцениваю объем этой задачи на долгосрочном горизонте в 200+ часов

Вот как я вижу самый верхний уровень декомпозиции
- обеспечение уникальной идентификации алгоритмов в списке
- генератор модуля внешней обработки из списка алгоритмов и разбор модуля внешней обработки на алгоритмы с предварительным просмотром изменений
- проекция координаты (строка+колонка) модуля внешней обработки на координаты в соответствующем алгоритме и обратная проекция
- поддержка выделения фрагмента кода в вызов алгоритма в команде "Рефакторинг/Выделить метод"
- поддержка переходов между алгоритмами по F12 и стек обратных переходов
- дерево вызовов алгоритмов с отображением входящих и исходящих вызовов
- массовая проверка компиляции алгоритмов с отображением с удобной навигацией по ошибкам
- обеспечение переходов между клиентом и сервером при вложенных вызовах алгоримов
- фиксация значений параметров при вложенном выполнении алгоритмов
- и еще куча всего
 
redkayaexotikaДата: Понедельник, 07.06.2021, 20:38 | Сообщение # 6
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 6
Статус: Оффлайн
Монструозная картина вырисовывается =)
Мне даже неловко свой куцый планчик обозначать. Но я рискну.

Я планировал реализовать самый нужный мне механизм приблизительно следующий образом:

Перед вызовом
Код
ВыполнитьАлгоритмВКонтексте(Параметры)

В строке
Код
Параметры.ТекстДляВыполнения

Произвести замену с
Код
СписокАлгоритмов.НазваниеАлгоритма(ВходящийПараметр1, ВходящийПараметр2)
на
Код
ирОбщий.ВыполнитьАлгоритм(ПодготовленныйТекстАлгоритмаПоНазванию(НазваниеАлгоритма), , ,ВходящийПараметр1, ВходящийПараметр2)

в том случае если СписокАлгоритмов.НазваниеАлгоритма() - Функция, а если это процедура то заменить на
Код
ирОбщий.ВыполнитьАлгоритмБезРезультата(ПодготовленныйТекстАлгоритмаПоНазванию(НазваниеАлгоритма), , ,ВходящийПараметр1, ВходящийПараметр2)

Ну это схематично. В своей консоли кода я использовал ВыполнитьФункцию() и ВыполнитьПроцедуру()


Сообщение отредактировал redkayaexotika - Понедельник, 07.06.2021, 21:00
 
tormozitДата: Вторник, 08.06.2021, 08:32 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Ну следующее, что захотят пользователи:
1. Подсветка ошибочной строки при ошибке выполнения алгоритма через такой вызов
2. Отладка выполнения алгоритма через такой вызов

Без этого я точно поддерживать такой механизм не буду. А значит и добавлять его.
 
redkayaexotikaДата: Вторник, 08.06.2021, 20:33 | Сообщение # 8
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 6
Статус: Оффлайн
Отлично. Минимальные требования обозначены. На какой версии тебе это будет удобней оценить? Конфигурация или расширение?
 
tormozitДата: Вторник, 08.06.2021, 21:46 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Разработку я веду в конфигурации. Прежде чем что то делать все же напиши тех. проект.
Пока я не понял твоего подхода к решению задачи
2. Отладка выполнения алгоритма через такой вызов
 
tormozitДата: Воскресенье, 02.07.2023, 19:37 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6474
Репутация: 171
Статус: Оффлайн
Возможно участникам обсуждения будет полезно несколько другое решение https://www.hostedredmine.com/issues/965690
 
  • Страница 1 из 1
  • 1
Поиск: