Наверх

1С Расширения

Задайте вопрос эксперту

Подберем решение под ваши задачи

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

Рассмотрим работу расширений на конкретном примере: допустим у нас есть конфигурация «Управление торговлей 2.4», и нам необходимо в документе «Заказ клиента» вывести наш долг и долг контрагента на форму документа при открытии уже созданного заказа и при выборе контрагента в форме документа. Размещаться информация будет между реквизитами формы «Партнер» и «Контрагент».

01.jpg - ITsale

Откроем конфигуратор и добавим новое расширение.

Длительная операция 1с - ITsale

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

Назначение - это способ применения расширения в той или иной ситуации. Существуют 3 вида назначения:

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

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

Далее необходимо в основной конфигурации добавить в расширение форму документа «Заказ клиента».

Длительная операция 1с - ITsale

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

Итак, дополним функциональность события формы «ПриСозданииНаСервере» и «ПриИзменении» реквизита формы «Партнер».

Длительная операция 1с - ITsale

При добавлении события «ПриСозданииНаСервере» система запросила выбор настройки «Аннотации» поведения нашей процедуры в четырех вариантах: вызвать перед, вызвать после, вызвать вместо, вызвать вместо (с контролем).

Аннотация — это надстройка над нашей процедурой или функцией, указывающая системе в какой момент её необходимо вызвать:

  • Вызвать перед – наша процедура выполнится первая, а затем будет выполняться типовая
  • Вызвать после – наша процедура выполняется после выполнения типовой
  • Вызвать вместо – наша процедура заменяет типовую процедуру
  • Вызвать вместо (с контролем) – такая процедура будет выполняться с контролем типового кода и нашего по вставкам #Удаление #КонецУдаления и #Вставка #КонецВставки.

Вернемся к нашему примеру.

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

Длительная операция 1с - ITsale

Код формы после изменений:

 &НаСервере Процедура ЗК_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) СуммыДолгов = ПолучитьСуммыДолгов(Объект.Партнер); Элементы.НашДолг.Заголовок = "Наш долг: "+Формат(СуммыДолгов.НашДолг, "ЧЦ=15; ЧДЦ=2; ЧН=0; ЧГ=0"); Элементы.ДолгКонтрагента.Заголовок = "Долг контрагента: "+Формат(СуммыДолгов.ДолгПартнера, "ЧЦ=15; ЧДЦ=2; ЧН=0; ЧГ=0"); КонецПроцедуры &НаКлиенте Процедура ЗК_ПартнерПриИзмененииПосле(Элемент) СуммыДолгов = ПолучитьСуммыДолгов(Объект.Партнер); Элементы.НашДолг.Заголовок = "Наш долг: "+Формат(СуммыДолгов.НашДолг, "ЧЦ=15; ЧДЦ=2; ЧН=0; ЧГ=0"); Элементы.ДолгКонтрагента.Заголовок = "Долг контрагента: "+Формат(СуммыДолгов.ДолгПартнера, "ЧЦ=15; ЧДЦ=2; ЧН=0; ЧГ=0"); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСуммыДолгов(Партнер) ********************************* КонецФункции 
Длительная операция 1с - ITsale

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

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

Расширение для конфигурации «Управление торговлей, редакция 11 (11.4.14.95)
Управляйте вашей торговлей и продажами с помощью 1C ИТС - это просто и эффективно.

Нет комментариев
Оставьте комментарий первым
Новый комментарий

Обратный звонок
Оцените сайт