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

04.03.21

Разработка - Механизмы платформы 1С

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

0. Введение

1. Показать/скрыть неизмененные объекты

2. Последовательность выполнения обработчиков

а) Типовой код -> Код из расширения

б) Код из расширения -> Типовой код -> Код из расширения

в) Типовой код -> Код из расширения -> Типовой код

г) Отменить типовые обработчики

3. Создание и использование общего модуля, модуля менеджера или модуля объекта

4. Как подключить отладку

5. Как писать запросы

6. Как сохранять данные

а) Сохранение данных формы

б) Хранилище пользовательских настроек

7. Как добавить свой макет

8. Как подменить кнопку заполнения табличной части

9. Расширение как багфикс

10. Как вывести свою обработку в интерфейс

11. Как перевести расширение на 8.3.8

12. Как подключить расширение

13. Как обновить расширение

Благодарность

Комментарии

 

0. Введение

 

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

Согласно документации:

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

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

Более подробно о расширениях можно почитать и посмотреть здесь:

Заметки в зазеркалье
Документация
Курсы Гилёва и Насипова
Нюансы расширений
Расширения в 8.3.9

Все функции для объектов расширения

Ниже я приведу полезные советы для работы с расширениями. 

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

 

Итак, поехали!


1. Показать/скрыть неизмененные объекты
 

При добавлении новых объектов в расширение также автоматически добавляются связанные объекты. В результате в метаданных расширения скапливается много служебных объектов.
Для того, чтобы показать только измененные объекты есть кнопка “Измененные и добавленные в расширении”. При нажатии отображаются только добавленные вручную и измененные объекты расширения.
Принцип её работы показан ниже:

 

 

2. Последовательность выполнения обработчиков
 

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

а) Выполнить сначала типовой код, затем код из расширения:

&НаСервере
Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Сообщение", "ПослеТиповогоОбработчика!");
	УстановитьВыполнениеПослеОбработчиковСобытия("ВыполнитьПослеТиповогоОбработчика", ДополнительныеПараметры);
	
КонецПроцедуры

&НаСервере
Процедура ВыполнитьПослеТиповогоОбработчика(Отказ, СтандартнаяОбработка, ДополнительныеПараметры)

	Сообщить(ДополнительныеПараметры.Сообщение);

КонецПроцедуры

б) Выполнить сначала код из расширения, затем типовой код, затем опять код из расширения 

&НаСервере
Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Процедуры до типовых обработчиков
	Сообщить("До типового обработчика!");
	
	// Устанавливаем обработчик после типового обработчика событий
	УстановитьВыполнениеПослеОбработчиковСобытия("ВыполнитьПослеТиповогоОбработчика");
	// Дальше будет выполнен код из типового обработчика

КонецПроцедуры

&НаСервере
Процедура ВыполнитьПослеТиповогоОбработчика(Отказ, СтандартнаяОбработка, ДополнительныеПараметры)

	// Код после типового обработчика из расширения
	Сообщить("После типового обработчика!");

КонецПроцедуры

в) Выполнить сначала типовой код, затем код из расширения, затем снова типовой код

Можно прибегнуть к хитрости:
- Отменяем выполнение обработчиков из типовой конфигурации.
- В расширении вызываем нужные процедуры из типового кода в перемешку с процедурами из расширения.
 

&НаСервере
Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Процедуры до типовых обработчиков
	Сообщить("ДоТиповогоОбработчика!");
	
	// Процедуры из типового обработчика
	Если НЕ ЗначениеЗаполнено(БанковскийСчет.ВалютаДенежныхСредств) Тогда
		БанковскийСчет.ВалютаДенежныхСредств = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
	КонецЕсли;
	
	РазместитьКонтактнуюИнформацию();
	
	Если Параметры.Ключ.Пустая() Тогда
		ПодготовитьФормуНаСервере();
	КонецЕсли;
	
	УправлениеФормой(ЭтаФорма);
	
	// Процедуры после типовых обработчиков
	Сообщить("ПослеТиповогоОбработчика!");
	
	// Остановим выполнение типовых обработчиков
	УстановитьВыполнениеОбработчиковСобытия(Ложь);
	
КонецПроцедуры

г) Отменить типовые обработчики 

&НаСервере
Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Остановим выполнение типовых обработчиков
	УстановитьВыполнениеОбработчиковСобытия(Ложь);
	
КонецПроцедуры

 

3. Создание и использование общего модуля, модуля менеджера или модуля объекта

 

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

&НаСервере
Процедура СообщитьДиректораНаСервере()
	
	Должность       = "Директор";
	ФИОРуководителя = "Иванов И.И.";
	Обработки.Учеб_Обработка.СообщитьДиректора(Должность, ФИОРуководителя);
	
КонецПроцедуры

Модуль менеджера обработки:

Процедура СообщитьДиректора(Знач Должность, Знач ФиоРуководителя) Экспорт
	
	ТекстСообщения = СтрШаблон(
		НСтр("ru='%1 %2'"),
		Должность,
		ФиоРуководителя);
		
	Сообщить(ТекстСообщения);
	
КонецПроцедуры

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

 

4. Как подключить отладку

 

В типовых конфигурациях на основе библиотеки стандартных подсистем (БСП) при отладке расширений встречается вот такое страшное сообщение:

 

 

Оно возникает если в конфигураторе открыто наше расширение и лечится только закрытием окна расширения.

Для того, чтобы подключить отладку в расширении следует использовать ключ командной строки - “РежимОтладки”

Это упрощает отладку кода. В частности:

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

Для того чтобы его установить:

  • Запустить предприятия с ключом командной строки - " /C РежимОтладки "
  • В режиме конфигуратора установить параметр запуска:
    Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска: ввести строку <РежимОтладки>

 

При первом подключении расширения или при изменении в версии расширения или поставщика, отладка может не подключится с таким же сообщением.

Для того, чтобы исправить эту ситуацию можно попробовать следующие действия:

1. В конфигураторе закрыть это расширение 
2. Запустить конфигурацию в режиме предприятие и открыть форму, связанную с расширением 
3. Открыть расширение в конфигураторе 
4. Перезапустить отладку.

 

5. Как писать запросы

 

Расширение видит и работает только с теми объектами, которые заимствованы из основной конфигурации.
Объекты, которые не заимствованы, в расширении не видны и при попытке обращения к ним, например, в тексте запроса, в режиме “Конфигуратор” вызывают ошибку. Хотя в пользовательском режиме код выполняется без проблем.

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

 

 

6. Как сохранять данные

 

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

а) Сохранение данных формы

В редактируемой форме можно установить свойство - “АвтоматическоеСохранениеДанныхВНастройках” в "Использовать" и поставить флаг "Сохранение" над нужными реквизитами. Это позволит сохранять значения реквизитов типовым механизмом платформы:

 

Такое сохранение данных реализовано здесь.

 

б) Хранилище общих настроек

В этом хранилище можно хранить любые данные. Подробнее можно почитать здесь.
Рассмотрим пример хранения произвольных данных.

Сохранение данных:

&НаСервере
Процедура ПередЗакрытиемНаСервере()
	
	// Подготовим структуру хранения данных
	СтруктураНастроек = Новый Структура;
	СтруктураНастроек.Вставить("Всем",    Всем);
	СтруктураНастроек.Вставить("Близким", Близким);
	СтруктураНастроек.Вставить("Друзьям", Друзьям);
	// Сохраним данные в хранилище общих настроек
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
		"Учеб_СделатьВсёХорошо",
		"Настройки",
		СтруктураНастроек);
	
КонецПроцедуры

Восстановление данных:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Инициализируем структуру
	СтруктураНастроек = Новый Структура;
	// Восстановим сохраненные данные
	СтруктураНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
		"Учеб_СделатьВсёХорошо",
		"Настройки",
		СтруктураНастроек);
	// Заполним значения реквизитов формы
	ЗаполнитьЗначенияСвойств(ЭтаФорма, СтруктураНастроек);
	
КонецПроцедуры

 

7. Как добавить свой макет

 

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

 

 

 

 

8. Как подменить кнопку заполнения табличной части

 

Иногда может потребоваться и добавить свою кнопку заполнения и оставить типовую кнопку.
Для того, чтобы убрать типовую кнопку подальше, но не удалять её совсем можно установить свойство - “Только во всех действиях” - "Да":

 

 

 

В этом случае кнопка будет доступна из подменю “Еще”. Это позволит в случае непредвиденных ситуаций продолжить работу с типовой функциональностью.

 

9. Расширение как багфикс

 

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

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

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

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

 

10. Как вывести свою обработку в интерфейс

 

Для того, чтобы вывести свою обработку в интерфейс конфигурации необходимо включить её в состав требуемой подсистемы:

 

 

 

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

 

 

 

11. Как перевести расширение на 8.3.8

 

Чтобы перевести расширение на 8.3.8 следует выполнить следующие действия:

1. Снять режим совместимости в расширении.
Установить свойства совместимости такими же как и у основной конфигурации.

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

3. Обновить формы в расширении.
Следует обновить формы расширений из основной конфигурации. Чтобы и в расширении и в конфигурации формы были одинаковыми.

4. Привести компоновку формы к новым правилам движка.
С рекомендациями по адаптации форм к новой платформе можно ознакомиться по этой ссылке

5. Проверить, что расширение выглядит и работает правильно.

 

Более подробно по каждому пункту описано в этой памятке. Там же приведены полезные материалы по теме.

 

 

12. Как подключить расширение

 

1. Администрирование - "Печатные формы и обработки"

2. Гиперссылка "Расширения"

3. Кнопка "Добавить" - Выбираем файл

4. Кнопка "Перезапустить"

5. Готово!

 

 

13. Как обновить расширение

 

1. Администрирование - "Печатные формы и обработки"

2. Гиперссылка "Расширения"

3. Встаем на нужное расширение

4. "Еще" - Команда "Обновить из файла на диске"

5. Кнопка "Перезапустить"

6. Готово!

 

 

Пока на этом всё!

Благодарность можно выразить денежно, а то кризис, сами понимаете!

 

Расширение Расширения конфигурации 8.3.6

См. также

Новые роли. Кладовщик, кассир и менеджер по закупкам [Расширение]

Роли и права Платформа 1С v8.3 Управление правами 1С:Бухгалтерия 3.0 Россия Платные (руб)

Ваш кладовщик видит зарплату директора? Кассир копается в продажных документах? Менеджер по закупкам видит ваши расходы? Хватит закрывать на это глаза! Добавьте новые роли для пользователей. Три новых профиля - Кладовщик, кассир и менеджер по закупкам.

4800 руб.

01.11.2016    71125    105    125    

112

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4511    dsdred    53    

71

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5287    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6408    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18473    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12087    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    8818    YA_418728146    6    

141
Отзывы
1. ya.Avoronov 12.01.16 11:06 Сейчас в теме
Очень талантливо сделана публикация! Спасибо! Пишите еще!
* Не знал про отладку в расширениях, очень бывает нужно.
* Запросы можно и в консоле запросов стряпать, удобнее.
* Багфикс согласен, очень действенно.
METAL; dim9; Bob_Dobr; onsi; AlexK_2012; Demlan; user790607; VAAngelov; Vailji; _7445_; user1272851; maksa2005; adhocprog; user1194547; SV6; user660224_laa; Konstantine26; wolder; IT_GG; masterok647; Hamann2008; synelf; BotMan4; 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; +57 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
85. denius753 20.02.17 08:47 Сейчас в теме
Когда добавляешь форму в расширение, вместе с ней автоматически тянутся все связанные объекты. Можно ли эти объекты потом удалить из расширения, чтобы они не мешались, или тогда формы перестанут работать? А то получается при обновлении каждый раз нужно следить, чтобы доки, справочники и их реквизиты в расширении соответствовали основной конфигурации (типы реквизитов ), а когда их много в расширении, то не очень удобно...
86. mrXoxot 2816 20.02.17 10:05 Сейчас в теме
(85)
Удалить реквизиты можно и расширение будет работать в режиме предприятия.
Но в конфигураторе форма может отображаться неправильно из-за того, что не будет хватать каких-то данных.

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

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

Раньше такой возможности не было.
92. bad_wag 48 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 48 03.04.17 13:22 Сейчас в теме
Дело было в директиве компилятора, нужно указывать такую же как у той функции, от куда идет передача вызова.
96. SERGQ 31 12.04.17 14:48 Сейчас в теме
Спасибо!! За информацию.. Для меня она стала очень полезной.
100. DFinteX 10.06.17 10:08 Сейчас в теме
При добавлении формы документа в расширение, по реквизиту "Документ основание" перетянулась куча документов. В расширении эти доки форм не имеют. Теперь когда запускаю предприятие все эти документы отображаются в таком виде, как если бы для них форм создано не было, т.е. не видят собственные формы типовой конфигурации. Это правильно?

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

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

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

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

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

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

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

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

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

Так что в своё время я потратил лишний месяц на каждого клиента, где имел глупость использовать расширения, и всобачил всё в основные конфы. Зато теперь работает как часы, ни малейших проблем) Ну а обновления... Если грамотно сделать, то и обновления занимают день от силы)
124. artbear 1448 25.07.17 13:15 Сейчас в теме
С расширениями вполне можно работать.
Мы вполне успешно юзаем и разрабатываем расширение для работы в облаке с типовой конфигурацией от 1С и для 1С :)
129. kibitz 4 28.07.17 15:23 Сейчас в теме
Спасибо за отличную статью!
130. andrewrocker 1 07.08.17 19:02 Сейчас в теме
не могу обратиться "этотобъект" из расширения.
131. andrewrocker 1 07.08.17 19:03 Сейчас в теме
чем можно заменить обращение "этотобъект"
132. mrXoxot 2816 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 35 10.11.17 23:16 Сейчас в теме
(136) У меня то же самое. Думаю, баг 1С. Просто только недавно добавили общие модули в расширение. Наверное до конца не доделали.
140. SuhoffGV 15.11.17 18:52 Сейчас в теме
(137) Спасибо. Отлегло. Думал это мой баг, а это фича 1с.
142. ssn5810 79 06.12.17 07:16 Сейчас в теме
Подскажите пож. как сохранить значение, при записи документа, в добавленном поле табличной части ?
143. JohnyDeath 301 06.12.17 10:59 Сейчас в теме
144. ssn5810 79 06.12.17 16:16 Сейчас в теме
в добавленное с помощью расширения колонку (поле) табличной части.
Прикрепленные файлы:
145. JohnyDeath 301 06.12.17 20:17 Сейчас в теме
(144) возможность добавления новых РЕКВИЗИТОВ объектов добавлена только в платформе 8.3.11
Берите ее, так будет удобнее всего.

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

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

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

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

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

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

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

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


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

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

Не хватает еще одного пункта:
Как сравнить конфигурацию расширения с конфигурацией из файла
175. Romakon92 25.10.18 16:55 Сейчас в теме
Добрый день, столкнулся с проблемой в расширении к конфигурации УТ 11.4.3.167
Добавляю изменения в Общий модуль - "ПодборТоваровСервер", если делать изменения в основной конфигурации - все работает, если добавлять данные расширением - не работает.
Подробнее: https://forum.infostart.ru/forum9/topic202516/
177. FreeArcher 158 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) там могут и не такое написать. Самое забавное в одной статье прямо противоположные данные приводятся. Там же ниже в разделе Основные понятия более менее правдиво.
183. пользователь 11.01.19 14:23
Сообщение было скрыто модератором.
...
184. shur52 11.01.19 15:23 Сейчас в теме
И еще хочется дополнить публикацию информацией про аннотации типа &Перед("Процедура1"). Аннотации появились в версии 8.3.9. На мой взгляд, с ними код выглядит попроще, чем с методами типа УстановитьВыполнениеПослеОбработчиковСобытия("ВыполнитьПослеТиповогоОбработчика", ДополнительныеПараметры);
186. mrXoxot 2816 11.01.19 16:24 Сейчас в теме
(184) Да, статья уже устарела.
Позже планирую выпустить новую.
187. shur52 11.01.19 16:36 Сейчас в теме
А в гифках было бы еще не плохо показать способы автоматического создания заголовков методов, замещающих обработчики событий форм и методов, не связанных с обработчиками. А также переходы от замещающих методов к замещаемым по F12
188. just86 24.03.19 13:43 Сейчас в теме
1С:Предприятие 8.3 (8.3.12.1595), BAS Управление торговлей, редакция 3.2 (3.2.7.3) с отключенным режимом совместимости. База файловая. Добавляю расширение, в него Документ и Справочник. Закрываю конфигуратор, запускаю предприятие с ключем /C режимотладки.
При входе получаю ошибку:
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(2849)}: При выполнении операции над расширением "НЛО" возникла ошибка:
В процессе обновления информационной базы произошла некритичная ошибка: Невозможно установить монопольную блокировку из-за активной транзакции.

Убедитесь, что все расширения закрыты в конфигураторе.

Как это победить?
189. just86 24.03.19 23:59 Сейчас в теме
190. mrXoxot 2816 25.03.19 08:34 Сейчас в теме
(189)
Добрый день.
У Вас используется старая БСП. В новых версиях эту ошибку исправили.
191. just86 25.03.19 09:58 Сейчас в теме
(190)
А как исправить своими силами не подскажите?
192. mrXoxot 2816 25.03.19 14:38 Сейчас в теме
(191) К сожалению, не помогу.
Попробуйте сделать как написано в ошибке.
Может быть стоит перезагрузить машину, чтобы убить все соединения.
193. just86 25.03.19 16:34 Сейчас в теме
(192)
К сожалению ничего не поможет. Только обновление бсп или забыть функционал расширений. Понятно не полностью, но добавить свою ТЧ в док или свой док - можно не мечтать.
194. DFinteX 18.04.19 09:50 Сейчас в теме
Всем доброго!

В общем в компании внедряем ERP 2.4. Решили попробовать актуальный механизм расширений, т.к. доработок ожидается достаточно.

С чем столкнулись:

1. Не критично: Не поддерживается создание предопределенных данных в новых и унаследованных объектах;
2. Режим совместимости ERP: 8.3.10. Для возможностей добавления новых объектов метаданных требуется:
- Не критично: Снятие/увеличение версии совместимости, в нашем случае изменили на 8.3.12, т.к. в режиме "Не использовать" возникали ошибки при использовании некоторых встроенных методов в модулях (например криво отрабатывался метод "НачатьПомещениеФайла", ругался на третий параметр, если заполнен);
- Не критично: Изменение модуля "СтандартныеПодсистемыСервер.ПередЗапускомПрограммы()", т.к. при старте системы вызывалось исключение из-за установленного режима совместимости не равного 8.3.10;
- Не критично: Изменение модуля объекта "Справочник.ИдентификаторыОбъектовМетаданных.СвойстваКоллекцийОбъектовМетаданных". Возникали ошибки при попытке обновления системы в режиме предприятия, т.к. новые справочники и документы созданные в расширении не могли добавиться в справочник "Идентификаторы объектов расширений". Типовая конфигурация ограничивает использование ряда видов объектов метаданных создаваемых в расширении (Документы, справочники, регистры и т.д.. Требовалось добавлять к необходимому виду метаданных
Строка.ОбъектыРасширений = Истина;
). Видимо логика подразумевает работу конфигурации в режиме совместимости 8.3.10, в котором создание подобных объектов в расширении недопустимо.
3. Критично: Платформа не позволяет видеть новые объекты и новые реквизиты созданные в расширениях в конструкторах запросов и СКД - при вызове их во внешних отчетах/обработках (хоть и при исполнении отрабатывает всё без проблем), что создает большие неудобства при разработке и отлаживании сложных запросов

В итоге из-за наличия пункта №3 от расширений в очередной раз приходится отказаться и ждать с море погоды.
triviumfan; mrXoxot; +2 Ответить
195. triviumfan 92 15.08.19 10:10 Сейчас в теме
(194) Большое спасибо за комментарий. Хотя, ERP и расширения.. было изначально все ясно:)
196. DFinteX 15.08.19 11:48 Сейчас в теме
(195) Мы на всякий случай перестраховались)) чтобы обидно потом не было)
199. lefthander 05.09.19 17:08 Сейчас в теме
(194)А я не жду, и вполне себе успешно развиваю расширение при доработке ЕРП 2.4 ;)
197. pyrkin_vanya 488 05.09.19 09:58 Сейчас в теме
Я добавил новые объекты через раширениее. Регистр сведений, подсистема. Почему эти объекты доступны всем пользователям? Как убрать у некоторых это?
198. spacecraft 05.09.19 15:15 Сейчас в теме
(197) добавить/импортровать нужные роли в расширение и для них настроить права на добавленные объекты метаданных в расширении. Тогда только для этих ролей будут права.
Когда ролей нет в расширении, тогда нет и ограничений. Это как и для новой конфигурации в которой нет ролей.
pyrkin_vanya; +1 Ответить
Оставьте свое сообщение