V8 FORMATTER: Расширенная версия


Форматирование кода модуля одним хот-кеем, ввод "неудобных" символов без переключения раскладки.

Не Снегопат и даже не Turbo Conf, зато халява 😉

Лично мне, при наличии в 8.3 какой-никакой контестной подсказки, а также достаточного количества продуманных шаблонов, вполне хватает.

Форматирование производится в соответствии с моими предпочтениями: удаляются все лишние пустые строки (пустые строки остаются только между функциями и процедурами), удаляются строки «// Вставить содержимое обработчика.»

Ввод «неудобных» символов []@&<> осуществляется нажатием соответствующей клавиши в совокупности с клавишей «CTRL» без преключения языка ввода.

_____________

Второй файл — версия 3.1.1.2  Для тех, у кого «кракозябрило». Прошу проверить. У Altair777 кракозябрило, на 3.1.1.2 полет нормальный

_____________

Версия 4.1.1.2, дополненная 3.1.1.2. Возможность подключения до 5 шаблонов текста к хот-кеям CTRL+1,CTRL+3,CTRL+4,CTRL+5,CTRL+6. Ini-файл. Описание ini-файла в самом файле в секции COMMENTS.

Также в архиве пять файлов шаблонов для примера.

_____________

Версия 4.1.2.2 — небольшая доработка. В ini файле добавлен параметр OnlyFormat. Если OnlyFormat=1 тогда обработка текста на предмет удаления лишних строк и пр. не производится, только форматирование родного текста. Для любителей межстрочья.

99 Comments

  1. Bazil

    Отличная разработка. Но почему-то подряд несколько спецсимволов ввести не удается. Удерживаю Ctrl нажимаю < и > первый символ вводится, а второй и следующие нет.

    Reply ↓
  2. Abadonna

    (1) Bazil, надо не удерживая, а по новой CTRL+Клавиша… Нюансы

    Reply ↓
  3. ShantinTD

    а у меня почему-то «отформатировался» модуль кракозябликаи….

    Win 7Pro 64bit, 1С 8.3.3.658. Пробовал 1С 8.2.17.169.

    Reply ↓
  4. Abadonna

    (3) ShantinTD, если честно — не знаю… На Win7 (32) у меня без проблем. ХР — тоже. Че-то с кодировками…

    Проверю на серваке 64 — отпишусь

    Reply ↓
  5. ilov_boris

    Ввод неудобных символов легко побеждается шаблонами

    Reply ↓
  6. Abadonna

    (4) ilov_boris, ну и пусть себе побеждается… Он так же побеждается ALT+Код клавиши… Что с того?

    Reply ↓
  7. Altair777
    Форматирование производится в соотвествии с моими предпочтениями: удаляются все лишние пустые строки (пустые строки остаются только между фугкциями и процедурами), удаляются строки «// Вставить содержимое обработчика.»

    А можно подробнее о форматировании?

    Reply ↓
  8. Abadonna

    (7) Altair777, супер-подробно о форматировании вот тут http://infostart.ru/public/19946/

    не расширенная версия

    Reply ↓
  9. ShantinTD

    (5) прикола ради за неделю заново научился кодить без снегопата. =)

    Reply ↓
  10. Abadonna

    (9) ShantinTD, я, кстати, что на 7.7 опенконфом никогда не пользовался, что снегопатом сейчас…

    Как там у Евдокимова было:- «Не знаю.. привычка что ли такая дурацкая?…» 😉

    Reply ↓
  11. Ёпрст

    Можно ли слепить настраиваемый ini файлик с хоткеями ?…

    По-умолчанию, твои хоткеи, при желании — новые, например, вставка произвольного блока, а не просто символа.

    Reply ↓
  12. Abadonna

    (10) Ёпрст, можно, если не поленюсь;) вообще-то и сам думал, например, кое какие шаблоны заменить…

    Reply ↓
  13. Ёпрст

    (12) вот-вот, дополнить и ценник навесить — глядишь, разбогатеешь не по-детски!

    🙂

    Reply ↓
  14. dour-dead

    Ctr+D

    Reply ↓
  15. ShantinTD

    (14) dour-dead, вот-вот-вот…

    Reply ↓
  16. Ёпрст

    Ничего вы не понимаете, это заготовка к обфускатору кода..

    🙂

    Reply ↓
  17. Abadonna

    (14) dour-dead, там используется TMemo, с чарсетом DEFAULT_CHARSET, попробую поставить ANSI_CHARSET, может поможет. Но у меня нигде не глючило. Дома вечером подправлю, напиши в личку, куда выслать (чтобы $m не тратил)

    Reply ↓
  18. break

    а под снегопатом работает? не расширенная версия не срабатывает (похоже считает что окно не от конфигуратора 1С)

    Reply ↓
  19. Abadonna

    (18) break, не знаю, я Снегопат не юзал никогда.

    Фокус ввода (грубо говоря курсор) должен обязательно на модуле находиться

    Reply ↓
  20. Ёпрст

    Да, у меня тоже иероглифы всё..

    win 2008

    Reply ↓
  21. Ёпрст

    а так прикольно, в 8.1 тоже работает

    Reply ↓
  22. Ёпрст

    вот только неудобство:

    при зажатом контроле не работает, т.е работает только первое нажатие, все последующие — болт.

    Не очень удобно, например, <> поставить — надо отпускать контрол.

    Reply ↓
  23. Abadonna

    (20) Блинский клин. У меня на всех доступных серваках без кракозябров… Даже и проверить не на чем, остается только догадываться… Вечером выложу второй файл, Ёпрст богатый :))) качнет, нам потом расскажет

    Reply ↓
  24. NoRazum

    Windwos 7 Максимальная 64 бит SP1.

    Платформа 8.2.18.104

    кодировка неправильная в крагозябрах.

    Исправьте пожалуйста.

    Добавите настройки кнопок или помощь какую-то. НЕ удобно очень.

    Reply ↓
  25. Ёпрст

    (24) помощь есть — Ctrl+F12

    Reply ↓
  26. Abadonna

    (20) Ёпрст, Качни, плиз, второй файл. Проверь на «кракозяберность». Поменял чарсет на ANSI, проверить не на чем.

    Reply ↓
  27. Ёпрст

    (26) не помогло 🙁

    Reply ↓
  28. AlexInqMetal

    8.2.18.102

    Win7 x64

    Win2008 x64

    Полет нормальный

    p.s. пробовал первую версию…

    Reply ↓
  29. Abadonna

    (27) Ёпрст, хреново… теперь мне даже трудно предполагать, что там такое. Может, дельфя не хочет дружить…

    У меня на всех серверах клиентов, на Win 7 локалке, на ХР — никаких кракозябров.

    А режим совместимости ей попробуй задать

    Reply ↓
  30. Ёпрст

    Самое поганое, что он и по Ctrl+Q

    вставляет &ÍàÑåðâåðå

    Reply ↓
  31. Ёпрст

    режим совместимости не помог

    Reply ↓
  32. Ёпрст

    попробовал на 2003 — там усё нормально, на 2008 х64 болт, мот там конечно CodePage выставить везде в реестре на 1251 попробовать, но рестартить сервер не могу щас.

    Reply ↓
  33. ShantinTD

    Если интересно: Win7 русская, по умолчанию поставлен английский язык.

    А еще подобный глюк встречал при копировании (Ctrl+C, Ctrl+V), скажем, из табличного документа 1С в документ MS Office или Open Office. Там тоже вставлялись кракозяблики, если при копировании русского текста текущий язык ввода стоит английский. Переключаешь на русский — все нормально копируется, вставляется.

    Тут переключение не помогает. =(

    Reply ↓
  34. Abadonna

    (32) Ёпрст, есть еще одна задумка, но, блин, хреново, что потестить мне не на чем…

    Положу прям в комменты файлик с полем мемо, надо будет проробовать КАК оно туда вставится.

    Reply ↓
  35. Ёпрст

    ну кидай варианты, потестю.

    Reply ↓
  36. Abadonna

    (35) На форме 2 кнопки Old и New. По кнопке Old в поле мемо должны быть кракозябры, а вот что по кнопке New появится — напиши. Там прога сама автоматом заносит в клипборд текст «&НаКлиенте» двумя способами, а потом вставляет в мемо

    Reply ↓
  37. Ёпрст

    нормально всё.. возвращает &НаКлиенте по обоим кнопкам

    Reply ↓
  38. Abadonna

    (37) Ёпрст, уже легче 🙂 Будем посмотреть, как с большим текстом исправить.

    Спасибо, получится — сделаю тебе лично именную, как бета-тестеру

    Reply ↓
  39. Abadonna

    (37) Ёпрст, хм… по ОБЕИМ? странно. Тогда щас перезалью второй файл.

    Reply ↓
  40. Ёпрст

    давай

    Reply ↓
  41. Abadonna

    (40) Ёпрст, ТРЕТИЙ файл, с двумя плюсами

    Reply ↓
  42. Ёпрст

    не помогает :(((

    Reply ↓
  43. Ёпрст

    даешь 4-ый!

    🙂

    Reply ↓
  44. Abadonna

    (42)Я тогда в шоке. Потому что у тебя по кнопке Old сработало правильно, хотя там, по идее, так же, как и обработке.

    Лана, вечерком попозже еще вариант попробую. Отпишусь

    Reply ↓
  45. Abadonna

    (42) Ёпрст, Я вот тут подумал: раз по кнопке Old правильно сработало, может дело не в мемо и не клипборде, а в самом поле ввода модуля 1С? А попробуй, плиз, в блокноте че-нить набрать, скопривать в буфер и в модуль 1С вставить. И разные раскладки (в 1С) попробуй перед вставкой

    Reply ↓
  46. NoRazum

    Попробовал.

    с 1с 77 есть такая беда.

    а в 1с 8.2 с блокнота все нормально.

    (35) На форме 2 кнопки Old и New. По кнопке Old в поле мемо должны быть кракозябры, а вот что по кнопке New появится — напиши. Там прога сама автоматом заносит в клипборд текст «&НаКлиенте» двумя способами, а потом вставляет в мемо

    Прикрепленные файлы

    Test.zip (200.81 КБ) [ Скачать ]

    Скачал потестил все по русски.

    Куда еще нажать чтоб прояснилось у тебя в чем ошибка?

    Открыл блокнот и нажал ctrl + Q при включенной твоей проги. Тоже крагозябру вставило))

    Reply ↓
  47. Ёпрст

    Из блокнота вставляет любой текст (рус/англ) нормально при копировании в любой расскладке

    Reply ↓
  48. Ёпрст

    я посмотрел через clipbrd.exe — текст уже в буфере обмена с кракозябрами…

    Reply ↓
  49. Ёпрст

    т.е у тебя как то в буфер обмена уже «не торт» прилетает.

    Reply ↓
  50. Abadonna

    (49) Ёпрст, попытка номер… уж хз какой…

    третий файл, чтобы не запутался в релизах, там версия файла 5.1.1.1 — убедись, что она

    Reply ↓
  51. Ёпрст

    (50) неа, не выходит каменный цветок

    🙁

    Reply ↓
  52. Ёпрст

    версия именно та..

    Reply ↓
  53. Abadonna

    (52) Ёпрст, с Альтаиром (у него тоже кракозябрит) вроде выяснили — кракозябрит при повторной вставке в буффер обмена (обработанный результат). В Дельфи пока не нашел средств, как победить. Но победю;)

    Reply ↓
  54. Abadonna

    (52) Ёпрст, Если еще не свалил, попробуй файл …8111 (тоже третий)

    Reply ↓
  55. Ёпрст

    (54) Ужо лучше!

    Ctrl+D работает, Ctrl+Q вставляет мусор , как и раньше.

    Reply ↓
  56. dour-dead

    скачал ещё разок Ctrl+D у меня не работает

    Reply ↓
  57. dour-dead

    блин самое палево Ctrl+D в командаре закладки открывает, плиз сделайте что бы можно было настраивать кнопки вызова.

    Reply ↓
  58. Ёпрст

    (56) какой именно файл скачал ?

    Reply ↓
  59. Altair777

    (53)

    Да, это правда. Windows-7 проф 64 (см.скриншот)

    Reply ↓
  60. Altair777

    (58) Ёпрст,

    лично я перепробовал:

    2.1.1.1

    5.1.1.1

    6.1.1.1

    7.1.1.1

    8.1.1.1

    Reply ↓
  61. Ёпрст

    (60) и ?

    8.1.1.1 у меня заработал как описано в (55)

    Reply ↓
  62. Altair777

    (61) Ёпрст,

    Ctrl+D два модальных окна нормально, а в модуль вставляет кракозяблы

    Ctrl+Q

    кракозяблы в блокноте

    а при вставке сюда

    все нормально!

    #Если Клиент Тогда

    ////////////////////////////////////////////////////////////­////////////////////

    // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА

    // Процедура установки начальных настроек отчета с использованием текста запроса

    //

    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт

    // Настройка общих параметров универсального отчета

    // Содержит название отчета, которое будет выводиться в шапке.

    // Тип: Строка.

    // Пример:

    // УниверсальныйОтчет.мНазваниеОтчета = «Название отчета»;

    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);

    Показать

    &НаСервере
    Reply ↓
  63. Ёпрст

    >>>>Ctrl+D два модальных окна нормально, а в модуль вставляет кракозяблы

    Это как ?

    ты Ctrl+D где нажимаешь хоть ?

    у меня в пофигураторе всё супер стало, что в 8.1, что в 8.2, только по Ctrl+Q мусор

    Reply ↓
  64. Altair777

    (63) Ёпрст,

    в модуле внешнего отчета, а где надо? 🙂

    платформа 1С:Предприятие 8.2 (8.2.18.61)

    в 1С:Предприятие 8.3 (8.3.3.658) то же самое

    Reply ↓
  65. Ёпрст

    вот это смутило — «два модальных окна нормально»

    Reply ↓
  66. Ёпрст

    это о чем ?

    Reply ↓
  67. Altair777

    (66) Ёпрст,

    Может, у меня другая версия 8.1.1.1?

    Мне вчера вечером Аркадий слал версии, одну за одной 🙂

    Reply ↓
  68. Altair777

    (65) Ёпрст,

    > Abadonna (16:58:08 22/07/2013)

    > ушло. 6.1.1.1

    > два раза должно окошко модельно показать: первый раз — что попало до обработки, второй — после обработки во втором мемо.

    Reply ↓
  69. Ёпрст

    ага, у меня тот — что в шапке темы , там нет модальных окошек 🙂

    Reply ↓
  70. Ёпрст

    и версия на 20 минут позже

    Reply ↓
  71. Abadonna

    (55) Ёпрст, Краскозябры на CTRL+Q потому, что там не менял принцип помещения в буффер

    доделаю

    Reply ↓
  72. Abadonna

    (69) Ёпрст, с ShowMessage я Альтаиру высылал, тут (третий файл) они убраны. Так что не парьтесь 😉

    Reply ↓
  73. Abadonna

    (69) Ёпрст, проверяй, версия 2.2.1.1

    Не уверен, но…

    Reply ↓
  74. Ёпрст

    Шеф!

    Усё пропало — опять иероглифы везде 🙁

    Reply ↓
  75. Abadonna

    (74) Короче, в тот раз не было краков, потому что оно в буффер не заносило обработанное…

    Alik (16:31:00 23/07/2013)

    хм…. кажись сработало 🙂

    Поменял TMemo на TRichEdit

    Щас погоняем, выложу

    Reply ↓
  76. Abadonna

    (74) Ёпрст,

    Alik (16:32:44 23/07/2013)

    да, работает!

    Abadonna (16:37:35 23/07/2013)

    лови 3.1.1.1

    Alik (16:39:46 23/07/2013)

    поймал

    контрол кью раюотает )

    _________________

    Уфф. Надеюсь и у тебя будет ОК.

    Reply ↓
  77. dour-dead
  78. Ёпрст

    (76) ща посмотрю.

    (77) эта не работает

    Reply ↓
  79. Ёпрст

    Да, «Версия 3.1.1.1» работает, за исключением, по Ctrl+Q и Ctrl+W — по ним ничего не вставляет вообще

    🙂

    Reply ↓
  80. Altair777

    Поборись еще с табуляторами после директив

    #Если Клиент Тогда
    
    ////////////////////////////////////////////////////////////­////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА
    
    // Процедура установки начальных настроек отчета с использованием текста запроса
    //
    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = «Название отчета»;
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);

    Показать

    становится

    #Если Клиент Тогда
    ////////////////////////////////////////////////////////////­////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА
    // Процедура установки начальных настроек отчета с использованием текста запроса
    //
    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    // Настройка общих параметров универсального отчета
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = «Название отчета»;
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    

    Показать

    и так до конца модуля

    Reply ↓
  81. Ёпрст

    А у меня пустые строки вообще не удаляются

    :(((

    Reply ↓
  82. Ёпрст

    ни в 8.1 , ни в 8.2

    Reply ↓
  83. Altair777

    (81) Ёпрст,

    я такое заметил на сервере 2008 R2 Enerprise SP1 64 bit

    а табуляторы после директив добавляются? 😉

    Reply ↓
  84. Ёпрст

    (81) неа

    Reply ↓
  85. Altair777

    (84) Ёпрст,

    в 2008 пустые строки не удаляются, зато табуляторы….

    #Если Клиент Тогда
    
    ////////////////////////////////////////////////////////////­////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА
    
    // Процедура установки начальных настроек отчета с использованием текста запроса
    //
    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = «Название отчета»;
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    

    Показать

    Вин-7

    #Если Клиент Тогда
    ////////////////////////////////////////////////////////////­////////////////////
    // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА
    // Процедура установки начальных настроек отчета с использованием текста запроса
    //
    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    // Настройка общих параметров универсального отчета
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = «Название отчета»;
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    

    Показать

    Reply ↓
  86. Abadonna

    Всё! На сегодня оно меня уже достало. Завтра днем поработаю еще

    Reply ↓
  87. Ёпрст

    (68) просто всё дело в названии версий..

    надо 911, или 112 ..тогда усё получится 🙂

    Reply ↓
  88. МимохожийОднако

    Скачал. Работает без кракозябров.

    Для статистики: Win7 Проф 64-разр Sp1. Раскладка по умолчанию русская

    Reply ↓
  89. Abadonna

    (85) Altair777, ха-ха-ха. Отформати этот модуль родным 1С-форматтером и получишь то же самое!

    Прога сама не форматит

    Reply ↓
  90. Ёпрст

    Ну вот, в последней версии усё заработало, но, есть недочет..

    если втыкать НаСервере/НаКлиенте … курсор убегает вверх текста, ладно, этим пользоваться не буду.

    Reply ↓
  91. Abadonna

    (90) Ёпрст, Прям чудеса с вашими «экзотическими» системами :))) У меня никуда не убегает, я сейчас как раз этой версией пользоваться стал. Вернее уже 4.1.1.2

    Reply ↓
  92. Altair777

    (89) а слабо самому написать форматтер? 😉

    Reply ↓
  93. Altair777

    (91)

    на моей вин-7 64 самая удачная была 3.1.1.1, а все остальное до 8.1.1.1+ …. фигня )

    Reply ↓
  94. Abadonna

    (92) Altair777

    а слабо самому написать форматтер? 😉

    А на хрена? В плагине к Тоталу под 7.7 писал, а тут-то зачем?

    Reply ↓
  95. Abadonna

    (90) Ёпрст, нашел в чем дело. Разнес по таймерам, а кое-что забыл… Там после вставки &НаСервере еще и форматирование работало, поэтому и прыгало вверх. Та же хрень и после вставки шаблонов. Качай сегодняшнюю

    (26/07) версию 4122, подправил

    Reply ↓
  96. Ёпрст

    (95) ага, ща проверим.

    Reply ↓
  97. Ёпрст

    А можешь еще сделать..»множественное» нажатие ?

    Чтоб, удерживая контрол и нажимая на «>» этот знак всегда вставлялся.. А то, «<>» неудобно вводить, приходится контрол отпускать-нажимать. Ловится только «одноразовое» нажатие.

    Reply ↓
  98. mdie

    (97) Ёпрст, для этого придется переписать процедуру hook’а с проверкой текущего статуса нажатия клавиши. Странно , что изначально не было сделано.

    Вообще ради удобной вставки спецсимволов я бы посоветовал использовать вот это (и вообще с помощью софтины, которой это сделано, можно свои «плюшки» реализовать)

    Reply ↓
  99. Abadonna

    (98) mdie,

    для этого придется переписать процедуру hook’а с проверкой текущего статуса нажатия клавиши. Странно , что изначально не было сделано.

    НЕ ТАМ НИКАКОГО ХУКА!!!! см. /99/

    Поэтому ни изначально, ни конечно статус не проверяется, проверяется:

    msg.message = WM_HOTKEY

    и

    HIWORD(msg.lParam) = КодТакойТоКлавиши

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *