При разработке в качестве базовой использовалась обработка, написанная Ожерельевым Сергеем //infostart.ru/public/121248/, которая в свою очередь является модификацией работы Василия Демидова //infostart.ru/public/64833/.
Основным мотивом работы послужила необходимость создания универсальной обработки по просмотру и редактированию состава зарегистрированных объектов узла обмена, которую можно было бы быстро и просто включить в состав разрабатываемой конфигурации.
Основные особенности обработки:
- Возможность быстрого включения в состав конфигурации. Для этого вставляем обработку в конфигурацию и добавляем в неё команду с кодом в модуле:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)ПараметрыФормы = Новый Структура("УзелОбмена", ПараметрКоманды);
ОткрытьФорму("Обработка.МониторСостоянияУзлаОбена.Форма", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);КонецПроцедуры
Устанавливаем в качестве типа параметра команды необходимые для просмотра планы обмена. Режим использования параметра одиночный. Настройка закончена. - Из основной формы убраны практически все реквизиты. В дереве объектов убраны флажки для устранения неоднозначности выбора объектов действия. Все управление деревом построено на выделенных строках и контекстном меню. Выделять строки можно в любом составе. Каких либо дублирующих действий произведено не будет.
- Так как операции над данными могут оказаться длительными, во всех местах (по возможности) предусмотрена анимация (с использованием процедуры "Сообщить") и прерывание выполняемого процесса.
- Произведена оптимизация для работы в режиме клиент-сервер. Так, например, при произвольной регистрации (отмене регистрации) объектов процедура на сервере работает вне контекса формы, а данные в неё передаются пакетами. Функционал по работе с деревом объектов по возможности вынесен на клиента.
- Предусмотрена работа не только со ссылочными объектами но, по возможности, и с наборами записей регистров как подчиненных регистратору, так и независимых (в дереве хранится в строковом представлении ключевой отбор).
- Регистрация (отмена регистрации) движений документов совместно с документами теперь возможна только при произвольной регистрации (отмене регистрации).
- Команда показа объектов запоминается в дереве и при обновлении дерева происходит обновление перечня зарегистрированных объектов (если, конечно показ включен).
- Изменен режим работы по произвольной регистрации (отмене регистрации объектов).
- Отбор как и в исходной обработке построен на базе СКД, но в качестве источника СКД использовано объединение запросов по выбранным объектам метаданных с включением в поля отбора всех реквизитов объектов. Это позволяет отбирать данные среди множества объектов метаданных по каким-либо общим условиям (например, среди всех документов только те, где есть реквизит "Организация", заполненный в соответствии с отбором и т.п.). Как и любой отбор в СКД, условия можно группировать по И, ИЛИ или НЕ.
- В произвольном запросе можно отбирать не только ссылочные данные, но и записи регистров.
- В результирующей таблице данных предусмотрен подбор объектов, что иногда может быть удобным.
- В результирующей таблице данных убраны флажки выбора. Действия (удаление, например) производятся над выделенными строками.
- Редактирование реквизитов узла плана обмена вынесено в отдельную форму и позволяет редактировать и просматривать не только базовые реквизиты узла, но и все остальные. Состав редактируемых реквизитов определяется там же в форме.
- Все формы снабжены соответствующей помощью.
Обработка тестировалась на полном плане обмена типовой конфигурации "Управление торговлей, редакция 11.0" в файловом варианте.