Создание обработки заполнения табличной части

Создание обработки заполнения табличной части

Программирование системы 11.05.2016 12:32 10458

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

Экспортная функция "СведенияОВнешнейОбработке()"

Функцию обязательная. Определяется в модуле обработки и выполняется на сервере.

Параметры регистрации печатной формы

  • Вид — ЗаполнениеОбъекта
  • Назначение — массив объектов для которых предназначена обработка
  • Наименование — имя для регистрации в справочнике внешних обработок
  • Версия — для удобства версирования обработок (1.0, 1.1, и т.д.)
  • БезопасныйРежим — в безопасном режиме не доступна COM технология, загрузка внешних компонент, доступ к файловой системе, доступ к Интернету.
  • Информация — описание внешней обработки
  • Команды — таблица значений содержит команды

Параметры команд

  • Представление — имя кнопки в меню заполнить
  • Идентификатор — уникальный идентификатор команды
  • Использование — ВызовСерверногоМетода или ВызовКлиентскогоМетода
  • ПоказыватьОповещение — вывод оповещения при печати
  • Модификатор — для печатных форм задаётся значение "ПечатьMXL"

Экспортная процедура "ВыполнитьКоманду()"

Процедура обязательная. Если параметр "Использование" установлен в значение "ВызовСерверногоМетода", то обязательная экспортная функция ВыполнитьКоманду() должна располагаться в модуле обработки и выполняться на стороне сервера. Если установлено значение "ВызовКлиентскогоМетода", то обязательная экспортная функция ВыполнитьКоманду() должна располагаться в модуле основной формы обработки и выполняться на стороне клиента.

Параметры

  • ИдентификаторКоманды — идентификатор команды (строка)
  • ОбъектыНазначенияМассив — содержит один или несколько объектов, которые нужно измененить

В информационной базе типовой конфигурации, внешние обработки и отчеты хранятся в специальном справочнике. Добавить внешнюю обработку заполнения табличной части для управляемого приложения в информационную базу типовой конфигурации, можно в режиме 1С:Предприятие.

Читайте также:  Как настроить смарт тв через вай фай

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Здесь мы научимся создавать внешнюю обработку заполнения табличной части документа в 1С 8.3 (для управляемых форм) с нуля. Рассмотренный пример обработки можно скачать по ссылке.

Возьмем самой простой пример: в табличной части «Материалы» документа «Требование-накладная» присвоим во всех строках количеству значение равное 100.

Подготовка внешней обработки в 1С 8.3

Итак, создаем внешнюю обработку. Сохраняем ее на диск.

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

По кнопке «Действия» переходим в модель объекта, где и создаем функцию:

Поговорим немного о значении полей.

Вид — в зависимости от предназначения обработки может принимать значения:

  • Отчет.
  • ЗаполнениеОбъекта.
  • Печатная форма.
  • Дополнительная обработка.
  • СозданиеСвязанныхОбъектов.
  • Дополнительный отчет.

В нашем случае для обработки заполнения табличной части нам необходим вид обработки «ЗаполнениеОбъекта»

Назначение — в этом поле перечисляются документы, для которых эта обработка предназначена (в которых она появится после регистрации в информационной базе). Для перечисления этих документов создадим массив «Назначения» и добавим в него документ «ТребованиеНакладная».

Наименование — это наименование будет отображаться в списке дополнительных обработок.

Версия — версия нашего нового программного продукта.

Информация — этот ключ нашей структуры содержит дополнительную информацию о нашей обработке.

Безопасный режим — принимает значение Истина/Ложь. Мы будем использовать безопасный режим.

Команды — этот ключ структуры содержит перечень поставляемых нашей обработкой команд. Для команд мы создадим функцию ПолучитьТаблицуКоманд() и процедуру ДобавитьКоманду().

Немного подробнее остановимся на полях таблицы значений команд.

Представление — это представление команды для пользователя: какое название для него будет представлено в интерфейсе.

Читайте также:  Материнская плата gigabyte ga 946gmx s2

Идентификатор — это внутренний идентификатор команды в пределах нашей обработки

Использование — в зависимости от использования команды может принимать значения:

  • ВызовСерверногоМетода — из модуля обработки вызывается серверная процедура.
  • ОткрытиеФормы — используется для открытия формы обработки.
  • ВызовКлиентского метода — для вызова клиентской процедуры из модуля обработки.
  • СценарийвБезопасномРежиме — серверная процедура в безопасном режиме.

В нашем случае мы работаем с формой объекта 1С 8.3, поэтому нам необходимо использовать ВызовКлиентскогоМетода для вызова команды внешней обработки.

ПоказыватьОповещение — имеет одно из двух значений: Истина/Ложь.
Модификатор — дополнительный модификатор команды. Итоговый листинг нашей обработки в модуле объекта приобретает следующий вид:

Получите 267 видеоуроков по 1С бесплатно:

Создание команды для заполнения табличной части

В поле Форма обработки нажмем линзу, чтобы создать форму:

В форме добавим команду ВыполнитьКоманду.

В теле обработки заполнение команды обратимся к данным формы через ВладелецФормы и изменим значение количества в табличной части материалов:

Регистрация внешней обработки в 1С 8.3 и её проверка

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

В списке внешних обработок нажмем кнопку Создать:

В открывшемся бланке новой внешней обработки загрузим из файла внешнюю обработку и впоследствии запишем новую обработку:

Теперь в документе «Требование-накладная» мы можем наблюдать результат регистрации нашей обработки в информационной базе. А по нажатию кнопки «Заполнить документ» увидим работу нашей обработки по заполнению табличной части.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Вступление

Предлагаем разобраться с процессом разработки внешней обработки заполнения табличной части, на примере конфигурации "1С:ERP Управление предприятием 2 (2.2.3.205)", документ "Производство без заказа", табличная часть "Материалы и работы".
В указанном релизе конфигурации, штатное заполнение рассчитывает материал криво некорректно.

Читайте также:  Жесткий диск в качестве внешнего

Готовый вариант обработки можно скачать здесь

Подготовка шаблона внешней обработки

Команда заполнения табличной части

После того как модуль обработки оформлен должным образом, нам необходимо создать форму обработки (управляемую форму конечно же) в которой будет присутствовать команда "ВыполнитьКоманду"

Код заполнения табличной части в модуле формы

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

Надеемся данный пример оказался полезным для Вас! Спасибо!

Ссылка на основную публикацию
Adblock detector