Стартовал новый проект Universal Extensions (UE), который содержит весь текущий функционал, лишен глюков и не требует платы за использование.
ExtEventsFrm: это уникальный комплекс, включающий в себя API для реалиации быстрого поиска и позиционирования по первым символам в динамических списках и доступ к текущей активной форме 1С Предприятия постредством пользовательского меню.
NB: ExtEventsFrm находится в стадии тестирования и отлавливания глюков. Поэтому НЕ РЕКОМЕНДУЕТСЯ пользоваться обработкой да рабочих базах данных, либо на базах, представляющих какую либо ценность. Автор не несет ответственности за последствия использования betta версии ExtEventsFrm.
Разработка осуществляется на основе и по технологи обработки, описаной в статье «v8.2 Управляемые формы: добавляем произвольное пользовательское меню в основное меню 1С без модификации конфигурации.» и является ее логическим продолжением.
Почему разработка называется «ExtEventsFrm»?
ExtEventsFrm «генерирует» дополнительные события форм 1С 8.2 и предоставляет возможность их обрабатывать на встроенном языке 1С. В дополнении к этому, ExtEventsFrm предоставляет интерфейс для реализации быстрого поиска в динамичесих списках 1С 8.2.
На данный момент ExtEventsFrm находится в стадии бетта тестирования. Вашему вниманию предлагается триальный вариант ExtEventsFrm.
Для того чтобы, по возможности, сократить потраченное Вами время на ознакомление со статьей, предлагаю посмотреть видео-демонстрацию возможностей системы ExtEventsFrm.
Демонстрация быстрого поиска.
Демонстрация работы расширений
Если Вам понравилось то что Вы увидели, тогда идем дальше.
Техническая информация.
Система ExtEventsFrm — это внешня обработка, которая при желании м/б запущена в качестве парамерта из командной строки запуска 1С Предприятия. Для этого нужно использовать ключ «/Execute» и следом ч/з пробел указать путь к обработке: /Execute «T:ExtEventsFrm (trial).epf»
Возможность встраивания ExtEventsFrm в конфигурацию для триальной версии не поддерживается, но будет возможна для коммерческой.
Обработка состоит из набора форм и макетов:
Форма «ФормаМеню» — API, которая организует всю работу компоненты.
Форма «Инициализация» — основная форма обработки, в которая подготавливает ВК для работы и передает в API пользовательские настройки.
Форма «МодульПоискаПоПодстроке» — форма, экспортные процедуры которого передаются в качетсве обработчиков для поиска по первым символам.
Формы с префиксами «Расширение_» — формы расширений ExtEventsFrm. Добавлены в качестве демонстрационного примера.
Макет «UserMainMenu1C82» — файл ВК, генерирующей необходимые события и организующей работу окон.
Макет «Печать» — png-файл печати, используемой для примера.
Настройка быстрого поиска
На данный момент в качетве настроек быстрого поиска имеются 2 параметра, которые задаются в форме «Инициализация» обработки
////////////////////////////////////////////////////
// БЛОК ПОЛЬЗОВАТЕЛЬСКИХ НАСТРОЕК.
&НаКлиенте
Функция ПолучитьПользовательскиеНастройки()
Настройки = Новый Структура;
//Задержка при поиске в списках
Настройки.Вставить(«ЗадержкаПриПоискеПоПодстрокеВСекундах», 0.3);
// имена форм с обработчиками, в которых будет работать поиск по строке
Настройки.Вставить(«НастройкиПодключеняБыстрогоПоиска», Новый Массив);
Настройки.НастройкиПодключеняБыстрогоПоиска.Добавить(
Новый Структура(«ИмяФормы, Обработчик»,
«Обработка.ПодборТоваровВДокументПродажи.Форма.Форма»,
«СпозиционироватьсяВСписке»
)
);
Настройки.НастройкиПодключеняБыстрогоПоиска.Добавить(
Новый Структура(«ИмяФормы, Обработчик»,
«Справочник.Партнеры.Форма.ФормаСписка»,
«СпозиционироватьсяВСписке»
)
);
Возврат Настройки;
КонецФункции
НастройкиПодключеняБыстрогоПоиска — Массив структур, содержащий список форм в которых нужно подключить быстрый поиск и имена обработчиков.
Параметры: ИмяФормы — полный путь к форме, как она задана в конфигураторе, Обработчик — имя экспортной процедуры-обработчика в форме «МодульПоискаПоПодстроке»
Процедура-обработчик должна иметь следующий формат:
&НаКлиенте
Процедура ПроизвольноеИмяПроцедуры(СтрокаПоиска, ЗаголовокТекущейФормы) Экспорт
в качестве владельца формы передается форма, в которой «сработало» событие поиска по подстроке.
ЗадержкаПриПоискеПоПодстрокеВСекундах — задержка в секундах, после которой ExtEventsFrm передаст управление процедуре, указаной в качестве обработчика для этой формы.
В ExtEventsFrm нельзя ничего менять в форме «ФормаМеню», так как любые изменения могут привести к некорректной работе ExtEventsFrm.
«ФормаМеню» всегда «открыта» в системе, полностью ее мы не видим, а видим только определенные ее контролы в определенные моменты. Она отображается в списке форм, но ее нельзя никак закрыть кроме 2-х способов: 1 — через пользовательское меню; 2 — при закрытии 1С форма и вся обработка закрывается автоматически.
Модуль формы «ФормаМеню» обфусцирован при помощи замечательного сервиса https://netlenka1c.ru/Module.
Обфускация применена не столько чтобы скрыть какие-то ноу-хау кода (их там абсолютно нет), сколько чтоб защитить модуль от попрыток поковыряться и тем самым внести какие-нить дополнительные глюки, что в свою очередь может усложнить понимание возникновения оных.
///////////////////////////////////////////////////////////////////////////
// ExtEventsFrm betta (trial version) by MarSeN
// Marchenko Sergey (c) 2013
///////////////////////////////////////////////////////////////////////////
// Данный блок не рекомендуется изменять так как это
// может привести к некорректной работе всего модуля.
//////////////////////////////////////////////////////
&наклиенте
перем o_p,oo_p,o_pp,o_p_p,a,a_,a__,a___,_a,__a,___a,_a_;
&наклиенте
процедура init(_a__)экспорт перем b;~0:b=0;if 0=1 then goto ~3;endif;goto ~8;if 0>=-1 then goto ~4;
endif;goto ~5;~1:;~2:a___=новый массив;goto ~9;~3:b=0;~4:;~5:;~6:a___=новый массив;goto ~9;~7:goto ~2;~8:
if —2>=-2 then goto ~7;endif;goto ~1;~9:;~10:if —1=0 then goto ~26;endif;goto ~20;if 1>=0 then goto ~11;
endif;goto ~13;if 1>-1 then goto ~19;endif;goto ~17;~11:if 1<=0 then goto ~24;endif;goto ~18;~12:;~13:
if b=0 then goto ~15;endif;goto ~25;~14:goto ~16;~15:;~16:_a=новый массив;goto ~27;~17:goto ~10;~18:;
~19:;~20:b=0;if b=1 then goto ~12;endif;goto ~21;~21:goto ~23;~22:;~23:_a=новый массив;goto ~27;~24:;~25:
;~26:b=0;if —1<>0 then goto ~22;endif;goto ~14;~27:;~28:b=1;~29:b=1;if 0<=1 then goto ~33;endif;goto ~31;
~30:_a_=_a__.задержкаприпоискепоподстрокевсекундах;goto ~34;~31:;~32:_a_=_a__.предупреждение;goto ~34;
~33:goto ~30;~34:;~35:b=0;~36:b=1;goto ~37;~37:__a_=_a__.настройкиподключенябыстрогопоиска;goto ~39;~38:
…
…
Организация работы расширений.
Расширения , это дополнения к текущему функционалу, выполненные ввиде отдельных форм с экспортируемым списком команд для интеграции в пользовательское меню и функций для выполнения действий над текущими формами. При выполнении команды расширения, ExtEventsFrm предоставляет функции обработки команды активную/текущую форму в качестве владельца формы. В качестве параметров функция получает «ВходящиеДанные» (переменная хранится в контексте ExtEventsFrm) и заголовок текущего окна. Функция может вернуть произвольное значение которое будет передано при следующем вызове любой другой команды в параметр «ВходящиеДанные».
&НаКлиенте
Функция ПолучитьКоманды() Экспорт
СписокКоманд = Новый Массив;
СписокКоманд.Добавить(Новый Структура(«ИмяКоманды,
|Заголовок,
|Действие»,
«СкопироватьВБуферОбмена»,
«Копировать в буфер»,
«СкопироватьВБуферОбмена»
)
);
СписокКоманд.Добавить(Новый Структура(«ИмяКоманды,
|Заголовок,
|Действие»,
«ВставитьИзБуфераОбмена»,
«Вставить из буфера обмена»,
«ВставитьИзБуфераОбмена»
)
);
Возврат СписокКоманд;
КонецФункции
&НаКлиенте
Функция СкопироватьВБуферОбмена(ВходящиеДанные, ЗаголовокТекущейФормы) Экспорт
Состояние(«Данные скопированы в буфер»,,ЗаголовокТекущейФормы);
Возврат ВладелецФормы;
КонецФункции
&НаКлиенте
Функция ВставитьИзБуфераОбмена(ВходящиеДанные, ЗаголовокТекущейФормы) Экспорт
Состояние(«Данные вставлены из буфера»,,ЗаголовокТекущейФормы);
Приемник = ВладелецФормы;
……
Приемник.Модифицированность = Истина;
Приемник.Активизировать();
Возврат Неопределено;
КонецФункции
NB: модули «расширений» включены в обработку в качестве простых примеров для демонстрации возможности работы с текущим окном и не могут претендавать на законченность решения. Это АБСОЛЮТНО банальные примеры которые можно использовать только в качестве «пищи для размышления» но никак не в практической работе. Для этого их нужно довести до ума.
В заключении хочу поблагодарить:
Abadonna — за техническую информацию по программированию.
v77 — за шаблон Native ВК для Delphi
alexk-is — за разукрашку кода
Нетленка1С.ru — за качественный онлайн обфускатор кода 1С
Чуть не забыл! ExtEventsFrm находится в стадии бетта тестирования. Это обозначает что в ней должны быть глюки. Возможны падения 1С по красной ошибке. Но, как я понимаю, это равносильно выключению света. Ограничение триальной версии — это рекламма ввиде текста, которую вы можете видеть на видео выше и ограниченное количество итераций использования системы. Это оброзначает, что после того как лимит будет исчерпан — ExtEventsFrm автоматически закроет обработку. При этом Вы можете запусить ExtEventsFrm заново.
Вроде все. Не забываем плюсовать, если понравилось.
Скачать «ExtEventsFrm betta trial»
Размер: 0 kb
это точно так задумано?
(1) andrewks,
Сори, сек….
(1) andrewks,
Я перезалил файл и выложил его в посте №2
Спасибо что написали об его отсутствии… не знаю в чем причина была — вроде заливал )
(3) спасибо
(4) andrewks,
Надеюсь на конструктивную критику )
это все ограничения?
(6) tango,
+
а так весь текущий функционал представлен в полном объеме.
«Полный функционал» — это то что предоставляет система. Расширений это не касается. Их можно стряпать сколько угодно )
(5) идея красивая, но посмотреть смогу только в выходные, сегодня некогда.
кстати, не совсем уяснил один момент — это ознакомительный релиз будущего коммерческого продукта, или это пре-релиз будущего фриварного продукта? 🙂
(7) и сколько раз за один раз ее можно попросить?
а так ваще плюса
(8) andrewks,
Да, это будующий комм продукт, но цена за него относителльно недорогая будет.
Я вот думаю как только проект встанет на коммерческие рельсы, то если разработчик разработает бесплатное расширение под это дело, и это расширение повлечет за собой продажу ExtEventsFrm, то отстеговать бонус разработчику с продажи
(9) tango,
«попросить»? не совсем понял про что, поэтому отвечу как понял)
вы можете переоткрывать обработку неограниченное количество раз как сами, закрывая ее, так и после того как система закроет ее после окончания лимита. т.е. фактически безлимит.
Единственное что ограничивает боевое использование это «реклама» и возможные падения 1С )
(11) просто продавать вместе.
однако — сколько раз триал даст ответ перед сворачиванием коврика?
**
упс — еще и реклама? не айс
(13) tango,
Там 100 итераций — очень много чтоб понять на что способен продукт.
а «реклама» — этогромко сказано. Над закладками появляется «ExtEventsFrm trial… «+ копирайт и обратный счетсик итераций. Все это хорошо видно в видео.
Никакой «рекламы» о продаже тапочек или кафе за углом нет )))
итерации утекают, как вода сквозь пальцы, хотя ещё не воспользовался ни одной функцией. просто хожу по закладкам.
даже просто перемещение от одного элемента к другому в дин.списке забирает одну итерацию
у меня так и не получилось включить быстрый поиск в подборе.
1С:Предприятие 8.2 (8.2.17.169)
Управление торговлей, редакция 11.0 (11.0.9.5)
ОС win xp sp3
а вот печать вставляется нормально.
правда, хранение оной в макете обработки — не айс (для демки, конечно, сойдёт). лучше в базе, в присоединённых файлах
(16) andrewks
На каком подботе пробуешь, быстрый поиск сейчас работает на подборе оторый используется при продажах. На видео есть его демонстрация. На закупках не подключен. Чтоб подключить нужно в форме иницмализация добавит 1 строку.
(18) на продажах и пробую.
видео смотрел, там, типа, нажмите тут левой кнопкой мыши, и курсор нужный появляется.
ну, так у меня ничего не происходит — ни курсора, ни окошка поиска не появляется
(19) andrewks
Странно
Шелкаешь мышкой на список и начинаешь набирать и не появляется поле ввода?
(20) разобрался, теперь появляется.
эффект следующий: при загруженной компоненте, а особенно после использования подбора, происходят падения 1с, причём в самых разных местах.
надо чистить код
(21) andrewks,
Я паденья наблюдал при отктытии отдельных окон . Стабильное, если нажать ESC. Работаю над исправлением. Меня на самом деле волнует именно идея. Стоит ли продолжать работу над пректом. Что-то ни отзывов, ни оценок. С выложенной компонентой в комментах даже теперь и скачивания не видно.
Как бы труды не оказались никому не нужными.
Не пойму, не ужели никому не нужна универсальность продукта? Или всех пугает его коммерциализация?
На инфостарте много тем поднято о том как сделать доработки с минимальным изменением конфы. Эта система дает возможность вообще не трогать формы а наворачивать функционал поверх стандартного, плюс быстрый поиск….. а в ответ тишина….
andrewks, как ты считаешь, есть персективы у данной разработки (понятное дело если она будет без глюков) ?
(22)
у меня наблюдалось: при закрытии формы подбора, при закрытии документа, и даже при закрытии Предприятия (нажал на крестик, на секунду появилось окошко подтверждения выхода, затем сразу всё закрылось)
сами падения тоже разные — то просто всё свернётся, то дамп начинает крутить.
могу однозначно сказать, что у бесплатной разработки с таким функционалом перспективы офигительные, а вот у коммерческой — сложно сказать. зависит от цены, возможностей, и готовности пользователей платить за это
попробовать-то можно в любом случае, раз уже проделана большая работа. на крайняк, если не выгорит, можно будет потом с пафосом сделать разработку бесплатной 🙂
кстати, сам код компоненты насколько привязан к Win? реально ли его будет портировать под Lin-клиентов?
(24) andrewks,
В основном идет работа с окнами, поэтому все зависит как 1С реализовала работу окон в линукс. Надо будет провести обследование больного, сделать анализы и уже после этого можно будет говорить о точном диагнозе ).
В текущем варианте используются API процедуры для работы с окнами и перехват оконных процедур.
+ за идею.
универсальность меня всегда привлекает.
вот только надо вылеты пофиксить.
(26) dr00p,
спасибо. Как раз чищу код )
Как предполагается коммерциализировать? С привязкой к рабочему компу (что сразу негативно сказывается на числе заинтересовавшихся) или без. Предполагаемая цена вопроса.
(28) soba,
думал по поводу привязки к базе данных.
цена вопроса думаю от 5 до 10 тр. пока не определился.
да и вообще в сильных раздумьях по коммерциализации. все больше задумываюсь о том чтоб сделать ее бесплатной и выложить электронный кошелек для донаций. потому как не очень сообщество отреагировало на разработку и вкладыватсья еще и в защиту для продукта… не знаю
Более разумно. По крайней мере разработчики маловероятно станут брать себе вариант с привязкой. А то от ключей защиты и прочих «дополнений» при замене компа запаришься выяснять где ,чего и чем было защищено.
Спасибо
(23) andrewks,
http://infostart.ru/public/188259/
(13) tango,
(30) soba,
Выделил отдельно подбор номенклатуры и сделал фри версию. Версия без глюков потому что не приходится обрабатывать все активные. Обработка с открытым кодом. Работает сейчас на УТ11. Адаптировать можно к любой версии УФ.
Обработка не содержит меню и никак не меняет интерфейс, кроме как при начале подбора добавляет окно для набора текста. Так-же не требуется модификации самого подбора, работает при простом открытии ч/з файл-открыть и можно встроить в конфу.
(22)Автор, я полностью поддерживаю твою идею универсальных решений. Однако стараюсь сам их писать целиком, только на встроенном языке, ну иногда использую скрипты. Дополнительный функионал в виде бантиков — только для красоты, чтобы если начнет глючить отключить без ущерба функциональности.
Для использования платных решений имеются следующие препятсвия особенно данное:
1. У меня 99,99% клиентов работают на 8-ке без УФ. Есть 0,01% на 7-ке. Данное же решение я так понял только расчитано на УФ. Рынок явно маловат, учитывая что управляемый и обычный режим развиваются паралельно и не пересекаются. На УФ на мой взгляд работают следующие категории:
— спецы которым нужно было решать задачи которые можно было решить только с новым функционалом (у меня самого есть один такой случай)
— новички которым все равно что осваивать или нет понимания
— энтузиасты которым хочется попробовать чего-то нового и некуда девать энергию 🙂
Все остальные сидят в обычном режиме и не тратят время на изучение того что особо ненужно. И таких наверняка подавляющее большинство. Нет желания сделать для обычного режима?
2. Имею опыт покупки решений и ОЧЕНЬ большой опыт использования ВК начиная с 7-ки. В любых ВК есть куча багов, иногда явных, иногда нет — кто интересно заплатит за проблемы когда начнет падать система в фирме где милионные обороты в день? Мне с этих милионов ничего не перепадает, так что я особо не рвусь использовать непроверенные решения. Ведь если продаеш клиенту свое решение базирующееся на чужой разработке, то и отвечать мне потом за нее. Возьмеш умеренную цену, а потом отвечаеш по полной когда что-то работает не так.
3. Кто будет поддерживать решение при обновлении ОС, сейчас WIn8, завтра еще что, как будем жить если разработка откажется работать или будет глючить? Фирма купила Win за мой счет? Кто заплатит за поиск багов?
4. Система лицензирования и цена очень интересует. Скажем за универсальное, стабильное, документированное решение которое не привязано к количеству пользователей, железу, базе я готов нормально заплатить. Но вроде с ценой не определились как и с политикой. Если упустил — укажите.
Это не придирки, а реальные проблемы которые не раз вставали передо мной и пока нет ясного и четкого ответа на них, нет и интереса к платным решениям, тут и с бесплтатными замучаешся кувыркатся.
(33) CaSH_2004, спасибо за развернутый отзыв!
Я так полагаю, что данный функционал не нужен на неуправляемых формах. Если нужен, то напишите что именно заинтересовало в данной разработке. По политике и цене не определяюсь так как разработка не получила, ИМХО, должного отклика со стороны сообщества.
По багам — в данной разработке dll действительно глючит. Не дорабатываю, так как надо потратить время, и по факту, получится в пустую (.
У меня такое впечатление что сообщество не прониклось идеей данной разработки. Чтоб развеять эти сомнения я выделил быстрый поиск из этого проекта, убрал баги и выпустил новый продукт «QuickSearch: поиск номенклатуры по первым символам в подборе». Определился с лицензией по нему (DonateWare). Результат как видишь, не больше, чем если бы я сделал перенумератор )
Думаю это не на долго, поэтому свой проект «Инсталлятор пакетов 1С 8.2: Автоматическая установка Вашей доработки на конфигурацию клиента.» делаю именно для УФ
(34)
Как раз надолго, возможно навсегда в 50%, т.к. при обкатке какого-то решения я его ставлю легко и быстро всем другим, а зачем придумывать велосипед если за это никто не платит? Один клиент сидит на ТиС уже лет 5 и никуда не уйдет. Других вполне устраивает УТ 10.3, и меня тоже. Все изучено, разработано, внедрено. Практически никому функционал УФ ничего не дает, есть один клиент, но и то интернет такой рваный у нас в Краснодаре что полноценно пользоватся не можем, чисто в качестве задела на будущее.
Мне кажется это скорее из-за того что большинство все же сидят в обычном режиме. Было бы неплохо провести опрос на спрос 🙂 Я что-то не видел на инфостарте статистику по том сколько людей пользуются/обслуживают какие решения. Думаю нужно эту идею подкинуть администрации чтобы сделали такой механизм, заодно кто готов покупать платные решения и в каком направлении. Я думаю для потенциальных комерческих разработок это было бы светом в конце тунеля. Может ты им подкинеш идею?
Если уж говорить про формы, события и ерспективы платности — то я бы посоветовал занятся перехватом событий форм. У chessman в этом плане ограмная наработки, почти готовое решение, но к сожалению есть один баг который он не хочет/не успевает устранить, и не коммерческий проект у него. В итоге приходится в каждую форму засовывать свой код. Такое бы решение я бы разово купил для внедрения в свои продукты.
(35) CaSH_2004,
Да, идея хорошая. Попрошу, может что выйдет )
В этой разработке как раз реализован перехват событий форм для внутренних нужд dll (в основном для контроля активной формы и быстрого поиска). И как раз код в формы встраивать не надо ). Но только для УФ.
Я готов написать подобный функционал с перехватом событий форм без внедрения кода в сами формы (текущая технология) для не УФ. Для этого нужно будет вплотную разбираться с структурой окон в не УФ.
Если интересно, пиши в личку, за сколько бы ты купил такую разработку.
(30) soba,
Стартовал новый проект Universal Extensions(UE), который содержит весь текущий функционал, лишен глюков и не требует платы за использование.
Данный проект закрыт.
(23) andrewks,
http://infostart.ru/public/266022/ . Полностью переработанный продукт. Работает как в режиме закладок так и в режиме отдельных окон (с небольшими отличиями)
Вышла бесплатная полнофункциональная переписанная версия ExtEventsFrm под новым именем Universal Extensions —