В качестве основы была взята разработка "Экспресс-проверка ведения учета для 1С:Управление торговлей 8", а также на Инфостарте существует ряд подобных обработок под разные конфигурации.
В данной обработке как таковых правил - вообще нет!
Зато, есть конструктор для создания и своих проверок непосредственно в режиме 1С Предприятие.
А также, есть возможность сохранять проверки в MXL и загружать из него, что позволяет легко обмениваться созданными правилами проверок.
Основные "фишки":
- Режим отчета - сохранен как в стандартной экспресс-проверке
- Алгоритмы и параметры проверок хранятся в регистре сведений "Настройки пользователей", т.е. требуется наличие функционала БСП в конфигурации, но при этом алгоритмы доступны всем пользователям ИБ.
- Редактор правил (проверок)
- Возможность задавать дополнительные параметры для каждого правила - чтобы пользователь мог заполнять их.
- Сохранение в файл MXL и загрузка из файла (с диалогом выбора какие проверки надо загрузить) - можно обмениваться правилами проверок!
- В форме редактора интегрируется класс "Контекстная подсказка" из подсистемы "Инструменты разработчика" (при наличии встроенной в конфигурацию подсистемы, при отсутствии ИР или использовании мобильной подсистемы ИР - не интегрируется, но и ошибок не выдаёт).
- Можно устанавливать права на каждую проверку (если прав нет, то для пользователя проверка будет скрыта).
- Можно указать администраторов (для остальных пользователей надпись-ссылка "Редактирование правил" будет скрыта.
- Режим отладки правил + автоматическая генерация внешней обработки с кодом для отладки + отдельно: можно сгенерировать внешнюю обработку с формой (которую можно открыть самостоятельно в режиме "Предприятие" и сформировать отчет).
- Инструмент "Конструктор оформления результатов" для облегчения формирования кода настройки колонок результата (при наличии ошибок)
Планы:
- Доработать "Отладчик запросов" для удобной генерации кода проверки.
- Сделать версию на управляемых формах (хотя-бы только отчет).
Создание алгоритма проверки:
Алгоритм проверки представляет собой “ядро” кода, расположенное между подготовкой к формированию отчета и выводом результата (вывод результата обработка берет на себя, но ей нужно сообщить о результатах выполнения проверки, а также желательно сообщить информацию о форматах выводимой таблицы.
На входе в алгоритм имеются следующие параметры:
ДатаНач, ДатаКон, Организация - реквизиты, задаваемые в “шапке” обработки, изменять не желательно.
ДопПараметры - структура, содержит значения дополнительных параметров, указанных пользователем как параметры по-умолчанию. Ключ = имя параметра.
СтрокаПравила - строка дерева проверок, соответствующая проверке. Реквизиты, ИмяПроверки и Представление изменять не рекомендуется.
Необходимо заполнить два свойства (оба типа булево, назначение их отражено в названии):
СтрокаПравила.ПроверкаВыполнена
и
СтрокаПравила.ОбнаруженыОшибки. .
ИсходящиеДанные - структура - изначально пустая, но ели имеет место ошибка - то сюда помещается таблица с детальными записями:
ИсходящиеДанные.Вставить(ИмяПравила+"ТаблицаЗначений", ТЗ);
как вариант - можно вставить здесь результат выполнения запроса
ИсходящиеДанные.Вставить(ИмяПравила+"РезультатЗапроса", Результат);
Также, рекмендуется заполнить:
- ИсходящиеДанные.Вставить(ИмяПравила+"СтруктураЗаголовков", СтруктураЗаголовков);
СтруктураЗаголовков = [структура], ключ = имя поля заголовка, значение = текст в шапке заголовка.
ИсходящиеДанные.Вставить(ИмяПравила+"СтруктураРасшифровки", СтруктураРасшифровки);
СтруктураРасшифровки= [структура], ключ = имя поля заголовка, значение = имя поля расшифровки
ИсходящиеДанные.Вставить(ИмяПравила+"СтруктураШириныКолонок", СтруктураШириныКолонок);
СтруктураШириныКолонок= [структура], ключ = имя поля заголовка, значение = ширина колонк
На этом формирование кода проверки заканчивается.
10.04.2014
bug: при вводе нового элемента когда курсор стоял на группе - при сохранении выдается ошибка и элемент сохраняется пустым (не заполняется).
fix: ФормаНастройкиПравил, строка 490, "ТС" заменить на "НС".
+ исправлены недочеты в поведении диалога с таблицей дополнительных параметров (при редактировании правила).