Здесь мы научимся создавать внешнюю обработку заполнения табличной части документа в 1С 8.3 (для управляемых форм) с нуля. Рассмотренный пример обработки можно скачать по ссылке.
Возьмем самой простой пример: в табличной части «Материалы» документа «Требование-накладная» присвоим во всех строках количеству значение равное 100.
Содержание
- Подготовка внешней обработки в 1С 8.3
- Создание команды для заполнения табличной части
- Регистрация внешней обработки в 1С 8.3 и её проверка
- Вступление
- Подготовка шаблона внешней обработки
- Команда заполнения табличной части
- Код заполнения табличной части в модуле формы
- 1С просто и понятно
- От Программист 1С
Подготовка внешней обработки в 1С 8.3
Итак, создаем внешнюю обработку. Сохраняем ее на диск.
Внешнюю обработку или отчет в базе 1С необходимо зарегистрировать. Делается это с помощью структуры, которая содержится в экспортной функции СведенияОВнешнейОбработке.
По кнопке «Действия» переходим в модель объекта, где и создаем функцию:
Поговорим немного о значении полей.
Вид — в зависимости от предназначения обработки может принимать значения:
- Отчет.
- ЗаполнениеОбъекта.
- Печатная форма.
- Дополнительная обработка.
- СозданиеСвязанныхОбъектов.
- Дополнительный отчет.
В нашем случае для обработки заполнения табличной части нам необходим вид обработки «ЗаполнениеОбъекта»
Назначение — в этом поле перечисляются документы, для которых эта обработка предназначена (в которых она появится после регистрации в информационной базе). Для перечисления этих документов создадим массив «Назначения» и добавим в него документ «ТребованиеНакладная».
Наименование — это наименование будет отображаться в списке дополнительных обработок.
Версия — версия нашего нового программного продукта.
Информация — этот ключ нашей структуры содержит дополнительную информацию о нашей обработке.
Безопасный режим — принимает значение Истина/Ложь. Мы будем использовать безопасный режим.
Команды — этот ключ структуры содержит перечень поставляемых нашей обработкой команд. Для команд мы создадим функцию ПолучитьТаблицуКоманд() и процедуру ДобавитьКоманду().
Немного подробнее остановимся на полях таблицы значений команд.
Представление — это представление команды для пользователя: какое название для него будет представлено в интерфейсе.
Идентификатор — это внутренний идентификатор команды в пределах нашей обработки
Использование — в зависимости от использования команды может принимать значения:
- ВызовСерверногоМетода — из модуля обработки вызывается серверная процедура.
- ОткрытиеФормы — используется для открытия формы обработки.
- ВызовКлиентского метода — для вызова клиентской процедуры из модуля обработки.
- СценарийвБезопасномРежиме — серверная процедура в безопасном режиме.
В нашем случае мы работаем с формой объекта 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)», документ «Производство без заказа», табличная часть «Материалы и работы».
В указанном релизе конфигурации, штатное заполнение рассчитывает материал криво некорректно.
Готовый вариант обработки можно скачать здесь
Подготовка шаблона внешней обработки
Команда заполнения табличной части
После того как модуль обработки оформлен должным образом, нам необходимо создать форму обработки (управляемую форму конечно же) в которой будет присутствовать команда «ВыполнитьКоманду«
Код заполнения табличной части в модуле формы
Теперь осталось расположить в модуле формы необходимый алгоритм по заполнению. Вот как он выглядит в нашем случае: Серверный вызов происходит из клиентской процедуры «ВыполнитьКоманду», таким образом мы на сервере выполняем необходимые действия с объектом (в нашем примере заполняем табличную часть), обработанный объект возвращаем на сторону клиента и копируем его в данные формы.
Надеемся данный пример оказался полезным для Вас! Спасибо!
1С просто и понятно
Нажмите, чтобы связаться со мной:
Для того, чтобы произвести какие то действия со строками табличной части необязательно менять конфигурацию. В платформе 1С 8.2 есть механизм, который позволяет выполнить работу с табличной частью при помощи внешней обработки. Для этого обработку нужно оформить соответствующим образом и поместить в справочник внешних обработок. После чего в нужном документе появится кнопка, которая будет выполнять действие прописанное в модуле нашей обработки.
Для начала создадим в конфигураторе внешнюю обработку при помощи меню Файл/Новый. В появившемся окне выберем «Внешняя обработка».
Создание внешней обработки
Далее нам нужно прописать в модуле обработке специальную процедуру, которая будет выполняться при её вызове, для этого перейдем в модуль объекта.
Сама процедура должна выглядеть следующим образом:
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
Для каждого СтрокаТабличнойЧасти из Объект[ИмяТабличнойЧасти] Цикл
В данном примере нужно было округлить результаты расчета зарплаты в документе «Начисление зарплаты» в ЗУП 2.5. Вы же прописывайте необходимые вам действия с табличной частью документа. Процедура обязательно должна называться «Инициализировать», содержать три параметра и ключевое слово «Экспорт».
После того как прописали то что должна делать обработка, сохраняем её и переходим в режим 1С Предприятия, где регистрируем обработку в справочнике внешних обработок.
Добавляем внешнюю обработку
Обязательно нужно выбрать реквизит вид — «Заполнение табличных частей». В таблицу добавляем строку и заполняем все нужные поля. Представление объекта — это документ, в котором необходимо вызвать нашу обработку. Табличная часть — наименование табличной части, т.к. их может быть несколько в документе. И представление кнопки — это то как будет выглядеть кнопка в меню «Заполнить» над табличной частью.
После выполнения всех действий записываем элемент и переходим в нужный документ. Видим что над табличной частью появилась новая кнопка. Пользуемся и радуемся.)
Кнопка в документе
Надеюсь, эта статья помогла вам создать механизм для заполнения или обработки табличной части. Если нет, вы всегда можете обратиться ко мне и я напишу для вас любую обработку.)
Также вы можете скачать для примера обработку, которая получилась в ходе написания этой статьи, для этого нажмите на ссылку ниже.
От Программист 1С
Просмотреть все записи от Программист 1С по этой ссылке.
Источник: