Веб-разработка. Разработка с нуля. Основная концепция - Необходима html-страница стандарта HTML 5, содержащая код на js реализующий построение дерева произвольной структуры и взаимодействие с пользователем, изменяющим данные дерева - html-страница будет встраиваться в форму объекта 1с, поэтому на передачу данных из 1с в страницу и из страницы в 1с накладываются определенные ограничения. Также необходимо обеспечить функционирование страницы без 1с, в браузере, с загрузкой данных из файла. Последнее необходимо для отладки и на перспективу. - Дерево должно строится вызовом глобальной процедуры, принимающей как аргумент строку JSON специальной структуры - Предполагается совместная с исполнителем на стороне 1с разработка формата и структуры передаваемых данных - Также надо реализовать процедуру частичного перестроения дерева. Процедура должна принимать строку JSON, представляющую собой разницу между уже построенной структурой и новой. Передаваемая структура может содержать добавляемые элементы, удаляемые элементы, перемещенные элементы, измененные элементы - Возможно потребуется разработка этой разностной структуры с целью минимизации преобразований данных при передаче ее из 1с в js - Реализация обратной связи в виде программного нажатия на фиктивную невидимую кнопку на странице. Событие нажатия кнопки должно передавать в 1c данные определенной структуры в параметрах события или в параметрах объекта события - Узлы (элементы) дерева должны быть свертываемые как по действию пользователя, так и программно. Также должно быть программное скрытие/показ элементов при определенных действиях пользователя или по вызову функции в 1с. Также элементы показываются в нескольких режимах - Функции программного изменения содержимого элементов без перерисовки прочих элементов. Элементы здесь будут идентифицироваться по ID, по типу, значению спец.параметров-фильтров - Стили отображения элементов должны быть описаны отдельно в блоке описания css, возможно будут меняться программно на стороне 1с, перед рендерингом страницы - Набор функций фильтрации отображаемых данных по действиям пользователя без обмена данными с 1с, для фильтрации используются уже полученные данные. - Набор функций фильтрации отображаемых данных, вызываемых из 1с - Функции поиска с визуализацией результатов определенным образом (элемент управления поиском будет на стороне 1с) - Реализация Drag-and-Drop с передачей результатов в 1с (через обратную связь в виде нажатия программной кнопки) - Inline-редактор содержимого элемента дерева с передачей результатов в 1с. Форма редактора уже есть, возможно удастся применить ее с небольшими доработками - Функции запроса доп.данных из 1с при открытии формы редактора. - Дополнительные функции для автоматизации и ускорения ввода данных - Функция фокусировки (Zoom / Breadcrumbs). Клик на «узел» дерева проваливает пользователя внутрь этой ветки (как в Workflowy), скрывая все остальные проекты, чтобы сосредоточиться на конкретном блоке. Вверху отображаются «крошки». К примеру: [Контакт] / [Заявка] / [Задача] . Клик вне узла или в определенной области возвращает дерево к первоначальному виду - Для каждого элемента дерева реализовать меню, вызываемое по ПКМ с набором команд, зависящих от выбранного узла. - Система отмены действий пользователя. Реализация частично на js, частично на 1с. На стороне js - интерфейсная часть, также отмена некоторых действий, для которых нет необходимости в обмене данными с 1с. - Реализация нестандартного управления через клавиатуру - Дерево будет использоваться в нескольких разных формах объектов 1с, реализация не должна зависеть от этого и корректно отображать дерево для различных размеров вмещающего элемента и корректно перестраиваться при изменении размеров формы без обмена данными с 1с. Также будет форма, на которой одновременно будут отображаться несколько экземпляров дерева, взаимодействующие через 1с. Для полного расчета отправлю более подробное ТЗ.