Режимът на съвместимост на разширението на конфигурацията е по-голям. Разширения за конфигурация - как да добавите функционалност към стандартна конфигурация, без да премахвате поддръжка (20 минути видео)

31.10.2021

Тема "чист" модификации на стандартаконфигурациите винаги са актуални.

С помощта на разширения става възможно да се правят модификации, без да се напуска конфигурацията БЕЗ промени(т.е без да махате ключалката).

Като пример ние нека разширим стандартната функционалност„1C: Счетоводство 8“ – ще добавим проверки за пълнота на данните на документа. В резултат на това системата ще издаде диагностика, ако данните са попълнени с „неправилни“ стойности.

Буквално след 15 минутиЩе научите техники, които можете да използвате за решаване на различни проблеми.

Освен това във второто видео ще покажем универсален механизъм, базиран на разширения. И като е разработил такъв механизъм веднъж, може да се свърже с всяка стандартна конфигурация.

Мечти за собствен нетлененможе да стане реалност :)

И така, нека да започнем:

Видео 1. Техники за работа с разширения - използвайки примера на „1C: Счетоводство 8“

След като изучите видеото, ще научите:

  • Създавайте и се свързвайтеразширения за конфигурация
  • Изпълнете отстраняване на грешкиразширения
  • Подобрете стандартните формуляриобработка/документи с помощта на разширения
  • Прехващане на събитиястандартни форми за конфигурация
  • Съхранявайте даннине е в таблиците за сигурност на информацията (съхранение на настройки)
  • Използвайте лечения като хранилище на алгоритъм

Ние също ще разгледаме оптимизациякомпозиция от разширение обекти и ограничения за разширениев текущи версии на платформата.

Видео 2. Създаване на универсални механизми с помощта на разширения

В това видео ще покажем:

  • Свързване на разширение в потребителски режим ( без конфигуратор)
  • Пример универсална проверкапълнеж
  • Характеристики на внедряването на разширения - създаване на формуляри с произволни селекции и съхраняване на данни в разширения

здравейте всички

Прекрасна конфигурация 1C "BIT: Управление медицински център„До версия 2.0.28.3 логиката на работата му има няколко досадни неточности, които не ви позволяват напълно да се насладите на използването му.

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

Проблем №1. Цените за работа не са посочени в документа „Предоставяне на услуги“.

Нарушението в логиката на програмата е следното: информационен регистър "Цени на артикули" има измерение "Мерна единица", а таблична част„Произведенията“ на горния документ нямат такива подходящи подробности, така че при попълване на ред в тази таблична част можете лесно и свободно да го замените в заявката за цена. След това функцията „GetPrice“ на общия модул „Pricing“ съдържа редовете:

If ValueFilled(Unit of Measurement) Then Selection Structure.Insert("Unit of Measurement", Unit of Measurement); В противен случай Selection Structure.Insert("Unit of Measurement", Directories.Units of Measurement.Empty Link()); endIf;

Тук според мен е приложено крайно некоректно решение: при нормални условия не може да има празни връзки в измерението „Мерна единица“ на регистър „Цени на артикулите“. По-скоро ще има връзки към елементи от директорията „Мерни единици“ от подробностите за „Единица продукти“ на съответните елементи. Нека ги използваме по-скоро:

If ValueFilled(Unit of Measurement) Then Selection Structure.Insert("Unit of Measurement", Unit of Measurement); В противен случай If TypeValue(Nomenclature) = Type("DirectoryLink.Nomenclature") Then Selection Structure.Insert("Unit of Measurement", Nomenclature.Unit of Goods);

endIf; endIf;
Решения:
а) директно променяне на конфигурационния код;

б) създаване на разширение: поставяме проблемната функция „вместо“ оригиналната, променяме кода.

Проблем №2. Външни отпечатани формуляри с типа на използване "CallClientMethod" изобщо не работят.

Първо, външният формуляр за обработка трябва да бъде наречен "Form1". да точно така

Второ, модулът на обработващия обект трябва да съдържа функция:

FunctionLaunchModeClient() Експорт Връща True; EndFunction

Това също е необходимо.

Трето, което е най-неприятно, конфигурацията в отварящата форма не предава линк към документа, от който се отваря тази форма... И в резултат на това външната форма за печат не знае какво да отпечата.
Решения:

а) добавете редовете:

след линията

Form = GetForm("ExternalProcessing."+Res+".Form.Form1");

във функцията "Печат на външен формуляр С проверка на клиентски режим" на общия модул "Печат на документи клиент"

б) разширете цялото това нещо.

Трудности при използването на разширения. включенов момента

Използваме платформа 8.3.10.2505.

Въпросната конфигурация има режим на съвместимост "Версия 8.3.6". Не напразно, разбира се.

Тук започват клопките:

  • Директивата &Instead of("GetPrice"), поддържана от платформа 8.3.10, не позволява използването на режим на съвместимост;
  • Методът "SetExecuteEventHandlers" от платформа 8.3.6 предизвиква бурна реакция от платформа 8.3.10 като: "Замяната на свойства на заети обекти в разширенията не е разрешена в режим на съвместимост 8.3.8 и по-ниски."

Очевидно, за да използвате разширения, трябва да зададете режима на съвместимост на конфигурацията на „Не използвайте“. Това решение обаче въвежда редица допълнителни проблеми и „неразрешими“ ситуации в нашата конфигурация. По принцип методите започват да се провалят, когато и преди затваряне на формуляри и самата система. Те са частично решени с помощта на техники от документа Прехвърляне на конфигурации към платформата 1C:Enterprise 8.3 без режим на съвместимост с версия 8.2, намиращ се на уебсайта на 1C ITS. Защо отчасти - защото не всички сървърни повиквания могат да бъдат преобразувани в клиентски повиквания и не всички могат да бъдат изоставени. Подробностите са в приложеното разширение „Завършете работата“.

Има три разширения в списъка с файлове, решаващи проблемиотвън печатна форма, цени и грешки при затваряне на формуляри и приложения в конфигурацията 1C: "BIT: Управление на медицински център" версия 2.0.28.3.

В тази статия предлагам да разгледаме какво е „разширение за конфигурация“, как да добавите разширение или да го деактивирате. Започвайки от версия 1C 8.3.6.1977 г. е въведен нов механизъм в платформата - разширения за конфигурация. Първо, малко теория.

Разширенията в 1C са нещо подобно паралелни конфигурации, които автоматично се обединяват с основната конфигурация на доставчика. Освен това в разширенията можете да добавяте както свои собствени обекти, така и да заемате обекти от основната конфигурация.

За какво са разширенията?

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

Премахването от пълна поддръжка води до редица неудобства:

  • възможността за автоматично актуализиране изчезва, което води до поне увеличаване на времето, необходимо за;
  • изисква се висококвалифициран специалист, обслужващ програмата;
  • Ако са направени промени в стандартни обекти със стандартна конфигурация, тогава по време на актуализация те могат да изчезнат, т.е. те могат да бъдат заменени отново със стандартни от доставчика.

Когато използвате разширения, когато правите промени, програмистът няма да докосне стандартната конфигурация. Всички промени ще бъдат направени с помощта на разширения, които (както писах по-горе) също са конфигурации. По този начин основната конфигурация ще остане напълно поддържана.

След актуализиране на основната конфигурация, ако в новата версия има промени в обект, който преди това е бил променен от разширението, тогава промените ще продължат да бъдат взети от разширението. Тоест разширенията имат по-висок приоритет от основната конфигурация.

Видео - разширения в 1C за 45 минути

Вземете безплатно 267 видео урока за 1C:

Пример за добавяне на разширение към 1C

За да покажете какво е разширение, по-добре е да дадете пример за създаването му в 1C конфигуратора.

В конфигуратора отидете в менюто „Конфигурация“ и изберете „Разширения за конфигурация“. Ще се отвори прозорец със списък с разширения (ако има такива). Щракнете върху бутона „Добавяне“ и добавете ново разширение. Сега можете да отворите конфигурацията на разширението:

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

Наскоро написах статия за това как да го направите сами. Използвайки нейния пример, искам да го направя вграден с помощта на разширение.

В обработка имам поле с връзка към директория „Организации“. Ето защо имам нужда от това ръководство. Но ние няма да създаваме нова директория„Организации“, особено след като платформата няма да позволи това. Невъзможно е конфигурация на разширение да съдържа обекти със същото име като обектите в основната конфигурация.

Затова ще вземем назаем справочника от основната конфигурация:

Сега щракнете с десния бутон върху „Обработка“ и изберете „Вмъкване“ външна обработка, доклад..." И така, нека добавим ново лечениекъм конфигурацията на разширението. Ако използвате моята обработка, незабавно я преименувайте, тъй като основната конфигурация вече има обработка със същото име.

Е, последният щрих. Искам обработката ми да бъде отразена в менюто Администриране. За целта ще вземем назаем едноименната подсистема от основната конфигурация. Не забравяйте да посочите в обработката, че принадлежи към тази подсистема.

Това е структурата, която измислих:

Да видим какво имаме. Актуализираме конфигурацията на базата данни и стартираме програмата в режим 1C: Enterprise и отиваме в менюто „Администриране“. Да, почти забравих, конфигурацията на разширението трябва да бъде затворена, в противен случай програмата няма да стартира:

Колеги, здравейте на всички.

Онзи ден беше пуснат тестов Enterprise Accounting с деактивиран режим на съвместимост за платформа 8.3.6.
Това означава, че тази версия използва нов двигател, който изобразява формуляри по нов начин.
Можете да прочетете за това в Through the Looking Glass.

Наред със стандартните, трябва да конвертирате и вашите собствени разширения към новата платформа.
По време на процеса на превод създадох малък контролен списък или напомняне за себе си относно това, което трябва да се направи.

Бележка:


1. Прехвърлете разширението на нова платформа

За да направите това, променете режима на съвместимост на разширението на режим на съвместимост на конфигурацията.
Версията Enterprise Accounting има следните свойства:

В разширението можете да зададете точно същите свойства или да изчистите всички квадратчета за отметка.
Липсата на квадратчета за отметка означава, че разширението няма да проверява тези свойства при свързване.
След това, ако тези свойства се променят в основната конфигурация, разширението пак ще започне:


2. Коригирайте проблеми с връзката

За да направите това, стартирайте конфигурацията в корпоративния режим и вижте дали излита или не.
Грешките, поради които разширението не може да бъде свързано, могат да се видят в дневника
(Администрация - Поддръжка и поддръжка - Бордови дневник)
Интересуваме се от събития - „Сесия. Грешка при прилагане на разширение за конфигурация":

Най-често проблемът с връзката се решава чрез премахване на ненужни детайли или предмети.

Основната трудност е, че разширението не показва всички грешки наведнъж (между другото, този проблем беше решен в 8.3.9).
Следователно е необходимо конфигурациите да се изпълняват последователно след коригиране на всяка грешка.
За да е удобно да стартирате дневника, добавете го към любимите си:



3. Актуализирайте формулярите в разширението

За да направите това, във всеки променен формуляр щракнете върху „Актуализиране на разширението на формуляра“
Използвайки тази команда, зареждаме отново основния конфигурационен формуляр в разширението.

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


4. Ние адаптираме формата към правилата на новия двигател.

Препоръчвам ви да прочетете статията - Препоръки за адаптиране на формуляри към 8.3.7.
Той разглежда характеристиките на новия двигател и дава конкретни препоръки как да се гарантира, че всичко е наред в новата платформа.

Измислих следната процедура:

  • Премахваме всички декорации, които са използвани за отстъп.
    Сега вместо това се използват групи.
  • Да видим, че всичко изглежда добре.
    Ако нещо се обърка, вижте статията.
    Ако всичко е наред, тогава продължаваме.
  • Проверка на свойствата на новата платформа„Комбиниран“, „Автомаксимална ширина“ и „Автомаксимална височина“.
    Просто вижте, че тези свойства са зададени по подразбиране на платформата и формулярът не се раздалечава поради това.

Пуснахме нова версия на панела за телефония за 1C.

  • версия 1.2.24.10 За обикновениприложения
  • версия 1.4.26.17 За управляваниприложения

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

Ползи от използването на разширението

Разширението е много подобно на обикновената конфигурация. За работа с него се използват същите работни техники, както при обикновената конфигурация. Разширенията се създават основно, за да улеснят извършването на промени в програмата. Вече не е необходимо да вмъквате „парчета код“ в определени модули и да добавяте нови обекти с метаданни, просто трябва да добавите разширение към конфигурацията.

Огромно предимство на използването на разширения е автоматична актуализация основна конфигурация. Сега няма нужда да променяте настройките за поддръжка за типична конфигурация.

Характеристики на вграждане на телефонен панел за 1C

Такива функции станаха достъпни за разширения за платформата, започвайки от версията 8.3.9.1818 . Така че, за да се възползваме от това, сме деактивирали режима на съвместимост за разширението от версията 8.3.9 все още не се поддържа. Съответно става необходимо да деактивирате режима на съвместимост за основната конфигурация, в противен случай ще се появи грешка: " Режимът на съвместимост на разширението на конфигурацията е по-голям от режима на съвместимост на основната конфигурация".

2) Добавяме роля към основната конфигурация MIKO_Softphone, за което оттегляме всички права.

Когато добавяте нов обект на метаданни, в този случай роля, директорията трябва да се актуализира Обектни идентификатори на метаданни. Когато добавихме тази роля към разширението, стандартните конфигурации я игнорираха, тоест при актуализиране на директорията MetadataObjectIdentifiers ролята не се появи в нея. Поради това механизмът на настройките на профила на панела за телефония не работи правилно и възникна следната грешка: " Идентификаторът на обект на метаданни за ролята MIKO_Softphone не беше намерен".

Освен това тази ситуация не е възникнала във всички конфигурации, а в "Управление на търговията, 11.2.3.218"И "Комплексна автоматизация, 2.0.3.222"Нямаше проблеми с ролята, когато беше добавена към самото разширение. За да осигурим известна гъвкавост на нашето решение и да осигурим безпроблемна работа в повечето от конфигурациите, които поддържаме, решихме да добавим ролята MIKO_софтфонв основната конфигурация и го заемете в разширението и след това внедрите настройките за тази роля в разширението.

Много важна характеристикае фактът, че ако след като сте инсталирали нашето разширение, искате да вградите панела според старите ни инструкции, трябва да деактивирате разширението и да изтриете ролята на MIKO_softphone. Ако искате да използвате разширението отново, трябва първо да добавите ролята и след това да добавите разширението.

Нека да обобщим

Дори чрез включването на възможността за промяна на основната конфигурация и извършването на минимални промени в конфигурацията, ние направихме процеса на вграждане на панел за телефония по-лесен. Сега не е необходимо да правите промени в модулите на управляваното приложение, да добавяте обработка и подсистеми към конфигурацията или да конфигурирате роли. Разширението ще направи всичко това вместо вас! Ще продължим да подобряваме процеса на вграждане на телефонен панел за 1C!

Намират се инструкции за вграждане на телефонен панел за 1C с помощта на механизма за разширение.

Задайте вашите въпроси чрез формата за обратна връзка.

© 2019. MIKO LLC Всички права запазени.