0. ellavs 644 07.04.19 00:10 Сейчас в теме

О расширениях замолвите слово...

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

Перейти к публикации

Вознаграждение за ответ
Показать полностью
Лучшие комментарии
37. Darklight 19 08.04.19 11:53 Сейчас в теме
За статью спасибо. Но, напишу свои замечания к Вашим предложениям:

1. Не дробить расширения для одного и того же объекта конфигурации
Дельный совет. Но я бы пошёл бы ещё дальше - ВООБЩЕ НЕ ДРОБИТЬ расширения - т.е. если какую-то конфигурацию. поддерживает команда разработчиков с разными проектами - они могут вести их в отдельных расширениях в своих тестовых базах и отдельных хранилищах конфигураций расширений (но это тоже не обязательно - можно вести всё в одном расширении/хранилище)
А перед установкой в рабочую базу (вернее в продакшен-конфигурацию, возможно так же имеющую своё отдельное хранилище) переносить изменения из разных конфигураций-расширений - в одну (дабы сравнение-объединение для конфигураций-расширений вполне нормально работает) - если их несколько или так и подключать к продуктивным базам единое расширение (если оно сразу был одно). То есть - сводить все свои доработки, в итоге, к одной конфигурации-расширения (ну, максимум к 2-3 - если уже очень приспичит) и подключать ко всем ИБ.

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

2. Изменения расширяемых форм делать программно
Тоже дельный совет. Он касается не только расширений. Увы, даже в управляемых формах и без расширений надёжнее все изменения вносить программно. Эх... жаль-только, что нет возможности писать программные макросы, которые отработают ещё на стадии компиляции в конфигураторе - один раз внеся изменения в форму - а не каждый раз при её создании в runtime.
Ну и фреймов не хватает - ведь один раз так перенести элементы в программный код это не страшно. А если их постоянно приходится модифицировать - это дальше чаще придётся уже работать исключительно с программным текстом, а нес формой.
И ещё есть сложности - порой при добавлении новых элементов на форму приходится перемещать имеющиеся - это самое неприятное. Впрочем это может быть чревато большими проблемами при любом подходе: и программном и при изменении на самой форме.

3. Минимизировать использование аннотации &Вместо
Конечно, с приходом аннотации "&ИзменениеИКонтроль" использование "&Вместо" должно существенно сократиться, но 15- релиза ещё нет даже в бете. Ну а далее - боюсь всё-равно будет куча проблем с сопровождением - там время покажет, пока ещё нечего даже пощупать.
Но, сам формат данной аннотации - мне уже сейчас не нравится - идея хорошая - исполнение отвратительное (Увы это норма для 1С).
Лучше бы парадигму аспектного программирования в 1С привнесли - вот это был бы прорыв.

4. Делать независимые друг от друга расширения
Совет был бы дельным. Но, я уже написал, в самом начале, что лучше вообще делать одно расширение (или пару - полностью независимых друг от друга). Иначе - будут проблемы другого рода - если разные расширения имеют общую основу (как общие модули, так и другие метаданные) - то если их делать полностью автономными - то - эти общие элементы будут в них дублироваться от того сразу ряд проблем:
а. Дублирование кода и метаданных - нужно будет во всех расширениях вручную поддерживать его актуальность - особенно сложно, когда его будут менять в разных проектах и разные команды.
б. Дублирование метаданных так же вызовет конфликт дублирования имён - при установки таких автономных расширений в одну ИБ. Да, конечно же - придётся
разграничивать их все префиксами разными расширений
в. Дублирование метаданных, сохраняемых в СУБД - вообще, можно сказать, невозможно, в большинстве случаев
г. Дублирование да даже не сохраняемых в СУБД метаданных - может быть проблемным - когда, скажем, нужно будет иметь расшаренные глобальные перенные
(параметры сеанса пока расширения вообще не поддерживают - в 14 релизе).
д. Дублирование метаданных приведёт ещё и к дублирование прав доступа к ним (ролей) - настройка прав превратится в хаос.
е. Дублирование перехватчиков событимй (да и просто вызовов функций), реализующих одну и ту же логику - создаст ещё больший хаос.
ж. И отдельно упомяну о том, что многие алгоритмы нуждаются в настройках - их где-то надо хранить - плрохая идея дублировать один и тотжемеханизм работы
с настройками для каждого расширения - ведь его ещё и настраивать придётся в отдельных автономных формах.
В общем, проблем много. Лучше всё-таки все свои изменения вести в одном расширении. Как я написал выше - можно сначала вести отдельные расширения, в и т.ч. создавать общие-расшаренные (ну тут тоже желательно не плодить много таких общий расширений) - а потом всё переносить в одно (сравнением/объединением), без дублей - его уже ставить в продакшен-базы.

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

6. Вести реестр расширений
Совет дельный, но делать это очень не удобно. Увы - с документированием конфигураций в 1С Предприятие 8 всё очень печально. А вести в отдельном приложении - не очень удобно. Разве что только настраивать GIT и подключать сторонние приложения для решения вопросов документирования уже к GIT-депозитарию -- но это очень не простой путь для 1С разработчиков.
Вести в OneNote - тоже как-то не очень удобно (лично сколько раз порывался - но так и не смог полюбить OneNote - мне не удобно, но, возможно, я просто не научился его готовить).
Ввёл, как-то в отдельной кустарной конфигурации (ещё до появления расширений - для фиксации доработок обычных конфигураций) - это даже как-то удобнее было (метаданные автоматически туда подтягивались фоновым процессом - та же был учет задач и проектов - нужно было только подцепить метаданные к уже имеющимся там задача и всё) - но такую конфигурацию нужно разрабатывать себе самостоятельно - под свои предпочтения и свой учет планирования работа ИТ-отдела.
Mi4man; jif; davdykin; kostas; dvpk1c; user1183297; VladC#; YPermitin; Il; Vladimir Litvinenko; +10 Ответить
79. 77dream77 168 10.04.19 12:59 Сейчас в теме
использую расширения на проектах давно (более 2 лет), даже читал курсы по ним 😊
Из последнего проекта перехода с КА 1.1 на КА 2.4 - там все изменения сделаны через расширения (41 расширение), в конфигурации только новые объекты/реквизиты и одно изменение кода из-за нежелательности применения расширения в данном случае. Было 3 обновления с начала года - никаких проблем
много расширений настраивал для типовых ЗУП, БП, Итилиума, КА, ДО
Много расширений приходится переделывать после других, если неправильно настроены – то они валятся после очередного обновления.
при правильной настройке расширения - очень удобный и стабильный механизм, нужно просто понимать что можно делать через расширение, а что нет

к статье я бы добавил следующее:
1. полностью согласен, для одного объекта/формы отдельное расширение.
одно расширение опасно тем, что при ошибке подключения теряется весь функционал, который заложен в нем
а при отдельных расширениях только небольшая часть отключается и его можно будет легко поправить
2. да, лучше делать программные изменения
но новые элементы формы я обычно добавляю на форму в редакторе. Для них обязательно использую префиксы, новые группы с префиксами и никогда не изменяю типовые реквизиты на форме, только программно
проблем пока не было
3. согласен, аннотация Вместо - это крайний случай и часто бывают проблемы с расширением после обновления, но есть и плюсы…
Последний раз ее применял для доработки печати ТТН и УПД.
Вместо вызывает типовую процедуру получения данных, которая возвращает результат запроса
Этот результат выгружается в ТЗ, обрабатывается, добавляются новые колонки с данными при необходимости и помещаются обратно в результат.
Таким образом при изменении типовой процедуры ничего не сломается даже при изменении запроса или колонок результата, а дальше в коде я ориентируюсь на свои добавленные колонки, которые тоже останутся и не мешают работе типовой.

4. согласен, но если функционал как-то пересекается, то можно общий функционал вынести в отдельный общий модуль конфигурации, например.
Здесь все зависит от решаемой задачи.
5. да, я пока тоже не доверяю хранение важных данных расширению, добавляю новые объекты в конфигурацию.
6. отдельного реестра не веду, все описание в комментариях в расширении или в отдельном макете.
Но для удобства анализа версии расширений – использую реквизит Версия, в него записываю последнюю дату редактирования расширения, например, 10.04.2019
Таким образом при большом количестве расширений очень удобно понимать в какой базе какая версия и переносить изменения, например, из копии в рабочую. Присваивать просто номер версии типа 1.1 неудобно, потому что не известно какая версия последняя, а с датой всегда понятно.

Также после окончательной готовности расширения удаляю все не используемые реквизиты/объекты, отключаю все не нужные для меня зависимости и контроли, добиваюсь, чтобы проверка конфигурации расширения не выдавала ошибок.
Таким образом в расширении остается только измененные и важные для расширения объекты с отключенными контролями и т.п.
При обновление обязательно проверяю все расширения на применимость и еще раз запускаю проверку конфигурации, если она выдает ошибку – ищу причину и устраняю. Таким образом после обновления можно быт спокойным, что на следующий день рабочая будет стабильна и тебя не засыпят ошибками пользователи.
Из недавнего – в КА 2.4 изменилось название документов с ПоступлениеТоваров на Поступление товаровНаСклад, а оно использовалось в двух расширениях в проверке типа и в запросе. Проверка конфигурации естественно выдало эту ошибку, и я ее исправил сразу после обновления до наката на рабочую. Если бы не делал такую проверку, то на следующий день два важных функционала отвалилось бы с ошибкой и утро началось бы не с кофе…
Angealtor; AllexSoft; o.nikolaev; Krio2; worker1c; ellavs; +6 Ответить
73. rpgshnik 10.04.19 07:23 Сейчас в теме
Хорошая публикация. Расширения использую. Фактически самостоятельно пришел к тем же рекомендациям/правилам:
1. Не дробить расширения, где-то слышал сплетни, что несколько расширений - тормозят базу, а одно нет. По этому одно расширение на одну конфигурацию, желательно конечно!
2. Изменять свойства элементов форм программно, согласен.
3. Минимизация использования директивы &Вместо это вообще святое, уже не однократно черпнул горя. Надеюсь директива &ИзменениеИКонтроль поможет в этом, но практика показывает, режим совместимости на типовых конфигурациях очень сильно не успевает за актуальной рабочей версией платформы. Когда она будет? Через год, минимум наверное :)
4. Независимые расширения, это наверное правило а не рекомендация. Да и вообще пункта 4 не должно быть, учитывая пункт 1 :)
5. Все новые объекты строго в основной конфигурации, удаление расширения явно приведёт к потере данных. Тем более создание новых объектов ни как не повлияет на обновление. А уже обработка их на форме и т.п. строго в расширение. Так же слышал по сплетням, что общие модули так же лучше создавать в основной конфигурации и якобы длительные операции значительно быстрее отрабатывают в основной конфигурации, а не в расширении.
6. Реестры доработок в целом для всего это плюс.
ids79; kostas; Interrupted; lefthander; ellavs; +5 Ответить
90. e-tixom 95 10.04.19 21:13 Сейчас в теме
(0) (86) Хорошая статья. Спасибо.
У нас Бухгалтерия 3.0. На расширении сделана целая подсистема со своими справочниками и документами. https://infostart.ru/public/956446/ Сначала были опасения о потере данных, но было условие не менять конфигурацию. Рискнули. Пока все нормально. Были глюки с установкой обновлений, кажется февральских. Приходилось отключать расширения и после загрузки конфигурации закрывать конфигуратор и продолжать обновлять уже в пользовательском режиме. Но сейчас проблема ушла. В принципе, расширения - довольно хороший инструмент. Среди плюсов также можно также отметить возможность использования его для отладки, например, новых печатных форм или отчетов.

Из проблемных ситуаций могу отметить:
1. никогда не получалось динамическое обновление расширений и подключение новых при работающих пользователях. Возможно это был глюк платформы или релиза, но я больше не рискую: быстрота не стоит возможной потери данных. Лучше как положено: архив и т.д. ...
2. В формах списков добавленных справочников и документов отсутствует стандартная команда "вывести список". Создавала даже тему на форуме https://forum.infostart.ru/forum29/topic204577/ . Но решение не известно (по крайней мере мне).
3. В добавленных документах нет стандартных кнопок "Дт Кт" и "Структура подчиненности" (соответственно они не отображаются в структуре подчиненности объектов основной конфигурации). Допилить, конечно, можно, но уже с помощью своих кнопок.
Yashazz; ellavs; acanta; +3 Ответить
92. dsdred 12.04.19 11:28 Сейчас в теме
45. nagimo 08.04.19 13:19 Сейчас в теме
Спасибо.
Очень полезная статья!

насчет Используете ли Вы расширения в своей работе?
Использую. Я их фанат! )) Очень доволен. Но в основном использую в небольших организациях.

Из проблем:
1. Действительно, после каждого обновления приходится пока актуализировать заимствованные формы. Думаю воспользоваться советом и формировать их программно. Хотя в большинстве случаев обхожусь дополнительными реквизитами формы без изменения самой формы.
2. Так и не связал их с хранилищем 1С.
3. Постоянно забываю про проблему с конструктором запроса - сначала ступор - почему нет большинства объектов конфигурации, и только потом доходит, что это же расширение. Приходится делать лишние движения с вызовом конструктора из обработки или кода основной конфигурации.
4. Периодически (но вообще не часто) приходится переписывать некоторые наследованные процедуры - когда меняется состав аргументов. И это не только для процедур с оператором &Вместо.
Остальные комментарии
Избранное Подписка Сортировка: Древо
83. ellavs 644 10.04.19 16:00 Сейчас в теме
(82) а как тогда отличить версию расширения позавчерашнюю, от вчерашней/сегодняшней? А еще бывает утром один программист зарелизит, а я потом нахожу ошибку и вечером делаю новый релиз расширения (в версии ставлю "10.04.2019 22:30"), в этом случае понятно, какого времени релиз.
84. lefthander 10.04.19 16:02 Сейчас в теме
(83)у меня не было такой проблемы, я был один... Готовил в хранилище версию для обновления, что то дорабатывал в расширении затем делал поставку с версией БП и менял версию в расширении :)
102. o.nikolaev 193 18.07.19 19:03 Сейчас в теме
(79) Тот случай когда комментарий тянет на отдельную публикацию.
108. 77dream77 168 19.07.19 14:28 Сейчас в теме
86. sergathome 10.04.19 17:44 Сейчас в теме
Расширения не использую по причине боязни потери данных, так как большинство доработок связаны именно с хранением. Есть идейка заменить комплект внешних допотчетов одним расширением, но пока руки не доходят. Идея с выносом туда сервисов и прочих интеграций кажется рабочей.
90. e-tixom 95 10.04.19 21:13 Сейчас в теме
(0) (86) Хорошая статья. Спасибо.
У нас Бухгалтерия 3.0. На расширении сделана целая подсистема со своими справочниками и документами. https://infostart.ru/public/956446/ Сначала были опасения о потере данных, но было условие не менять конфигурацию. Рискнули. Пока все нормально. Были глюки с установкой обновлений, кажется февральских. Приходилось отключать расширения и после загрузки конфигурации закрывать конфигуратор и продолжать обновлять уже в пользовательском режиме. Но сейчас проблема ушла. В принципе, расширения - довольно хороший инструмент. Среди плюсов также можно также отметить возможность использования его для отладки, например, новых печатных форм или отчетов.

Из проблемных ситуаций могу отметить:
1. никогда не получалось динамическое обновление расширений и подключение новых при работающих пользователях. Возможно это был глюк платформы или релиза, но я больше не рискую: быстрота не стоит возможной потери данных. Лучше как положено: архив и т.д. ...
2. В формах списков добавленных справочников и документов отсутствует стандартная команда "вывести список". Создавала даже тему на форуме https://forum.infostart.ru/forum29/topic204577/ . Но решение не известно (по крайней мере мне).
3. В добавленных документах нет стандартных кнопок "Дт Кт" и "Структура подчиненности" (соответственно они не отображаются в структуре подчиненности объектов основной конфигурации). Допилить, конечно, можно, но уже с помощью своих кнопок.
Yashazz; ellavs; acanta; +3 Ответить
91. ellavs 644 11.04.19 17:48 Сейчас в теме
(90) спасибо за отзыв. По п.1 - несколько раз приходилось производить срочное обновление расширения динамически, когда в базе сидело около 15-20 пользователей. Вроде проходило без проблем, или я про них просто не узнала )
95. muskul 13.04.19 03:31 Сейчас в теме
Кто объяснит почему тотже конструктор запроса в расширении не работает так как не видит таблиц, что как бы логично с одной стороны так как это отдельная конфа, но при этом в любой обработке которая даже не сохранена это работает. Неужели нельзя было скрестить
118. Yashazz 2887 23.08.19 19:30 Сейчас в теме
(95) Потому что кривая приблуда. Оно много чего не видит, не цепляет или, что хуже, теряет иногда.
Darklight; +1 Ответить
96. n0nsense 15.04.19 16:08 Сейчас в теме
Собратья и любители расширений, есть такая проблема https://forum.infostart.ru/forum9/topic215446/
Сталкивался ли кто с подобным?
100. zqzq 17 22.04.19 10:03 Сейчас в теме
Расширение не использую.
1. Основная база УПП на 8.2
2. Обновляю на платформе 8.3 с использованием (штатным) kdiff3 для трехстороннего объединения модулей -- в 99.9% случаях kdiff сам разруливает изменения. И особого смысла в расширениях не вижу, если честно, для данной ситуации. Модификация форм программно, естественно.
101. Vladimir45 63 18.07.19 08:25 Сейчас в теме
Начали про программное изменение формы, но не закончили самое главное:

Добавление/изменение реквизитов тоже делать программно.
Создание команд тоже программно.

А вот хинт как сделать для существующих кнопок &после или &перед?
А хинт с пустой формой в расширении?

обсудим в личке? потом сможете добавить в статью.
109. AllexSoft 19.07.19 16:25 Сейчас в теме
Статья полезна, спасибо за то что делитесь опытом!
2. Изменения расширяемых форм делать программно.

Когда нужно добавить пару элементов форм или изменить свойства, все это правильно и хорошо, но когда объем доработок нарастает то либо выделять функционал в отдельную форму, а из основной формы сделать ссылку "Перейти в...". Например сильно доработана форма договоров с контрагентами, добавлено много своих реквизитов, табличные части, предпросмотр файлов и тд.. в итоге сделали отдельную форму элемента для этого справочника, а в типовой форме программно сделали ссылку "Перейти к документам...". Так и у пользователей нет дискомфорта, по сути для них добавилась только одна ссылка по которой надо кликать что бы попасть в нужную форму из привычной формы справочника.

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

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

ПС: задумываюсь выложить подсистему на ИС, по всей видимости придется перебороть лень )
Yashazz; AlX0id; ellavs; +3 Ответить
119. Yashazz 2887 23.08.19 19:33 Сейчас в теме
(109) Вот да, соглашусь. Советовать "программное изменение форм" может только наивный, который с этим кодом потом дела не имел. Это непрозрачный, неуправляемый и легко устраиваемый любым вмешательством тихий Адъ.
Гораздо разумнее, например, сделать свою форму, а в типовой (если уж вам так любы расширения, то в расширенной) поставить перехват при открытии, ну и перехваты подписок на события, оповещений итд.
Или вот как Алекс говорит (я, кстати, в одном из проектов примерно так и делал, и безо всяких там расширений отлично работает).
110. skv_79 167 26.07.19 10:22 Сейчас в теме
"Поменять последовательность исполнения расширений не самая тривиальная задача. Как говорят разработчики: расширения исполняются в последовательности их добавления в конфигурацию и поменять их местами можно только через удаление/добавление (а если расширения содержали хранимые данные, то сделать это может стать невозможно)."

Разве для этого не существует как Назначение, насколько я понимаю приоритет расширения конфигурации зависит от него:
1. Исправление
2. Адаптация
3. Дополнение
Чем меньше цифра, тем выше приоритет расширения.
Прикрепленные файлы:
112. ellavs 644 26.07.19 11:46 Сейчас в теме
(110) если расширений больше трех, то этот вариант перестает работать ;) Сейчас, например, в одной из конфигураций 12 расширений, это после объединения (до этого было около 25).
114. skv_79 167 26.07.19 12:13 Сейчас в теме
(112) Все-же мне кажется что количество многовато. Насколько знаю, расширения 1С планирует использовать как модульность, с добавлением сразу целой подсистемы. Недавно вроде даже анонс был, что-то начинают как расширение распространять.
115. ellavs 644 26.07.19 13:18 Сейчас в теме
(114) ну вот Вы говорите, что что-то распространяется уже в качестве расширений (тут на инфорстарте тоже доработки в виде расширений часто выкладывают). Я тоже выкладываю некоторые свои расширения.
Допустим, Вам какие-то понравились, Вы их скачали. Вы будете их устанавливать как отдельные расширения или начнете вручную их объединять в какое-то одно?
Многие, особенно те, кто не очень хорошо разбирается в программировании, просто устанавливают эти расширения себе в базу и работают. В итоге у них таких расширений может довольно много накопиться.
116. skv_79 167 26.07.19 13:49 Сейчас в теме
(115) Да, если так, то это та тема, над которое 1С следует еще подумать. С одной стороны расширения создавались как упрощение поставки именно для обычных пользователей, с другой если расширений становится больше - то это новое поле деятельности для программистов.
120. Yashazz 2887 23.08.19 19:34 Сейчас в теме
(112) Зоопарк. Мне вас искренне жаль.
Darklight; +1 Ответить
111. acanta 74 26.07.19 10:29 Сейчас в теме
Да, но можно ли явно указать последовательность в пределах например, адаптации? Можно ли увидеть где-то результирующий исполняемый код с учётом всех наложений?
113. ellavs 644 26.07.19 11:48 Сейчас в теме
(111)
можно ли явно указать последовательность в пределах например, адаптации?

Насколько знаю, нет.
В качестве эксперимента, можно попробовать написать код в расширениях, который будет где-то фиксировать свой запуск, чтобы в итоге увидеть, кто в какой последовательности запустился...
117. Yashazz 2887 23.08.19 19:29 Сейчас в теме
Уж не знаю, откуда столько восторгов по поводу этой кривой приблуды, "расширений"... Вот как встанете, господа, с размаху на какие-нибудь грабли этой дряни, так сразу поймёте, что пилить конфу и потом обновлять - оно, конечно, трудоёмко, но в разы стабильнее, если по-умному организовать доработку. А тут, во-первых, любители программно допиливать формы, которые запарятся потом в своём или не своём коде этих динамических доработок разбираться (ибо визуализации ноль), во-вторых рисковые парни с хранением данных в расширении... Ну-ну, флаг в руки. До первых граблей, господа)
121. Angealtor 26 09.09.19 12:17 Сейчас в теме
Пробовал ли кто использовать &ИзменениеИКонтроль на платформе 8.3.15.65 в УТ 11?
У меня почему-то не работает ?
Текст ошибки "{ОсновноеРасширение Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(45,3)}: Ожидается оператор препроцессора
#<<?>>Удалить (Проверка: Сервер)
" и.т.д
122. Angealtor 26 12.09.19 11:06 Сейчас в теме
(121)
&ИзменениеИКонтроль("ВозведениеВСтепень")
Функция Расш1_ВозведениеВСтепень(Основание, Степень)
    Результат = 1;
    Для Индекс = 1 По Степень Цикл
#Удаление
        Результат = Результат + Основание;
#КонецУдаления
#Вставка
        Результат = Результат * Основание;
#КонецВставки
    КонецЦикла;
    Возврат Результат;
КонецФункции
Показать
125. Darklight 19 05.11.19 13:54 Сейчас в теме
Никто не написал, что расширения - ущербны тем, что не умеют расширять типы у заимстованных объектов метаданных (реквизитов или определяемых типов)! Вот такая вот засада! Сейчас уже есть релиз платформы 1С: Предприятие 8.3.16 - а расширить типы нельзя.

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


Вот добавите Вы в расширение, скажем, новые документы партий - захотите расширить у регистров измерение "Партия" ("ДокументОприходования") а сделать это не сможете - НИКАК!
Само собой, в основной конфигурации типы этих документов из расширения Вы так же не сможете включить в составной тип данного измерения!

Более того, если в основной конфигурации у такого измерения назначить тип "ДокументыСсылка" (т.е. общий тип для всех документов), то он всё равно не будет включать в себя типы документов из расширений и присвоить их ссылки в это измерение ВСЁ РАВНО БУДЕТ НЕЛЬЗЯ!

Вот такая, свинья в расширениях от 1С заложена!

А уж про то, что все модули (и элементы метаданных) в расширениях не должны пересекаться по именам (а если пересекаются - то нужно для каждого расширения делать свои префиксы и многократно дублировать эти элементы), а заимствовать метаданные в расширение из другого расширения платформа так же, до сих пор, не научилась! Колоссальная проблема повторного использования кода и метаданных!

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

Но, на мой взгляд, всё это можно было делать и через конфигурации поставщиков (что были ещё в 8.2 - разве что механизм их обновления нужно было улучшить). А перехват/подписка на вызов функций - нужно было просто включить в механизм подписки на события (ну или немного переработать его - сделать как в расширениях - но только в составе модулей основной конфигурации).


А нынешнем развитии (а прошло уже много времён, со времён своего появления) - расширения как были сильно ущербными, так ими и остались!
Широко использовать их не рекомендую - проблем и ограничений немерено!

Нужно свою тему пилить для сборки конфигураций из отдельных подсистем (подконфигураций) - на расширения больше надежды нет!
mikele_bes; +1 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата до 120 000 руб.
Полный день