БП3_0_44 и расширенные страдания. Суть: БП3_0_44 на платформе 8.3.8 Теперь в режиме "без совместимости", и, значит, может использовать все прелести Расширений для 8.3.8. Ура. Наконец-то можно часть правок выбросить за пределы типовой конфигурации, и несколько сократить трудозатраты по обновлениям. Действительно, при добавлении Расширенной формы документа можно поиграться с отображением формы: раскрасить под попугая, поменять расположение элементов, добавить общую команду, вывести похабную картинку. Все это здорово. Но есть неура: добавленная форма тащится из основной конфигурации без модуля. Что получается: Если мы добавляем в модуль [исправленную] обработку события, конфигуратор злобно ругается, что такая процедура уже существует. Если мы переименовываем обработку события (префиксом), то это событие обрабатывается, но после срабатывает и обработка этого же события на "родительской" форме. Что не всегда айс. И самое гадкое, что отсечь "родительскую" обработку события никак не получается: [em]УстановитьВыполнениеОбработчиковСобытия(Ложь)[/em] конфигуратор не дает. |
Поведение [b]обработка расширения ->обработка "родительской формы"[/b] ожидаемо, и описано в документации. А вот что делать со вторым - не ясно. Дело в том, что при записи строки УстановитьВыполнениеОбработчиковСобытия(Ложь) появляется сообщение, что эта процедура доступна только в расширении. Т.е., конфигуратор рассматривает модуль расширенной формы [u]совместно[/u] с модулем формы основной конфигурации. Как одно целое. Это значит, расширяемую форму надо добавлять не через меню [b]конфигурация -> Элемент->Добавить в расширение[/b], а изнутри Расширения через "[b]добавить[/b]". Тогда все замечательно: образуется новая форма с префиксом в названии, Помошник подхватывет все реквизиты, но... Но выстраивать их в нужную картинку придется ручками. Ручками размещать по панелям, редактировать представление, ручками же настраивать обработку событий, и т.д. Весь смысл расширения смазывается: получается проще при обновлении проставить "Порядок из основной конфигурации", чем, по сути, рисовать форму как свою. Вместо "точечной коррекции". И как с этим бороться, я пока не знаю. Может, есть какой-то хитрый прием? Конечно, "точечная коррекция" формы останется, но будет гораздо реже. И разнесено в пространстве. И отдельно сохранятся. |
Какой-то жуткий суррогат ООП ) Там то элементарно можно было либо вызывать метод базового класса, либо целиком переопределять его. Мне кажется (глубоко не вникал, поэтому могу ошибиться) и ООП уже подзабыл, что эти расширения - тупиковый путь. Надо делать либо полноценный ООП с полноценным наследованием, либо не маяться дурью и оставить как было. Не верю я в полноценные расширения )) |
2-USSR > Верь, не верь - но либо пользуешься тем, что есть, и есть здесь, и сегодня, либо ковыряешь конфу по всему пространству. Со всеми положенными следствиями. "При всем богатстве выбора..." (с) Или: "Каждый может купить у меня автомобиль любой марки, и любого цвета. При условии выбора черного T-Ford." (с) Форд. |
2(1) На its.1c.ru, кажется, были примеры как чередовать свои обработчики со встроенными. |
Ну если я правильно понял, то вроде как есть такая директива &Вместо |
+5 [url]https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/[/url] |
4-Климов Сергей > Смотрел. Замечательные примеры, где текст обработчика состоит из Сообщить("Это обработчик из расширения 1)", ...Сообщить("Это обработчик из расширения 2)", т.п. Но моя проблема в том, что не могу|не умею|не знаю как сформировать расширенную форму со всеми примбамбасами: панелями, кнопоцками, индикаторами, подмигивающим Распутиным[b][u] не через импорт из Конфигурации[/u][/b]. Через импорт ("Добавить в расширение") всё прекрасно, расположение всех элементов копируются, но модули объеденяются (поэтому можно не писать то, что работает как надо в Основной форме, и потому первоначально Модуль пуст), и в Расширение автоматически попадают связанные элементы из Основной конфигурации. И форма имеет то же самое Наименование. И не могу вставить УстановитьВыполнениеОбработчиковСобытия() Если же не пользоваться копированием формы, а самостоятельно создать в Расширении, то и форма получает Наименование с префиксом, и Модуль"отвязывается" от Модуля из Основной конфигурации, и можно вставлять УстановитьВыполнениеОбработчиковСобытия(). Только вот примбамбасы - тоже на мне. А это - муторно. |
6-nordbox > Большое спасибо |
+(6) Только это точно для 8.3.8? Не для 8.3.9? А то в тексте там про общие модули,которых для 8.3.8 нет. |
(9) VZ 8.3.9 только планируется, на users посмотри, там хоть и сказали что на 14 число планируют, но пока ничего нет |
+10 8.3.9 Есть только для тестирования |
+11 и дату публикации ссылки которую дал посмотри в верху дата= 24.03.2016 |
12-nordbox > Не вышел Каменный цветок: Строки [em]&Вместо("ПослеЗаписиНаСервере") Процедура Расш1_ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) [/em] были издевательски отвергнуты: {Расширение1 [em]Документ.ОтчетПроизводстваЗаСмену.Форма.ФормаДокумента.Форма(26,8)**: Ожидается определение процедуры/функции &Вместо<<?>>("ПродукцияНоменклатураПриИзменении") (Проверка: Сервер) [/em] P.S. Если чО, движок 8.3.8.2054 |
Ну так ты читай внимательно чо он написал Он не видит "ПродукцияНоменклатураПриИзменении " Ты попробуй пустую ее сделай конструктором выше директивы |
И пробельчик убери ("ПродукцияНоменклатураПриИзменени[b]и ")[/b] |
14-nordbox > Низзя "ПродукцияНоменклатураПриИзменении"- это обработчик модуля формы Основной конфигурации. Ругается,чтотакая процедура уже есть. Собственно,там три обработчика,и все три оформил одинаково. И обругались все одинакого. Только я немножко ;) перепутал сообщения об ошибках - скопировал директиву и название функции для [b]первого[/b] обработчика, а текст ошибки компиляции - для [b]второго[/b]. 15-nordbox > И да, после [em]&Вместо[/em] никакого пробела нет. В (11) копипастом строки писал. Почему он выдает [em]&Вместо[b]<<?>>[/b]([/em] - я не понял. И добавлял/удалял пробел, и скобки удалял/добавлял -никак ;( |
На мисте сегодня подобную проблему обсуждали, могу ссылку дать если модераторы не против |
VZ а ведь правда, это планируется в 8.3.9 сейчас пециаяльно рылся на эту тему и на сайте 1с нашел четко сказанное вот тут: [url]http://v8.1c.ru/o7/201603module/index.htm[/url] Ну извини, чем мог (((( |
18-nordbox > Да я уже обнаружил:) Все равно полезно: обновил закладки. |
VZ а ты пиши на тестовой 8.3.9, пока напишешь и выйдет уже нормальная )))) |
20-nordbox > Не взлетит. Все фичи доступны только если конфигурация не использует режим совместимости с 8.3.8. |
Reaper, Ну это и так очевидно ))) если эти фичи есть только 8.3.9, о каком режиме совместимости может идти речь... |
В Интернет пишут, что можно без снятия режима совместимости через выгрузку .dt. У кого-нибудь получилось? |
Текущее время: 03:56. Часовой пояс GMT +3. |