0
- 15.09.2016 - 13:26
|
Суть: БП3_0_44 на платформе 8.3.8 Теперь в режиме "без совместимости", и, значит, может использовать все прелести Расширений для 8.3.8. Ура. Наконец-то можно часть правок выбросить за пределы типовой конфигурации, и несколько сократить трудозатраты по обновлениям. Действительно, при добавлении Расширенной формы документа можно поиграться с отображением формы: раскрасить под попугая, поменять расположение элементов, добавить общую команду, вывести похабную картинку. Все это здорово. Но есть неура: добавленная форма тащится из основной конфигурации без модуля. Что получается: Если мы добавляем в модуль [исправленную] обработку события, конфигуратор злобно ругается, что такая процедура уже существует. Если мы переименовываем обработку события (префиксом), то это событие обрабатывается, но после срабатывает и обработка этого же события на "родительской" форме. Что не всегда айс. И самое гадкое, что отсечь "родительскую" обработку события никак не получается: УстановитьВыполнениеОбработчиковСобытия(Ложь) конфигуратор не дает. | |
1
- 15.09.2016 - 13:38
|
Поведение обработка расширения ->обработка "родительской формы" ожидаемо, и описано в документации. А вот что делать со вторым - не ясно. Дело в том, что при записи строки УстановитьВыполнениеОбработчиковСобытия(Ложь) появляется сообщение, что эта процедура доступна только в расширении. Т.е., конфигуратор рассматривает модуль расширенной формы совместно с модулем формы основной конфигурации. Как одно целое. Это значит, расширяемую форму надо добавлять не через меню конфигурация -> Элемент->Добавить в расширение, а изнутри Расширения через "добавить". Тогда все замечательно: образуется новая форма с префиксом в названии, Помошник подхватывет все реквизиты, но... Но выстраивать их в нужную картинку придется ручками. Ручками размещать по панелям, редактировать представление, ручками же настраивать обработку событий, и т.д. Весь смысл расширения смазывается: получается проще при обновлении проставить "Порядок из основной конфигурации", чем, по сути, рисовать форму как свою. Вместо "точечной коррекции". И как с этим бороться, я пока не знаю. Может, есть какой-то хитрый прием? Конечно, "точечная коррекция" формы останется, но будет гораздо реже. И разнесено в пространстве. И отдельно сохранятся. | |
2
- 15.09.2016 - 14:09
| Какой-то жуткий суррогат ООП ) Там то элементарно можно было либо вызывать метод базового класса, либо целиком переопределять его. Мне кажется (глубоко не вникал, поэтому могу ошибиться) и ООП уже подзабыл, что эти расширения - тупиковый путь. Надо делать либо полноценный ООП с полноценным наследованием, либо не маяться дурью и оставить как было. Не верю я в полноценные расширения )) | |
3
- 15.09.2016 - 14:28
|
2-USSR > Верь, не верь - но либо пользуешься тем, что есть, и есть здесь, и сегодня, либо ковыряешь конфу по всему пространству. Со всеми положенными следствиями. "При всем богатстве выбора..." (с) Или: "Каждый может купить у меня автомобиль любой марки, и любого цвета. При условии выбора черного T-Ford." (с) Форд. | |
4
- 15.09.2016 - 14:34
| 2(1) На its.1c.ru, кажется, были примеры как чередовать свои обработчики со встроенными. | |
5
- 15.09.2016 - 15:15
| Ну если я правильно понял, то вроде как есть такая директива &Вместо | |
6
- 15.09.2016 - 15:16
|
+5 https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/ | |
7
- 15.09.2016 - 15:24
|
4-Климов Сергей > Смотрел. Замечательные примеры, где текст обработчика состоит из Сообщить("Это обработчик из расширения 1)", ...Сообщить("Это обработчик из расширения 2)", т.п. Но моя проблема в том, что не могу|не умею|не знаю как сформировать расширенную форму со всеми примбамбасами: панелями, кнопоцками, индикаторами, подмигивающим Распутиным не через импорт из Конфигурации. Через импорт ("Добавить в расширение") всё прекрасно, расположение всех элементов копируются, но модули объеденяются (поэтому можно не писать то, что работает как надо в Основной форме, и потому первоначально Модуль пуст), и в Расширение автоматически попадают связанные элементы из Основной конфигурации. И форма имеет то же самое Наименование. И не могу вставить УстановитьВыполнениеОбработчиковСобытия() Если же не пользоваться копированием формы, а самостоятельно создать в Расширении, то и форма получает Наименование с префиксом, и Модуль"отвязывается" от Модуля из Основной конфигурации, и можно вставлять УстановитьВыполнениеОбработчиковСобытия(). Только вот примбамбасы - тоже на мне. А это - муторно. | |
8
- 15.09.2016 - 15:30
| 6-nordbox > Большое спасибо | |
9
- 15.09.2016 - 15:39
| +(6) Только это точно для 8.3.8? Не для 8.3.9? А то в тексте там про общие модули,которых для 8.3.8 нет. | |
10
- 15.09.2016 - 15:58
| (9) VZ 8.3.9 только планируется, на users посмотри, там хоть и сказали что на 14 число планируют, но пока ничего нет | |
11
- 15.09.2016 - 16:03
| +10 8.3.9 Есть только для тестирования | |
12
- 15.09.2016 - 16:07
|
+11 и дату публикации ссылки которую дал посмотри в верху дата= 24.03.2016 | |
13
- 15.09.2016 - 16:13
|
12-nordbox > Не вышел Каменный цветок: Строки &Вместо("ПослеЗаписиНаСервере") Процедура Расш1_ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) были издевательски отвергнуты: {Расширение1 Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокум ента.Форма(26,8)**: Ожидается определение процедуры/функции &Вместо<<?>>("ПродукцияНоменклатураПриИзменении ") (Проверка: Сервер) P.S. Если чО, движок 8.3.8.2054 | |
14
- 15.09.2016 - 16:33
|
Ну так ты читай внимательно чо он написал Он не видит "ПродукцияНоменклатураПриИзменении " Ты попробуй пустую ее сделай конструктором выше директивы | |
15
- 15.09.2016 - 16:34
| И пробельчик убери ("ПродукцияНоменклатураПриИзменении ") | |
16
- 15.09.2016 - 17:20
|
14-nordbox > Низзя "ПродукцияНоменклатураПриИзменении"- это обработчик модуля формы Основной конфигурации. Ругается,чтотакая процедура уже есть. Собственно,там три обработчика,и все три оформил одинаково. И обругались все одинакого. Только я немножко ;) перепутал сообщения об ошибках - скопировал директиву и название функции для первого обработчика, а текст ошибки компиляции - для второго. 15-nordbox > И да, после &Вместо никакого пробела нет. В (11) копипастом строки писал. Почему он выдает &Вместо<<?>>( - я не понял. И добавлял/удалял пробел, и скобки удалял/добавлял -никак ;( | |
17
- 15.09.2016 - 17:33
| На мисте сегодня подобную проблему обсуждали, могу ссылку дать если модераторы не против | |
18
- 15.09.2016 - 17:47
|
VZ а ведь правда, это планируется в 8.3.9 сейчас пециаяльно рылся на эту тему и на сайте 1с нашел четко сказанное вот тут: http://v8.1c.ru/o7/201603module/index.htm Ну извини, чем мог (((( | |
19
- 15.09.2016 - 17:55
| 18-nordbox > Да я уже обнаружил:) Все равно полезно: обновил закладки. | |
20
- 15.09.2016 - 18:10
| VZ а ты пиши на тестовой 8.3.9, пока напишешь и выйдет уже нормальная )))) | |
21
- 15.09.2016 - 19:24
| 20-nordbox > Не взлетит. Все фичи доступны только если конфигурация не использует режим совместимости с 8.3.8. | |
22
- 16.09.2016 - 07:48
|
Reaper, Ну это и так очевидно ))) если эти фичи есть только 8.3.9, о каком режиме совместимости может идти речь... | |
23
- 07.11.2016 - 13:50
|
В Интернет пишут, что можно без снятия режима совместимости через выгрузку .dt. У кого-нибудь получилось? | |
| Интернет-форум Краснодарского края и Краснодара |