0. mrXoxot 1942 07.01.16 11:00 Сейчас в теме

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

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

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

Лучшие комментарии
1. ya.Avoronov 12.01.16 11:06 Сейчас в теме
Очень талантливо сделана публикация! Спасибо! Пишите еще!
* Не знал про отладку в расширениях, очень бывает нужно.
* Запросы можно и в консоле запросов стряпать, удобнее.
* Багфикс согласен, очень действенно.
houpl; DivS; 18101986; sheykin; olegtymko; bursanb; distorshion; Maxis; awk; pavel_pss; birk; 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; v.yaunzhekars@gmail.com; mrXoxot; +34 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
85. denius753 20.02.17 08:47 Сейчас в теме
Когда добавляешь форму в расширение, вместе с ней автоматически тянутся все связанные объекты. Можно ли эти объекты потом удалить из расширения, чтобы они не мешались, или тогда формы перестанут работать? А то получается при обновлении каждый раз нужно следить, чтобы доки, справочники и их реквизиты в расширении соответствовали основной конфигурации (типы реквизитов ), а когда их много в расширении, то не очень удобно...
86. mrXoxot 1942 20.02.17 10:05 Сейчас в теме
(85)
Удалить реквизиты можно и расширение будет работать в режиме предприятия.
Но в конфигураторе форма может отображаться неправильно из-за того, что не будет хватать каких-то данных.

Другой вариант снять у объектов проверку.
Такая двойная птичка. В этом случае реквизиты не будут проверяться.
88. bad_wag 18 21.02.17 16:06 Сейчас в теме
(86) Спасибо, очень помог ваш пост! А как быть, если я хочу сделать обработку тч в расширении, ставлю выполнение после типового обработчика нажатия кнопки, а там выполняется отложенное действие и заполнение тч происходит после того, как пользователь ответит на вопрос? Т.е. выполнение моего кода происходит как и положено, после типового обработчика, но ДО! того как тч будет заполнена через описаниеоповещения. (Это кнопка заполнить в документе ОтражениеЗарплатыВБухучете в ЗуП 3)
89. mrXoxot 1942 21.02.17 16:55 Сейчас в теме
(88)
Привет, я бы в этом случае полностью заменил обработчик команды.
Но в этом случае, придется дублировать код из типовой.
172. as7bs 143 21.07.18 13:23 Сейчас в теме
(86)
Другой вариант снять у объектов проверку.

А можно поподробнее, нигде не нашел.
90. Vovan58 34 14.03.17 00:05 Сейчас в теме
"Если в расширении переопределить событие или команду, то по умолчанию сначала выполняется обработчик из расширения, а затем обработчик типовой конфигурации." - не понял!? А система спрашивает "До, После, Вместо обработчика" - это как?
91. mrXoxot 1942 14.03.17 07:17 Сейчас в теме
(90)
Сейчас расширения развиваются и добавились новые свойства у обработчиков событий.
Теперь можно выбрать когда выполнится обработчик.

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

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

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

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

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

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

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

Кнопка добавить в расширение есть, но при добавлении и удалении с основной - начинает материться что то типо "Значение контролируемого свойства Предопределенные не совпадает со значением в расширяемой конфигурации, различаются свойства элемента ...".
106. mrXoxot 1942 28.06.17 10:55 Сейчас в теме
(105)
Я пробовал на 8.3.8 - такой возможности не было.
Возможно в 8.3.11 появится вместе с добавлением своих данных.
107. AlexxSys 234 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_ 200 30.06.17 11:38 Сейчас в теме
А можно ли с помощью расширения управлять видимостью элементов в панелях разделов? Т.е., видимостью по ролям в подсистемах?
111. mrXoxot 1942 03.07.17 09:04 Сейчас в теме
(108) Управлять ролями можно будет в 8.3.9. Вернее когда конфигурации снимут режим совместимости с 8.3.8.
112. artbear 1103 03.07.17 14:03 Сейчас в теме
(111) Работа с ролями из расширений почти корректно начинает работать только в 8.3.10 и с БСП 2.4 :( естествено, с отключением режима совместимости.
До этого различные баги - например, в режиме Предприятия стандартными механизмами БСП нельзя установить роль из расширения в профиль доступа.
Есть глюки с правами на объекты.
В 8.3.10.2299 также недавно я выявил баг - не удается установить право "Редактирование" для стандартных реквизитов метаданного (ссылка, код и т.п.) - 1С о баге знают.
обход только в ручном редактировании хмл-файла роли при выгрузке расширения на исходники. Но и это не гарантирует правильность, т.к. в некоторых случаях при записи/обновлении расширения права сбрасываются.
JohnyDeath; Alister; mrXoxot; tormozit; +4 Ответить
113. mrXoxot 1942 03.07.17 14:35 Сейчас в теме
(112)
Супер.
Большое спасибо за информацию.
109. tormozit 4954 01.07.17 20:46 Сейчас в теме
Не могу понять свойство ПринадлежностьОбъекта у объекта метаданных.
8.3.10.2375
Создал расширение конфигурации. Добавил в нем новый объект и добавил расширяемый из основной конфигурации. Запускаю предприятие и вижу, что у всех объектов метаданных свойство ПринадлежностьОбъекта = Собственный.

В каком случае это свойство будет иметь значение Заимствованный?
110. mrXoxot 1942 03.07.17 09:03 Сейчас в теме
(109)
Тоже проверил на своих объектах.
В итоге:
Новый объект метаданных (общий макет) - Собственный
Измененная форма - Собственный
Все объекты в режиме предприятия - Собственные.
114. soda 11.07.17 15:52 Сейчас в теме
Закомментировать одну строчку в общем модуле, это только всю процедуру/функцию скопировать и использовать &вместо?
115. mrXoxot 1942 11.07.17 16:35 Сейчас в теме
(114)
Да, и то только в отключенном режиме совместимости с 8.3.9.
116. 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. bad_wag 18 17.07.17 12:30 Сейчас в теме
После обновления на 8.3.10 перестала открываться добавленная в расширении форма, в документе добавил кнопку с одной строкой ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.НоваяФорма", ...), и теперь при нажатии на нее выдается сообщение "Неизвестное имя формы. Имя: "Документ.РеализацияТоваровУслуг.Форма.НоваяФорма"". Когда набираю эту строку в конфигураторе, имя формы автоматически заполняется, т.е. система видит, что форма есть. Отключил и безопасный режим и защиту от опасных действий, ничего не меняется. Кто нибудь сталкивался с подобным? Подскажите что нужно сделать?
120. tormozit 4954 17.07.17 13:47 Сейчас в теме
121. bad_wag 18 17.07.17 14:05 Сейчас в теме
(120) о как... решил добавлением обработки с формой, затем удалил и ошибка пропала.
122. artbear 1103 17.07.17 14:21 Сейчас в теме
(119) Проверь модуль менеджера Документ.РеализацияТоваровУслуг и метод ПолучитьФорму
в конфигурации и в расширении
Из этого метода возвращается что-то не то

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

Так что в своё время я потратил лишний месяц на каждого клиента, где имел глупость использовать расширения, и всобачил всё в основные конфы. Зато теперь работает как часы, ни малейших проблем) Ну а обновления... Если грамотно сделать, то и обновления занимают день от силы)
124. artbear 1103 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 1942 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 10 10.11.17 23:16 Сейчас в теме
(136) У меня то же самое. Думаю, баг 1С. Просто только недавно добавили общие модули в расширение. Наверное до конца не доделали.
140. SuhoffGV 15.11.17 18:52 Сейчас в теме
(137) Спасибо. Отлегло. Думал это мой баг, а это фича 1с.
142. ssn5810 76 06.12.17 07:16 Сейчас в теме
Подскажите пож. как сохранить значение, при записи документа, в добавленном поле табличной части ?
143. JohnyDeath 291 06.12.17 10:59 Сейчас в теме
144. ssn5810 76 06.12.17 16:16 Сейчас в теме
в добавленное с помощью расширения колонку (поле) табличной части.
Прикрепленные файлы:
145. JohnyDeath 291 06.12.17 20:17 Сейчас в теме
(144) возможность добавления новых РЕКВИЗИТОВ объектов добавлена только в платформе 8.3.11
Берите ее, так будет удобнее всего.

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

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

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

Если имеется в виду, чтобы из одного расширения вызвать код другого расширения, то теоретически это возможно.
В режиме предприятия будут доступны функции всех расширений. В режиме конфигуратора будут выдаваться ошибки, что возможно ошибочный метод.
151. ElectronicWizard 12.12.17 12:29 Сейчас в теме
(150)
"Если имеется в виду, чтобы из одного расширения вызвать код другого расширения, то теоретически это возможно. "
Это и имеется ввиду :)
Допустим такая ситуация, есть расширение X и S, что бы каждый раз не обращаться к разным расширениям, хотелось бы последовательно "прыгать" в разные части кода из X в S например.
Теоретически это вроде возможно, но на практике не понимаю как получить другие расширения и "залезть" в них.
На личном опыте попробовать не удалось пока.
153. KAV2 14.01.18 06:34 Сейчас в теме
снимаю вопрос, разобрался, просьба удалить сообщение
154. KAV2 15.01.18 04:26 Сейчас в теме
Ух как неуодобно что в конструкторе запросов не видны все реквизиты :-) надеюсь пофиксят, это конечно фича, а не баг, но хотелось бы что-бы она была отключаемой.
155. artbear 1103 15.01.18 17:02 Сейчас в теме
(154) Это фича.
Видны только те метаданные/реквизиты, которые добавлены в расширение.
156. KAV2 16.01.18 05:30 Сейчас в теме
(155) Только непонятен сценарий когда эта фича нужна, расширение само по себе не работает, поэтому по определению всегда каких-то метаданных в нем будет не хватать, оттого путь к конструктору запросов закрыт для разработчика расширения.
157. SuhoffGV 16.01.18 11:25 Сейчас в теме
(156) Почему "нехватать". Если вы делаете "универсальное" расширение, дополняющее функционал типовой конфигурации, то запросы к объектам конфигурации могут быть не нужны.

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

Хотя и без этого проблем с расширениями пока хватает. Чего только стоит вопрос их обновления при обновлении типовой конфы.
158. dr_dom 66 17.01.18 12:56 Сейчас в теме
(157)А по поводу проблемы обновления, совсем ничего нельзя сделать, что бы этот вопрос отпал? Какие вообще есть варианты автоматизации? Имеется простейшее расширение, и при обновлении типовой - перестает работать. Его как-то можно отвязать от версии типовой конфы?
159. SuhoffGV 17.01.18 17:17 Сейчас в теме
(158) Автоматизации практически нет. Есть механизм проверки применимости расширения.

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

Вот прямо сейчас обновляю КА2 с доработками и парой расширений - 2 релиза проехал, но расширения работают как надо. Но это ещё и везение, в этих релизах 1с не трогала функционал который я дорабатывал в расширениях.
160. mnb-next 2 27.02.18 14:45 Сейчас в теме
Добрый день! Создаю Расширение для ЗУП 3 (8.3.11.2924, Зарплата и управление персоналом, редакция 3.1 (3.1.4.161)). Добавляю в Расширение типа "Дополнение" подсистему, роль для новых объектов и документ, добавляю в командный интерфейс - расширение сохраняется, подсоединяется, но объекты на появляются в интерфейсе в пользовательском режиме. И даже ранее в расширении типа "Адаптация" я создавала новый документ, даже видела его, но из-за ошибок с идентификаторами объектов оставила в расширении-адаптации только доработку табличной части штатного расписания. И теперь что бы ни делала - объекты расширения-дополнения не видны ни в подсистеме (и саму подсистему не вижу), ни при создании нового профиля, ни в режиме "Все функции". Может быть кто-то подскажет. куда копать?
161. user705522_constantin_h 10 27.02.18 15:24 Сейчас в теме
(160)В роли расширения для добавленных объектов какие права установлены? В роли у подсистемы в правах должна быть галка Просмотр.
162. mnb-next 2 27.02.18 20:10 Сейчас в теме
(161) Права предоставлены на все объекты на чтение/редактирование/удаление. Если новый документ добавляю в существующую заимствованную в расширение подсистему, все равно в командном интерфейсе этой подсистемы в пользовательском режиме я его не вижу
163. user705522_constantin_h 10 27.02.18 21:37 Сейчас в теме
(162)А если тип расширения сделать Адаптация?
164. mnb-next 2 28.02.18 08:38 Сейчас в теме
(163) От расширения типа адаптация я для создания новых объектов отказалась из-за выдаваемых системой ошибок с идентификаторами объектов - оставила в расширении-адаптации только доработку табличной части штатного расписания, а новые объекты решила создавать в "дополнении".
В расширении-адаптации идентификаторы моих новых объектов в базе данных не обновлялись ни с параметром запуска, ни при изменении версии конфигурации, ни при обновлении конфигурации на новый релиз, ни при попытке влияния на объекты из регистра и справочника.
167. insurgut 193 10.04.18 21:08 Сейчас в теме
Подскажите, в расширении в модуле объекта добавляю код перед записью. При интерактивной записи документа все отлично. При групповом перепроведении - код не отрабатывается. Возможно как-то исправить ситуацию?
168. ElectronicWizard 11.04.18 10:19 Сейчас в теме
(167)
Добрый день, если не ошибаюсь то групповое перепроведение протекает не много по другому, посмотрите по коду в каком моменте он проводит, по моему он не идет в стандартное проведение.
Думаю нужно использовать код во время записи (при записи) или лучше при проведении(самого группового перепроведения).
169. insurgut 193 11.04.18 10:46 Сейчас в теме
(168)
Добрый день, если не ошибаюсь то групповое перепроведение протекает не много по другому, посмотрите по коду в каком моменте он проводит, по моему он не идет в стандартное проведение.
Думаю нужно использовать код во время записи (при записи) или лучше при проведении(самого группового перепроведения).


Спасибо! Перенос (точнее - дублирование) кода в обработчик ОбработкаПроведения решило проблему.

Почему дублирование - потому что поведение разное. Если из формы записывать, то ПередЗаписью отлично отрабатывает. Если из списка запускать, то не доходит до ПередЗаписью и ругается, что количество не заполнено. Тут на помощь приходит обработчик ОбработкаПроверкиЗаполнения.
170. bad_wag 18 06.07.18 16:49 Сейчас в теме
А можно ли вызвать функцию общего модуля, находящегося в расширении из внешней обработки?
171. JohnyDeath 291 06.07.18 20:32 Сейчас в теме
(170) можно. Только в конфигураторе не будет подсказок
173. Milan-1c 26.07.18 16:31 Сейчас в теме
Подскажите, пожалуйста, как заменить проведение документа? не получается перехватить стандартную процедуру. Благодарна за любую подсказку.
174. sonGodv 41 14.09.18 10:47 Сейчас в теме
Статья хорошая, правда несколько устарела.

Не хватает еще одного пункта:
Как сравнить конфигурацию расширения с конфигурацией из файла
175. Romakon92 25.10.18 16:55 Сейчас в теме
Добрый день, столкнулся с проблемой в расширении к конфигурации УТ 11.4.3.167
Добавляю изменения в Общий модуль - "ПодборТоваровСервер", если делать изменения в основной конфигурации - все работает, если добавлять данные расширением - не работает.
Подробнее: https://forum.infostart.ru/forum9/topic202516/
177. FreeArcher 61 28.12.18 04:08 Сейчас в теме
Обновляли УТ 11.3.4 на 11.4.6. В УТ 11.3.4 уже 60% доработок было в расширениях, все формы. Сейчас уже 95% доработок в расширениях. Обновление показало, что вполне можно работать с расширениями и обновлять, даже при переименовании объектов, изменения состава реквизитов и т.д.

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

Пост для сомневающихся на счет использования расширений.
178. shur52 11.01.19 09:30 Сейчас в теме
Попытаюсь высказать свой взгляд на то, чем на самом деле являются расширения 1с.

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

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

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

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

Таким образом, расширения нельзя считать альтернативой изменению основной конфигурации и последующего объединения измененной конфигурации с новой конфигурацией поставщика. Это совсем другое. Это попытка сделать конфигурации 1с масштабируемыми по количеству разработчиков и серьезно сэкономить время этих разработчиков.
179. spacecraft 11.01.19 12:01 Сейчас в теме
(178)
В концепции ООП уже более чем лет 20 как есть понятие инкапсуляции. Это когда методы абстрактных типов перекрываются методами типов-оболочек, надстроек над абстрактными.

Это называется наследованием, а никак не инкапсуляцией. Инкапсуляция это совсем другое.
180. shur52 11.01.19 13:41 Сейчас в теме
(179)
Это называется наследованием, а никак не инкапсуляцией. Инкапсуляция это совсем другое.

Ну, в общем, да) Но по факту, я считаю, что нет четких границ между понятиями Абстрагирование, Наследование и Инкапсуляция. Инкапсуляция - это построение иерархической управляемости. Наследование - это внесение на каждом шаге этой иерархии исключительно изменений, а не дублирования всего, что есть в предке. А абстрагирование - это выделение в конечном классе только методов, определяющих конечное поведение объекта, без всяких технических второстепенных методов. Я думаю, что все эти слова - это попытка разделения одной общей концепции. А каждое из этих трех понятий не имеет смысла без остальных двух. Из четырех принципов ООП - только полиморфизм я воспринимаю как отдельное самодостаточное понятие.
181. spacecraft 11.01.19 14:06 Сейчас в теме
(180) вот откуда такие знания черпаете?
У ООП 3 кита: Наследование, Инкапсуляция и Полиморфизм.
Инкапсуляция это защита данных.
Наследование это иерархия.
Полиморфизм это работа через интерфейсы.

Все остальное внутри этих китов.
182. shur52 11.01.19 14:17 Сейчас в теме
(181)
вот откуда такие знания черпаете?

Видимо, с универа такое понимание у меня осталось. Не вижу большого смысла с вами спорить о терминологии. В разных книжках по-разному вводится ООП. Видимо, мы с вами читали разные книжки. Но вот что написано в википедии, например, https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2­%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%8­0%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B­8%D0%B5. Но это тоже писали конкретные люди. Другие бы люди приложились - может, википедия получилась бы в вашем варианте. Главное не все эти слова, а сама концепция ООП, которую все понимают одинаково.
185. spacecraft 11.01.19 15:50 Сейчас в теме
(182) там могут и не такое написать. Самое забавное в одной статье прямо противоположные данные приводятся. Там же ниже в разделе Основные понятия более менее правдиво.
184. shur52 11.01.19 15:23 Сейчас в теме
И еще хочется дополнить публикацию информацией про аннотации типа &Перед("Процедура1"). Аннотации появились в версии 8.3.9. На мой взгляд, с ними код выглядит попроще, чем с методами типа УстановитьВыполнениеПослеОбработчиковСобытия("ВыполнитьПослеТиповогоОбработчика", ДополнительныеПараметры);
186. mrXoxot 1942 11.01.19 16:24 Сейчас в теме
(184) Да, статья уже устарела.
Позже планирую выпустить новую.
187. shur52 11.01.19 16:36 Сейчас в теме
А в гифках было бы еще не плохо показать способы автоматического создания заголовков методов, замещающих обработчики событий форм и методов, не связанных с обработчиками. А также переходы от замещающих методов к замещаемым по F12
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
Полный день

Программист 1С
Видное
Полный день

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

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день