1с обработка заполнения параметры

БСП. Подключаемые команды. Команды заполнения

Как понятно из названия статьи, подсистема “Подключаемые команды” является частью библиотеки стандартных подсистем (далее БСП).
В каждом прикладном решении есть объекты входящие в эту подсистему. Следовательно, для этих объектов можно подключать дополнительные команды.
И именно слово “подключать” подойдет здесь лучше всего. Сейчас коротко объясню почему:

Ближе к делу.

В качестве примера я использовал заполнение документа “Премия» типового прикладного решения “1С:Зарплата и управление персоналом 3”.
Допустим, нам нужно реализовать такой алгоритм расчета премии, который сложно выполнить с помощью типового расчета.
Для этой цели отлично подойдет подключаемая команда заполнения.

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

Итак, приступим …
В первую очередь в модуле объекта нужно заполнить функцию СведенияОВнешнейОбработке.

В параметрах регистрации укажем “ЗаполнениеОбъекта”. Это в дальнейшем повлияет на расположение кнопки на форме объекта назначения. (все варианты см. ИТС).

Определим объекты, к которым мы подключаем нашу обработку. В нашем случае это один документ “Премия”

Заполним остальные поля параметров регистрации

Добавим команду открытия обработки, которая в дальнейшем появится в документе «Премия». «Вид использования» выбираем «ОткрытиеФормы».

Описание других видов использования:

В нашем примере применяется взаимодействие с пользователем, поэтому выбираем вариант «ОткрытиеФормы».

Теперь наша обработка технически готова к добавлению в состав дополнительных отчетов и обработок типового прикладного решения!

Осталось добавить механизм расчета премии и сохранения результатов расчета.

Немного подробнее о механизме открытия формы обработки…
При добавлении команды в таблицу команд мы указали вид команды «ОткрытиеФормы». Это значит, что при выполнении команды «Рассчитать премию» будет открыта основная форма нашей обработки.
В этой форме перечислены ключевые параметры, в которые БСП будет записывать данные необходимые для выполнения обработки.

Для вида использования «ОткрытиеФормы» существуют следующие параметры:

1с обработка заполнения параметры

Кроме того, в данном случае можно обратиться к контексту формы объекта-владельца. Это делается через конструкцию «ВладелецФормы.Объект» в процедуре формы «ПриОткрытии». Конструкция «ВладелецФормы.Объект» дает возможность считывать необходимые данные из объекта-владельца, а также записать в объект результаты расчета премии.

Переходим к расчету премии…
Для получения актуальных данных документа «Премия» будем использовать конструкцию «ВладелецФормы.Объект» в процедуре «ПриОткрытии».

Процедура «ЗаполнитьРеквизитыФормыНаСервере» считывает актуальные значения реквизитов объекта владельца и через модуль объекта записывает их в реквизиты обработки.

На форме добавлены две команды «РассчитатьПремию» и «ПеренестиВДокумент».

По команде «РассчитатьПремию» вызывается процедура модуля объекта с расчетом.
Здесь записан самый примитивный расчет, ибо цель статьи показать работу подключаемой обработки, а не разбирать ньюансы расчета сумм премии.

По команде «ПеренестиВДокумент» вызывается процедура «ПеренестиВДокументОтвет»:

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

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

В разных типовых прикладных решениях кнопка заполнения на форме может отображаться в разных местах. Для «1С:Зарплата и управление персоналом 3» кнопка появится здесь:

Источник

Обработка заполнения табличной части 1С 8.3 управляемые формы на примере

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

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

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

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

1с обработка заполнения параметры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1с обработка заполнения параметры

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

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

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

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

1с обработка заполнения параметры

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

1с обработка заполнения параметры

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

1с обработка заполнения параметры

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

1с обработка заполнения параметры

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

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

Источник

S-Студия

Блог о внедрении и технологиях 1С

Пример разработки внешней обработки 1С вида «Заполнение объекта»

1с обработка заполнения параметры

Задача. К примеру, нам необходимо сделать загрузчик данных в табличную часть «Расшифровка платежа» документа «Поступление безналичных денежных средств», а данные для загрузки находятся в файле Excel, который интерактивно выбирает пользователь. Конечно, менять конфигурацию нельзя, расширения добавлять нельзя. В конфигурации используется БСП версии (2++). Такая вот задача.

Среди видов внешних обработок есть такой вид — «Заполнение объекта». С помощью данной обработки можно заполнить справочник или документ исходя из собственных требований. Хорошим примером может являться разноска выписки по договорам или счетам.

Итак, что можно сделать с помощью дополнительной внешней обработки вида » Заполнение объекта»?
Можно, например, из формы документа (или справочника) открыть форму обработки, передав в нее контекст вызвавшей ее формы документа, провести некие манипуляции с данными. Звучит непонятно? — Давайте разберем пример.

1с обработка заполнения параметры

Решение данной задачи с помощью внешней обработки вида «Заполнение объекта» следующее:

Тут ключевой параметр: ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта()

В этом случае, после регистрации внешней обработки, в форме назначенного документа появится кнопка с вашей командой

1с обработка заполнения параметры

Далее, при открытии основной формы обработки, при создании на сервере, получаем входящий контекст:

Тут важно сохранить ссылку на открытый ранее документ, которая придет в виде первого элемента массива: Параметры.ОбъектыНазначения[0]

Далее, в форме разрабатываем интерфейс работы с файлом и обработчик загрузки. Например, вот такой интерфейс: выбираем файл Excel, читаем его файл в Табличный документ (с COM-объектом при этом не работаем!), далее обрабатываем открытое содержимое и подготавливаем данные для переноса в соответствии с бизнес-требованиями.

Но далее, есть небольшой нюанс. Мы открыли нашу форму «обработку загрузки» из формы исходного документа с передачей лишь ссылки на него, соответственно, нам нужно:

Если в форме нашего «обрабатываемого» объекта есть обработчик оповещения (процедура формы документа «ОбработкаОповещения»), дело упрощается — мы подключаемся к нему и этот обработчик и обновит данные формы в соответствии с данными объекта (выполнит команду Прочитать() с формы документа). Для этого используем команду Оповестить(«ОбновитьДокументИБПослеЗаполнения», Массив, ЭтаФорма)

Если же обработчика нет — тогда хоть и кривенько, но вполне подойдет закрытие исходной формы документа и открытие уже новой формы документа.

Вот собственно и все решение. В принципе, несложное, но пару нюансов содержит

Скачать разбираемую обработку можно здесь Скачать

Позднее появилось и другое решение данной задачи. РЕШЕНИЕ №2

Источник

Обработка заполнения табличных частей (обычные формы)

Обработка заполнения табличных частей (обычные формы)

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

Конфигурации на обычных формах встречаются повсеместно, поэтому очень важно знать про такую возможность 1С и уметь создавать обработки.

Рассмотрим ее создание на примере документа «Перемещение товаров» конфигурации «Бухгалтерия предприятия 2.0»

Как создать свою обработку заполнения с нуля?

Вот так быстро и просто создается обработка. Остается только написать код обработчика )

Особенности использования

Обработка запускается всегда из формы объекта.

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

Требуется дополнительные права для использования подсистемы рядовым пользователем: за это отвечает роль «ПравоЗапускаВнешнихОбработок»

Отлаживать обработку сложнее

В процессе разработки придется регулярно обновлять обработку в справочнике внешних отчетов (такое обновление не требует перезапуска 1С).

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

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

Возможно программное открытие формы обработки, это позволит вам сделать удобный диалог, а даже альтернативный «Подбор документов».

Вам доступно чтение и изменение реквизитов объекта — не обязательно должна быть обработана табличная часть.

Она может быть пустой — главное, чтобы было к чему прописаться для обработки.

Окончательный код обработчика (для примера)

Источник

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

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

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

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

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

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

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

Создание

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

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

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

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

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *