Подключение
В разделе Администрирование > Дополнительные отчеты и обработки > Добавить из файла. Обработка автоматически разместит команду заполнения во всех документах и справочниках, имеющих табличные части и подключенные к этому механизму БСП.
Порядок работы
В формах документов и справочников появляется команда "+Заполнить табличную часть", после клика на которой открывается основное окно обработки.
В левой части формы выбирается заполняемая табличная часть, в правой отображаются реквизиты выбранной ТЧ, в том числе и реквизиты, не являющиеся объетом метаданных, а добавленные разработчиком на форму как вспомогательные. Реквизиты добавляются только те, на которые у пользователя есть право редактирования. Также пропускаются реквизиты с типом ХранилищеЗначения. Здесь задаём, какие реквизиты нужно изменить, и по какому методу. Доступны три метода:
- Значение - строки ТЧ будут заполнены выбранным значением.
- Формула - строки ТЧ будут заполнены значением, рассчитанным по указанной формуле.
- Алгоритм - в отличие от формулы, в ходе выполнения алгоритма нужно присвоить результат вычислений предопределённой переменной Значение. Служит для более сложных вычислений, не умещающихся в одну строку встроенного языка 1С.
Для формул и алгоритмов доступно использование специализированного конструктора, о нем будет рассказано ниже.
Для значений, являющихся универсальной коллекцией (такие как массив, структура, таблица значений и т.д.), имеется своя форма редактирования, с помощью которой возможно изменение/удаление/добавление элементов коллекции.
Доступна опция последовательного перебора нескольких табличных частей, и установки значений реквизитов каждой из них. При внесении изменений в редактируемую табличную часть она помечается символом звездочки (*).
Если есть необходимость обработать не все строки ТЧ, можно использовать отбор строк (верхняя строка таблицы, выделена синим цветом). Доступны сложные отборы, основанные на компоновке данных, в том числе объединенные в группы.
После установки изменяемых реквизитов будет проведена проверка правильности значений, формул и отборов по всем заполняемым табличным частям, и, при отсутствии ошибок, показатели будут перенесены в редактируемый объект. Объекту присваивается признак модифицированности, и пользователь может продолжать работать с ним в обычном режиме.
Конструктор формул и алгоритмов
Для редактирования формул и алгоритмов вычисления показателей служит специализированный конструктор. Структурно окно конструктора состоит из трех логических частей - собственно текст выражения, доступные показатели и доступные функции и операторы.
Текст выражения - это выражение на встроенном языке 1С, в результате вычисления которого должно получиться значение реквизита табличной части. В тексте выражения поддерживаются:
1. Предопределенные переменные
- ОбъектНазначения - доступ к контексту документа/справочника.
- СтрокаНазначения - доступ к текущей строке заполняемой табличной части.
- Значение - результат вычисления алгоритма, который будет присвоен заполняемому реквизиту табличной части.
2. Процедуры и функции встроенного языка, общих модулей и прикладных объектов.
3. Реквизиты редактируемого объекта и заполняемой табличной части.
Доступные показатели - это реквизиты шапки редактируемого объекта и реквизиты заполняемой табличной части. Глубина вложенности реквизитов - 2 уровня. Реализовано добавление показателей в текст выражения двойным кликом либо перетаскиванием.
Доступные функции и операторы - это открытый (т.е. неполный) список методов платформы. Также реализовано добавление функций в текст выражения двойным кликом либо перетаскиванием.
Конструктор формул поддерживает сохранение промежуточных и окончательных результатов составления формул (шаблонов) как в информационной базе, так и на внешние носители (в т.ч. в сети). Шаблоны формул сохраняются в разрезе пользователей, и служат для быстрого выбора для наиболее часто используемых вычислений. Для переноса формул между пользователями и информационными базами предназначены команды конструктора "Сохранить в файл" и "Открыть из файла". Для ускорения ввода доступно также использование конструктора запросов и форматной строки.
Управление шаблонами кода
Для управления шаблонами кода служит специальная форма, позволяющая добавлять, удалять отдельные шаблоны, а также импортировать шаблоны из внешних данных и экспортировать их во внешние данные.
Экспорт/импорт шаблонов производится с помощью XML-сериализации, так что не возникнет проблем при переносе шаблонов например в другую информационную базу или другому пользователю.
Структурно шаблоны кода представляют собой таблицу значений с колонками Наименование, Назначение и Шаблон.
- Наименование - пользовательское имя, присвоенное шаблону.
- Шаблон - текст выражения на встроенном языке - результат работы конструктора формул или вручную написанный код.
- Назначение - идентификатор, позволяющий однозначно определить объект информационной базы, для которого производится вычисление. Присваивается автоматически и записывается в формате ТипМетаданных.ВидОбъекта.ТабличнаяЧасть.Реквизит. Также, для облегчения ввода идентификатора назначения, служит специальная форма ввода.
Форма ввода идентификатора назначения
Даже если обработка не смогла достоверно определить редактируемый реквизит, она предложит вручную выбрать тип его значения:
Более того, в любой момент можно изменить контекст вычисления с помощью соответствующей команды в подменю "Ещё".
Ограничения
Тестировалось на платформах 8.3.12, 8.3.15-8.3.23.
Версия БСП - 2.3.3 и выше.
Только управляемые формы.
Проверенные конфигурации - ERP 2, КА 2, ЗУП 3, ЗГУ 3, БГУ 2, БП 3, УНФ 1.6, УТ 11.4, Розница 2.2-2.3, УАТ 2.0, все с соответствующей версией БСП.
Обработка может функционировать в автономном режиме через меню Файл > Открыть в любой конфигурации на управляемых формах, при условии портирования нескольких процедур модулей БСП в тело обработки. Если есть заинтересованность в таком функционале, прошу писать в комментариях.
Планы
Возможность заполнять реквизиты, не являющихся объектом метаданных. Реализовано.
Редактирование реквизитов, являющихся универсальными коллекциями. Реализовано, бета-версия.
Предварительный просмотр результатов заполнения.
Добавление/удаление строк табличных частей.
Свёртка табличных частей по совпадающим реквизитам.
В Конструктор формул добавить источник данных "Общие данные" (с доступом к внешним ссылкам, результатам запросов и т.д.).
Сохранение помимо шаблонов также и настройки заполнения.
Добавление редактора Монако в форму ввода выражения.
Код открыт, предложения по доработке приветствуются.
Файл за 10 СМ абсолютно идентичен с менее дорогим вариантом, но простимулирует разработчика на добавление нового функционала. Всем скачавшим данную версию в будущем гарантируется бесплатное предоставление обновлений в рамках данной публикации.