новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Универсальное заполнение табличных частей

  • Добавить свою разработку
 
ixijixi
Связаться с автором
17.04.2020 15:53:32
0
Подключаемая обработка заполнения объектов. Позволяет заполнять любые табличные части документов и справочников, в том числе и скрытые с формы.
Скриншоты
Описание

Подключение

В разделе Администрирование // Дополнительные отчеты и обработки // Добавить из файла. Обработка автоматически разместит команду заполнения во всех документах и справочниках, имеющих табличные части и подключенные к этому механизму БСП.

 

Порядок работы

В формах документов и справочников появляется команда "+Заполнить табличную часть", после клика на которой открывается основное окно обработки.

Изображение

В левой части формы выбирается заполняемая табличная часть, в правой отображаются реквизиты выбранной ТЧ. Реквизиты добавляются только те, на которые у пользователя есть право редактирования. Также пропускаются реквизиты с типом ХранилищеЗначения. Здесь задаём, какие реквизиты нужно изменить, и по какому методу. Доступны три метода:

  • Значение - строки ТЧ будут заполнены выбранным значением.
  • Формула  - строки ТЧ будут заполнены значением, рассчитанным по указанной формуле.
  • Алгоритм - в отличие от формулы, в ходе выполнения алгоритма нужно присвоить результат вычислений предопределённой переменной Значение. Служит для более сложных вычислений, не умещающихся в одну строку встроенного языка 1С.

Для формул и алгоритмов доступно использование специализированного конструктора, о нем будет рассказано ниже.

Доступна опция последовательного перебора нескольких табличных частей, и установки значений реквизитов каждой из них. При внесении изменений в редактируемую табличную часть она помечается символом звездочки (*).

Если есть необходимость обработать не все строки ТЧ, можно использовать отбор строк (верхняя строка таблицы, выделена синим цветом). Доступны сложные отборы, основанные на компоновке данных, в том числе объединенные в группы.

Изображение

После установки изменяемых реквизитов будет проведена проверка правильности значений, формул и отборов по всем заполняемым табличным частям, и, при отсутствии ошибок, показатели будут перенесены в редактируемый объект. Объекту присваивается признак модифицированности, и пользователь может продолжать работать с ним в обычном режиме.

 

Конструктор формул и алгоритмов

Изображение

Для редактирования формул и алгоритмов вычисления показателей служит специализированный конструктор. Структурно окно конструктора состоит из трех логических частей - собственно текст выражения, доступные показатели и доступные функции и операторы.

Текст выражения - это выражение на встроенном языке 1С, в результате вычисления которого должно получиться значение реквизита табличной части. В тексте выражения поддерживаются:

  1. Предопределенные переменные

  •  ОбъектНазначения - доступ к контексту документа/справочника.
  •  СтрокаНазначения - доступ к текущей строке заполняемой табличной части.
  •  Значение - результат вычисления алгоритма, который будет присвоен заполняемому реквизиту табличной части.

  2. Процедуры и функции встроенного языка, общих модулей и прикладных объектов.

  3. Реквизиты редактируемого объекта и заполняемой табличной части.

Доступные показатели - это реквизиты шапки редактируемого объекта и реквизиты заполняемой табличной части. Глубина вложенности реквизитов - 2 уровня. Реализовано добавление показателей в текст выражения двойным кликом либо перетаскиванием.

Доступные функции и операторы - это открытый (т.е. неполный) список методов платформы. Также реализовано добавление функций в текст выражения двойным кликом либо перетаскиванием.

Конструктор формул поддерживает сохранение промежуточных и окончательных результатов составления формул (шаблонов) как в информационной базе, так и на внешние носители (в  т.ч. в сети). Шаблоны формул сохраняются в разрезе пользователей, и служат для быстрого выбора для наиболее часто используемых вычислений. Для переноса формул между пользователями и информационными базами предназначены команды конструктора "Сохранить в файл" и "Открыть из файла". Для ускорения ввода доступно также использование конструктора запросов и форматной строки.

 Изображение

Управление шаблонами кода

Для управления шаблонами кода служит специальная форма, позволяющая добавлять, удалять отдельные шаблоны, а также импортировать шаблоны из внешних данных и экспортировать их во внешние данные.

Изображение

Экспорт/импорт шаблонов производится с помощью XML-сериализации, так что не возникнет проблем при переносе шаблонов например в другую информационную базу или другому пользователю.

Структурно шаблоны кода представляют собой таблицу значений с колонками Наименование, Назначение и Шаблон.

  • Наименование - пользовательское имя, присвоенное шаблону.
  • Шаблон - текст выражения на встроенном языке - результат работы конструктора формул или вручную написанный код.
  • Назначение - идентификатор, позволяющий однозначно определить объект информационной базы, для которого производится вычисление. Присваивается автоматически и записывается в формате ТипМетаданных.ВидОбъекта.ТабличнаяЧасть.Реквизит. Также, для облегчения ввода идентификатора назначения, служит специальная форма ввода.

Форма ввода идентификатора назначения

Изображение

Даже если обработка не смогла достоверно определить редактируемый реквизит, она предложит вручную выбрать тип его значения:

Изображение

Более того, в любой момент можно изменить контекст вычисления с помощью соответствующей команды в подменю "Ещё".

 

 

Ограничения

Тестировалось на платформах 8.3.12, 8.3.15.

Версия БСП - 2.3.3 и выше.

Только управляемые формы.

Проверенные конфигурации - ЗУП 3.1, ЗГУ 3.1, БГУ 2.0, БП 3.0, УНФ 1.6, Розница 2.2, УАТ 2.0, все с соответствующей версией БСП.

Обработка не заполнят реквизиты табличных частей, не являющихся объектом метаданных.

Обработка может функционировать в автономном режиме через меню Файл // Открыть в любой конфигурации на управляемых формах, при условии портирования нескольких процедур модулей БСП в тело обработки. Если есть заинтересованность в таком функционале, прошу писать в комментариях.

 

Планы

Возможность заполнять реквизиты, не являющихся объектом метаданных.

Предварительный просмотр результатов заполнения.

Добавление/удаление строк табличных частей.

Свёртка табличных частей по совпадающим реквизитам.


Код открыт, предложения по доработке приветствуются.

Ключевые слова:   Универсальная   внешняя обработка
Файлы для скачивания
0
    ≡ к списку разработок
    Яндекс-директ