8.3.6 Расширения

  1. 9 г. назад

    Кто уже разобрался с сабжем полностью и окончательно?
    Я так понимаю, расширения хранятся в базе в "хранилищах". Если какой-то пользователь загрузит расширение, то оно будет действовать для всех? Ну кроме разделенных сеансов. А почему бы не сделать так, чтобы не все пользователи, а только определенные могли юзать расширение? Было бы удобно в некоторых случаях, я считаю. Или такое возможно?

    Ответы: (5)
  2. Ну и конечно сам механизм, как это часто бывает с 1С опять неполный. Модули объектов, менеджеры объектов нельзя заменять.
    Нельзя вызывать методы из родительского объекта. Нельзя подменять общие процедуры. В общем какой-то обрубок ООП получился

    Ответы: (2)
  3. (1) не знал. я думал, полноценные расширения

  4. Не, что-то я не совсем правильно написал. Методы родительских объектов сами вызываются. В частности в модулях форм. Пока не совсем разобрался, ибо вылетает 1С с ошибкой при отладке, но вызываются процедуры из расширения, а потом из родительской формы.

  5. Да, методы вызываются два раза. Получается полный винегрет. Родительские методы не отделяются

  6. (0)по сути задумка хорошая
    но как предполагали реализация будет хромать, и оказывается очень сильно

  7. Надеюсь будет как с построителем. Когда из построителя вырос вполне годный СКД

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

  9. либо у них такой диалог с сергеем
    Разрабы: Серж, нужно 10 лямов на рефакторинг платформы
    Серж: поговорю с братом
    проходит месяц
    Серж: ни [...], денег не будет, пишем то, что есть
    Разрабы: [...], опять всё через жопу...

  10. Вот две приблуды придумали для отделения родительских обработчиков событий

    Расширение может влиять на исполнение программного кода после окончания работы обработчика. Для этого следует использовать специальные методы управляемой формы. С помощью метода УстановитьВыполнениеОбработчиковСобытия() можно прекратить дальнейшее выполнение обработчиков в цепочке. Например, если расширение «не хочет», чтобы срабатывал обработчик расширяемой формы, то в расширяющей форме, в коде обработчика должен стоять вызов УстановитьВыполнениеОбработчиковСобытий(Ложь);. Следует пользоваться этой возможностью с осторожностью, т. к. использование данного метода может существенно исказить функционирование дорабатываемого механизма после обновления расширяемой конфигурации или при подключении дополнительных расширений.

    Метод УстановитьВыполнениеПослеОбработчиковСобытия()позволяет установить метод обратного вызова, который будет вызван после того, как сработают обработчики расширений и расширяемого объекта. У подключаемого метода должен быть набор параметров, эквивалентный оригинальному обработчику, плюс параметр ДополнительныйПараметр. В этом случае подключенные методы будут вызваны в порядке регистрации расширений (в отличие от обработчиков событий).

    Ответы: (11) (12)
  11. Ну хоть так, через задний проход.

  12. (9) ага, именно так

  13. (9)пестец, слов нет )

  14. Интересно, оне хоть завтра его зарелизят или опять перенесут?

  15. Кто-нибудь пытал новую фичу "Получение данных, отображаемых динамическим списком"?

    	Схема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    	Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
    	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    	МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
    	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ;
    	
    	ПроцессорВывода.УстановитьОбъект(Новый ТаблицаЗначений); 
    	ПроцессорВывода.ОтображатьПроцентВывода=Истина;
    	тт=ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    

    Выдает ошибку Неизвестный тип макета.

    Ответы: (15)
  16. (14) А нефик ставить четные релизы ) В 8.3.7 будет исправлено ) По крайней мере в коде не вижу ошибку, с виду все правильно...

  17. Можно подключать расширения для отдельных пользователей. Для этого можно добавить общий реквизит и назначить разделение данных. И ничего не разделять. Юзеров подключать с этим разделителем. Опять через задний проход, ибо все равно придется изменять типовую, но хоть как то.

или зарегистрируйтесь чтобы ответить!