Расширения конфигурации. Полезные советы для разработки

0. Никита Яковлевич (mrXoxot) 1569 07.01.16 11:00 Сейчас в теме
Полезные советы для разработки и применения расширений.
Как подключить отладку, как сохранять данные, последовательность обработчиков, использование модуля менеджера и другое.

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

Лучшие комментарии
1. ya.Avoronov (ya.Avoronov) 12.01.16 11:06 Сейчас в теме
Очень талантливо сделана публикация! Спасибо! Пишите еще!
* Не знал про отладку в расширениях, очень бывает нужно.
* Запросы можно и в консоле запросов стряпать, удобнее.
* Багфикс согласен, очень действенно.
r24al; ram8291; antonst1; Berckk; Montecrizto; e-its; Dmitri93; dj_serega; igormiro; Andry.Boris; Aquashop; onetone; DmitrySinichnikov; isn; kolevatoval; slavap; amon_ra; alexveraww; Dach; DoctorRoza; shalimski; Vova1900; mrXoxot; +23 Ответить
Остальные комментарии
90. Vladimir Glumov (Vovan58) 6 14.03.17 00:05 Сейчас в теме
"Если в расширении переопределить событие или команду, то по умолчанию сначала выполняется обработчик из расширения, а затем обработчик типовой конфигурации." - не понял!? А система спрашивает "До, После, Вместо обработчика" - это как?
91. Никита Яковлевич (mrXoxot) 1569 14.03.17 07:17 Сейчас в теме
(90)
Сейчас расширения развиваются и добавились новые свойства у обработчиков событий.
Теперь можно выбрать когда выполнится обработчик.

Раньше такой возможности не было.
92. qwert asdfg (bad_wag) 02.04.17 18:07 Сейчас в теме
Хочу еще раз поблагодарить автора за статью! Чтото не получается вызвать процедуру через УстановитьВыполнениеПослеОбработчиковСобытия, пишет что метод не обнаружен, хотя прямой вызов отрабатывает нормально, в чем может быть причина?
93. Ирина progr-2008 Санкт-Петербург (progr-2008) 118 03.04.17 00:41 Сейчас в теме
(92)Какая версия платформы?
94. Ирина progr-2008 Санкт-Петербург (progr-2008) 118 03.04.17 01:03 Сейчас в теме
(92)Надо 8.3.9 и отключить режим совместимости.
95. qwert asdfg (bad_wag) 03.04.17 13:22 Сейчас в теме
Дело было в директиве компилятора, нужно указывать такую же как у той функции, от куда идет передача вызова.
96. СЕРГЕЙ СЕЛИКОВСКИЙ (SERGQ) 30 12.04.17 14:48 Сейчас в теме
Спасибо!! За информацию.. Для меня она стала очень полезной.
100. Vladimir Sergeev (DFinteX) 10.06.17 10:08 Сейчас в теме
При добавлении формы документа в расширение, по реквизиту "Документ основание" перетянулась куча документов. В расширении эти доки форм не имеют. Теперь когда запускаю предприятие все эти документы отображаются в таком виде, как если бы для них форм создано не было, т.е. не видят собственные формы типовой конфигурации. Это правильно?

Просто в моём случае расширение усложняет выполнение обновления, т.к. поставщик постоянно допиливает формы, следовательно после обновления типовой конфы - сначала необходимо обновить в расширении формы доков, затем нужно анализировать расширение и убирать "залетевшие" объекты. А если учесть, что модифицированных форм в расширении тоже не мало, то времени оно будет отнимать прям хорошо!

Или я что-то не так делаю?
102. Ирина progr-2008 Санкт-Петербург (progr-2008) 118 10.06.17 22:42 Сейчас в теме
(100)Когда добавляете форму - так и будет.
Добавляйте только то, что конкретно надо.
101. Никита Яковлевич (mrXoxot) 1569 10.06.17 11:51 Сейчас в теме
Добрый день, Владимир.

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

Попробуйте удалить эти объекты из расширения, оставить только те объекты, которые были изменены.
103. Vladimir Sergeev (DFinteX) 12.06.17 09:02 Сейчас в теме
(101) Добрый день! Всё верно, когда убираю "Залетевшие" объекты из расширения, то всё открывается как надо, но ведь при обновлении типовой конфы от поставщика, если форма в типовой изменится и я её обновлю в расширении, у меня вновь залезут все связанные объекты и мне придётся каждый раз чистить расширение от "залетевших" объектов. Просто моё мнение таково, что логичнее было бы при отсутствии формы у объекта в расширении проверять наличие формы в типовой конфигурации, и если она имеется, то открывать её....

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

Поглядим, как будут работать расширения в будущем, может когда-нибудь оно сможет решить мою задачу более рациональней, а пока.... К слову, в 8.3.11 обещают возможность хранения структур данных, а это говорит о стремительном развитии данного направления в платформе.
mrXoxot; caletre; +2 Ответить
105. Александр Днестрян (AlexxSys) 190 28.06.17 10:49 Сейчас в теме
Кто то разбирался, есть ли способ в расширениях
1. Добавление значений в перечисление (которое определено в типовой) ?
2. Добавление предопределенного значение справочника (который определен в типовой) ?

Кнопка добавить в расширение есть, но при добавлении и удалении с основной - начинает материться что то типо "Значение контролируемого свойства Предопределенные не совпадает со значением в расширяемой конфигурации, различаются свойства элемента ...".
106. Никита Яковлевич (mrXoxot) 1569 28.06.17 10:55 Сейчас в теме
(105)
Я пробовал на 8.3.8 - такой возможности не было.
Возможно в 8.3.11 появится вместе с добавлением своих данных.
107. Александр Днестрян (AlexxSys) 190 28.06.17 11:01 Сейчас в теме
(106) Я на 8.3.10 пытался, по пункту 2 - ошибка, по пункту 1 - кнопка добавить неактивна.
В 8.3.11 много вещей в расширениях добавили, но при этом ничего не сказано об этих 2х вопросах.
https://wonderland.v8.1c.ru/blog/rasshirenie-dannykh/
108. Евгений (le_) 178 30.06.17 11:38 Сейчас в теме
А можно ли с помощью расширения управлять видимостью элементов в панелях разделов? Т.е., видимостью по ролям в подсистемах?
111. Никита Яковлевич (mrXoxot) 1569 03.07.17 09:04 Сейчас в теме
(108) Управлять ролями можно будет в 8.3.9. Вернее когда конфигурации снимут режим совместимости с 8.3.8.
112. Артур Аюханов (artbear) 901 03.07.17 14:03 Сейчас в теме
(111) Работа с ролями из расширений почти корректно начинает работать только в 8.3.10 и с БСП 2.4 :( естествено, с отключением режима совместимости.
До этого различные баги - например, в режиме Предприятия стандартными механизмами БСП нельзя установить роль из расширения в профиль доступа.
Есть глюки с правами на объекты.
В 8.3.10.2299 также недавно я выявил баг - не удается установить право "Редактирование" для стандартных реквизитов метаданного (ссылка, код и т.п.) - 1С о баге знают.
обход только в ручном редактировании хмл-файла роли при выгрузке расширения на исходники. Но и это не гарантирует правильность, т.к. в некоторых случаях при записи/обновлении расширения права сбрасываются.
JohnyDeath; Alister; mrXoxot; tormozit; +4 Ответить
113. Никита Яковлевич (mrXoxot) 1569 03.07.17 14:35 Сейчас в теме
(112)
Супер.
Большое спасибо за информацию.
109. Сергей Старых (tormozit) 4545 01.07.17 20:46 Сейчас в теме
Не могу понять свойство ПринадлежностьОбъекта у объекта метаданных.
8.3.10.2375
Создал расширение конфигурации. Добавил в нем новый объект и добавил расширяемый из основной конфигурации. Запускаю предприятие и вижу, что у всех объектов метаданных свойство ПринадлежностьОбъекта = Собственный.

В каком случае это свойство будет иметь значение Заимствованный?
110. Никита Яковлевич (mrXoxot) 1569 03.07.17 09:03 Сейчас в теме
(109)
Тоже проверил на своих объектах.
В итоге:
Новый объект метаданных (общий макет) - Собственный
Измененная форма - Собственный
Все объекты в режиме предприятия - Собственные.
114. soda St (soda) 11.07.17 15:52 Сейчас в теме
Закомментировать одну строчку в общем модуле, это только всю процедуру/функцию скопировать и использовать &вместо?
115. Никита Яковлевич (mrXoxot) 1569 11.07.17 16:35 Сейчас в теме
(114)
Да, и то только в отключенном режиме совместимости с 8.3.9.
116. soda St (soda) 11.07.17 17:22 Сейчас в теме
(115) Жалко, постоянно отслеживать модуль продаж тяжеловато
117. Михаил Темпл (Templ) 12.07.17 18:39 Сейчас в теме
Расширение не видит заимствованный объект Перечисление. Первый раз использую расширение может что не так сделал.
https://yadi.sk/i/qlEhA-NQ3KzCP5

Платформа 8.3.10 режим совместимо с 8.3.8
УТ 11.3
118. Михаил Темпл (Templ) 12.07.17 20:38 Сейчас в теме
(117)Проблема в вызове перечисления на клиенте. Давно с управляемыми формами не работал.
119. qwert asdfg (bad_wag) 17.07.17 12:30 Сейчас в теме
После обновления на 8.3.10 перестала открываться добавленная в расширении форма, в документе добавил кнопку с одной строкой ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.НоваяФорма", ...), и теперь при нажатии на нее выдается сообщение "Неизвестное имя формы. Имя: "Документ.РеализацияТоваровУслуг.Форма.НоваяФорма"". Когда набираю эту строку в конфигураторе, имя формы автоматически заполняется, т.е. система видит, что форма есть. Отключил и безопасный режим и защиту от опасных действий, ничего не меняется. Кто нибудь сталкивался с подобным? Подскажите что нужно сделать?
120. Сергей Старых (tormozit) 4545 17.07.17 13:47 Сейчас в теме
121. qwert asdfg (bad_wag) 17.07.17 14:05 Сейчас в теме
(120) о как... решил добавлением обработки с формой, затем удалил и ошибка пропала.
122. Артур Аюханов (artbear) 901 17.07.17 14:21 Сейчас в теме
(119) Проверь модуль менеджера Документ.РеализацияТоваровУслуг и метод ПолучитьФорму
в конфигурации и в расширении
Из этого метода возвращается что-то не то

Ну и надеюсь, что ты перезапускал Предприятие после отключения/подключения расширения :)
123. Яков Коган (Yashazz) 2148 25.07.17 12:33 Сейчас в теме
(119) Нужно просто не пользоваться расширениями. Или подождать лет 5, пока их доведут до ума)
125. Алексей Беспалов (FreeArcher) 53 25.07.17 13:22 Сейчас в теме
(123) Да ладно на всех проектах пользуемся. Была УТ 11, которую месяц обновляли, перешли на расширения теперь недели хватает.
126. Яков Коган (Yashazz) 2148 25.07.17 16:48 Сейчас в теме
(125) До первых граблей, серьёзной беды с системой и наезда от клиента. Вот как накроются ваши расширения каким-нибудь глюком, да как подадут на вас заказчики в суд, тогда и будете объяснять им, что это "в конкретном релизе платформы немножко сломалось". Ваша позиция - типичное безалаберное "пока гром не грянет", но это до первых граблей, уж поверьте. Потом резко прибавляется опыта и становится понятно, что всякие сырые и кривые поделки - это интересно в плане поковыряться и помечтать, а на серьёзные решения надо применять проверенные временем приёмы. И когда вы будете 2.5 месяца чинить последствия от неработающего расширения, вы поймёте, что "недели хватает" было иллюзорной выгодой)
127. Алексей Беспалов (FreeArcher) 53 25.07.17 17:44 Сейчас в теме
(126) А ну тогда и 1С не надо пользоваться вобще, что мы потеряли на этом форуме ...
elga666; JohnyDeath; +2 Ответить
128. Яков Коган (Yashazz) 2148 27.07.17 13:23 Сейчас в теме
(127) Новыми сырыми кривыми платформами - точно не надо. Я хорошо помню, скольких проблем мы избежали у одного клиента, где была 8.3.6, и как чудовищно косячили почти все релизы 8.3.7 - и как мы были вынуждены постоянно рассказывать клиенту, что "ну это у 1С релиз такой, вот, сами в багтрекере посмотрите, ошибка признана", а клиент матерился, орал и его ну совершенно не интересовал багтрекер. В итоге клиент ушёл, фирма понесла убытки. А всего-то надо было спокойно сидеть на старых проверенных релизах, вовремя выпиливая из обновлений конфигураций хрень, требующую "прямщас" перейти на более новое.

Так что в своё время я потратил лишний месяц на каждого клиента, где имел глупость использовать расширения, и всобачил всё в основные конфы. Зато теперь работает как часы, ни малейших проблем) Ну а обновления... Если грамотно сделать, то и обновления занимают день от силы)
124. Артур Аюханов (artbear) 901 25.07.17 13:15 Сейчас в теме
С расширениями вполне можно работать.
Мы вполне успешно юзаем и разрабатываем расширение для работы в облаке с типовой конфигурацией от 1С и для 1С :)
129. Иван (kibitz) 3 28.07.17 15:23 Сейчас в теме
Спасибо за отличную статью!
130. Андрей Копеев (andrewrocker) 2 07.08.17 19:02 Сейчас в теме
не могу обратиться "этотобъект" из расширения.
131. Андрей Копеев (andrewrocker) 2 07.08.17 19:03 Сейчас в теме
чем можно заменить обращение "этотобъект"
132. Никита Яковлевич (mrXoxot) 1569 07.08.17 19:51 Сейчас в теме
(131)
А что конкретно делаете?
Может нужен просто Объект? Или РеквизитФормыВЗначение()?
136. Дмитрий К (SuhoffGV) 10.11.17 21:45 Сейчас в теме
Спасибо за статью. Отлично и подробно изложено, хоть в рамку вешай над столом.

Помогите пожалуйста советом или пните в нужном направлении. Разрабатываю для клиентов расширение под "Комплексная автоматизация 2". В одном из последних релизов 1с сняла режим совместимости и появилась возможность свои общие модули вынести в расширение. И тут столкнулся со странной ошибкой:
Есть общий модуль в расширении, в свойствах модуля стоит только "Сервер". Так же в расширении есть форма документа. Из формы в расширении вызывается процедура этого общего модуля (из расширения) . При синтакс-проверке 1с выдает ошибку что не видит этот модуль:

{МоеРасширение Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(5,2)}: Переменная не определена (ГФ_МойОбщийМодуль)
	<<?>>ГФ_МойОбщийМодуль.гаЗаказПокупателяФормаДокументаПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка); (Проверка: Сервер)


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

Это баг 1с или я что-то проглядел по неопытности?

Платформа 8.3.10.2466, база запущена с ключем "/C РежимОтладки". База файловая. В свойствах расширения флажок "Безопасный режим" снят, "Защита от опасных действий" - стоит.
137. Константин Хоров (user705522_constantin_h) 1 10.11.17 23:16 Сейчас в теме
(136) У меня то же самое. Думаю, баг 1С. Просто только недавно добавили общие модули в расширение. Наверное до конца не доделали.
140. Дмитрий К (SuhoffGV) 15.11.17 18:52 Сейчас в теме
(137) Спасибо. Отлегло. Думал это мой баг, а это фича 1с.
142. Сергей Середин (ssn5810) 69 06.12.17 07:16 Сейчас в теме
Подскажите пож. как сохранить значение, при записи документа, в добавленном поле табличной части ?
143. Евгений Мартыненков (JohnyDeath) 290 06.12.17 10:59 Сейчас в теме
144. Сергей Середин (ssn5810) 69 06.12.17 16:16 Сейчас в теме
в добавленное с помощью расширения колонку (поле) табличной части.
Прикрепленные файлы:
145. Евгений Мартыненков (JohnyDeath) 290 06.12.17 20:17 Сейчас в теме
(144) возможность добавления новых РЕКВИЗИТОВ объектов добавлена только в платформе 8.3.11
Берите ее, так будет удобнее всего.

Если же обновить платформу не представляется возможным, то придется выкручиваться. Есть несколько способов. Один из них - хранить в хранилище настроек. По-моему где-то здесь описывалось подробнее: http:// /news/2016-07-27-how-to-use-extensions/
146. Сергей Середин (ssn5810) 69 07.12.17 07:13 Сейчас в теме
Появилось добавление реквизитов но .... "недопустимо в режиме совместимости 8.3.10 и ниже" конфигурация БП 3, там еще не созрели.
147. Евгений Мартыненков (JohnyDeath) 290 07.12.17 07:36 Сейчас в теме
(146) тогда жди или сам снимай )
колхозить через хранилище настроек не рекомендовал бы
148. Дмитрий Соколов (D.B.Sokolov) 43 07.12.17 15:24 Сейчас в теме
В 8.3.11 появилась возможность добавлять свои прикладные объекты в расширение (документы, справочники ...) и добавлять свои реквизиты в существующие объекты.

P.S. Опс. Уже написали... не заметил )))
149. Максим Назаренко (ElectronicWizard) 12.12.17 09:17 Сейчас в теме
Статья очень сильно помогла, спасибо!
Творить начал не давно и переписывать основную конфигурацию может и не сложно, но сложно потом вести большие изменения...
Благодаря вашей статье, перешёл на расширения, неожиданно для себя открыл новые двери! :)
Кстати вопрос, сам ещё не пробовал, может кто делал и поделиться опытом
Можно ли связать два или более расширения вместе, что бы код выполнялся с разных расширений?

P.S Прошу прощения, если уже есть ответы на данный вопрос.
150. Никита Яковлевич (mrXoxot) 1569 12.12.17 10:56 Сейчас в теме
(149)
Ну разработчики платформы не рекомендуют так делать.
Каждое расширение должно нести свою функциональность и не знает о других расширениях ничего.

Если имеется в виду, чтобы из одного расширения вызвать код другого расширения, то теоретически это возможно.
В режиме предприятия будут доступны функции всех расширений. В режиме конфигуратора будут выдаваться ошибки, что возможно ошибочный метод.
151. Максим Назаренко (ElectronicWizard) 12.12.17 12:29 Сейчас в теме
(150)
"Если имеется в виду, чтобы из одного расширения вызвать код другого расширения, то теоретически это возможно. "
Это и имеется ввиду :)
Допустим такая ситуация, есть расширение X и S, что бы каждый раз не обращаться к разным расширениям, хотелось бы последовательно "прыгать" в разные части кода из X в S например.
Теоретически это вроде возможно, но на практике не понимаю как получить другие расширения и "залезть" в них.
На личном опыте попробовать не удалось пока.
Оставьте свое сообщение