Внешние обработки табличных частей в 1С 8.2 и 8.3

 

Табличные части в документах и справочниках часто бывают достаточно большими — сотни и тысячи строк. Почти также часто требуется выполнять какую-либо обработку этих самых строк и разумеется очень желательно автоматизировать эту обработку. Изменять конфигурацию в каждом подобном случае было бы очень непрактично, поэтому компания «1С» создала механизм внешних обработок табличных частей.

Внешняя обработка табличных частей — это обычная внешняя обработка, соответствующая определенным требованиям. Такую обработку можно подключить к какой-либо типовой конфигурации и привязать к нужным документам и справочникам.

Кроме этого, нужно отметить, что создание внешних обработок табличных частей различается для обычного приложения (Бухгалтерия 2.0.*, ЗиУП 2.5.*, УТ 10.3.*) и управляемого приложения (Бухгалтерия 3.0.*, ЗиУП 3.*, УТ 11.*). В статье будут рассмотрены оба варианта.

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

Внешняя обработка табличных частей в управляемом приложении

Начнем с управляемого приложения. Тут нужно сказать, что в управляемом приложении обработки табличных частей заменены на более общие обработки заполнение объекта. В тексте ниже будет приведен пример создания и подключения обработки заполнения объекта на примере документа «Реализация товаров и услуг» (Бухгалтерия предприятия, редакция 3.0).

Создание

Итак, для начала нам нужно создать новую внешнюю обработку и в модуле объекта этой обработки размещаем такой код:

В коде реализована экспортная функция СведенияОВнешнейОбработке(), она является обязательной и служит для описания внешнего обработки. Обязательными для заполнения являются параметры «Вид» (в нашем случае — «ЗаполнениеОбъекта»), «Версия» и «Команды». Необязательные параметры также очень желательно заполнять — это облегчает подключение и помогает избежать путаницы в дальнейшем.

Параметр «БезопасныйРежим» в значении «Истина» накладывает некоторые ограничения:

  • игнорируется привилегированный режим;
  • запрещена работа с COM;
  • запрещена загрузка внешних компонент;
  • запрещен запуск внешних приложений и команд ОС;
  • запрещен доступ к файловой системе (кроме временных файлов);
  • запрещен доступ к интернету.

При этом имеется возможность запросить исключения из безопасного режима (приме в коже выше).

В примере выше добавляются три команды разного типа. Команды типов «ВызовСерверногоМетода» и «ЗаполнениеФормы» должны быть реализованы в том же самом модуле объекта обработки — экспортная процедура ВыполнитьКоманду(). При этом команды типа «ЗаполнениеФормы» могут выполняться для новых (не записанных) объектов. Пример реализации:

Команды типа «ВызовКлиентскогоМетода» должны быть реализованы в модуле основной формы обработки — экспортная процедура ВыполнитьКоманду(). То есть требуется создать форму (можно абсолютно пустую), выбрать эту форму в качестве основной для обработки и уже в модуле этой формы реализовать требуемую процедуру. Пример реализации:

Выбор типа команды в первую очередь зависит от конкретной задачи.

Подключение

Подключение внешней обработки покажем на примере «Бухгалтерии предприятия, редакция 3.0».

Вкратце повторю основные этапы:

  1. Открываем вкладку «Администрирование» и переходим в раздел «Печатные формы, отчеты и обработки»;
  2. Устанавливаем галку «Дополнительные отчеты и обработки» и переходим в раздел «Дополнительные отчеты и обработки»;
  3. Жмем кнопку «Добавить из файла» и выбираем файл обработки;
  4. (Необязательно) Меняем наименование, комментарии, настраиваем видимость, изменяем размещение;
  5. Жмем кнопку «Записать и закрыть».
 

Внешняя обработка табличных частей в обычном приложении

Теперь создадим обработку табличных частей для обычного приложения — на примере документа «Реализация товаров и услуг» (Бухгалтерия предприятия, редакция 2.0).

Создание

В обычном приложении все гораздо проще — нам просто нужно создать обработку и в модуле объекта этой обработки реализовать экспортную процедуру Инициализировать(), которая имеет следующие параметры:

  • Объект — объект (документ или справочник) для которого произошел  вызов внешней обработки;
  • ИмяТабличнойЧасти — имя табличной части, для которой вызвана обработка;
  • ТабличноеПоле — табличное поле формы (элемент формы), для которого вызвана обработка.

Пример реализации:

Кроме этого внешняя обработка табличных частей может содержать макет с названием «Параметры_Авторегистрации». Как следует из названия в этом макете можно указать параметры для автоматической регистрации внешней обработки ТЧ. Для этого в первой колонке нужно перечислить объекты метаданных, а во второй соответствующие названия табличных частей, например так:

Параметры_Авторегистрации
Параметры_Авторегистрации

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

Подключение

Подключим нашу внешнюю обработку табличных частей на примере «Бухгалтерии предприятия, редакция 2.0».

Основные этапы:

  1. Открываем справочник внешних обработок ТЧ (Сервис->Дополнительные отчеты и обработки->Дополнительные внешние обработки табличных частей);
  2. Добавляем новый элемент справочника и указываем файл обработки;
  3. Записываем элемент.
  4. (Необязательно) Меняем имеющиеся настройки — представления, отборы, дополнительные параметры и прочее.

На этом все, надеюсь, что эта статья была Вам полезна.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 19, средняя оценка: 4,47 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Александр

    Самое лучшее объяснение на просторах рунета.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: