Вход | Регистрация


1С:Предприятие ::

Метки:

Макрос в Конфигураторе 1С

Я
   LevelUP
 
13.06.17 - 17:28
Здравствуйте!
Мысль такая повесить на сочетания клавиш, например, копирование строки кода, в которой находится курсор. Ну и другие операции частые.
Интересно насколько это ускорит работу.
Подкиньте идеи как реализовать.
 
 
   Лефмихалыч
 
1 - 13.06.17 - 17:28
снегопат
   Волшебник
 
Модератор
2 - 13.06.17 - 17:28
Копирование кода — главный источник ошибок.
   LevelUP
 
3 - 13.06.17 - 17:29
(1) он же платный кажется
   Вафель
 
4 - 13.06.17 - 17:30
(3) ну так и конфигуратор не бесплатный
   LevelUP
 
5 - 13.06.17 - 17:30
может через AutoIT можно? Сделал маленький скрипт чтоб проверить, повесил в винде горячее сочетание на запуск ярлыка.
Но при этом запуске теряется фокус 1с окна.
   Fragster
 
6 - 13.06.17 - 17:31
(0) ни на сколько
   LevelUP
 
7 - 13.06.17 - 17:32
Ну я вот когда-то узнал про "[" и  "]". Так очень даже приятнее стало и быстрее.
   LevelUP
 
8 - 13.06.17 - 17:33
а вообще дело даже не в скорости сколько в реализации. Интересно новенькое узнать.
   Вафель
 
9 - 13.06.17 - 17:35
лучше джаву / js изучай
   Волшебник
 
Модератор
10 - 13.06.17 - 17:36
(8) погугли 1C:Enterprise Development Tools
 
 
   drcrasher
 
11 - 13.06.17 - 18:20
например вот это сильно помогает:
//    Шаблоны для работы в конфигураторе с системами 1С:Предприятие версии 8.3

//    Последнюю версию шаблонов всегда можно найти тут: 1c.chistov.pro
//    С уважением, Павел Чистов
   vvp91
 
12 - 13.06.17 - 18:41
(0)> копирование строки кода, в которой находится курсор
На строке стоишь, выделения нет, жмешь Ctrl+C.
Двигаешься на нужную строку, жмешь Ctrl+V.
   LevelUP
 
13 - 13.06.17 - 19:12
(12) вот это спасибо! А то я все Shift+home ...+ end.
   orefkov
 
14 - 13.06.17 - 19:14
(0)
По этой теме были уже готовые наработки на AutoIt, только найти сходу не могу.
Так же по такому принципу сделан TurboConf - http://catalog.mista.ru/public/180406/

(3)
Тю, что уж там платного? 2500? Даже средний шуруповёрт дороже стоит.

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

ЗЫ: копирование текущей строки в снегопате в скрипте textEditorExt.js повешено на Ctrl+. Равн окак и куча других команд.
   LevelUP
 
15 - 13.06.17 - 19:14
(11) Спасибо. Посмотрю на досуге.
   orefkov
 
16 - 13.06.17 - 19:14
+(14)
Ctrl+D
   MaxS
 
17 - 13.06.17 - 20:16
Использую клавиатуру с доп кнопками с макросами, на которые навешаны в том числе и запуск макросов снегопата...
   Ник080808
 
18 - 13.06.17 - 20:49
(7) Alt+38 = &
   kuzyara
 
19 - 14.06.17 - 04:03
alt + 60 62 91 93

так и живем...
   LevelUP
 
20 - 14.06.17 - 06:39
(18),(19) Здорово! запомню
   LevelUP
 
21 - 14.06.17 - 06:43
Кстати относительно (7) я имел ввиду не квадратные скобки как символы а возможность навигации по структурам кода сочетаниями Ctrl+[  ,   Ctrl+]. Ну и если надо всю процедуру выделить, то Ctrl+Shift+].
   SiAl-chel
 
22 - 14.06.17 - 08:40
(5) Делаешь скрипт, в нем пишешь бесконечный цикл, в скрипте прописываешь инициализацию двух сочетаний клавиш, на первое сочетание вешаешь функцию запуска нужных тебе действий, на вторую - прерывание цикла. После этого запускаешь скрипт, и он у тебя болтается в трее. При нажатии первого сочетания клавиш срабатывает твоя функция с нужными действиями в активном окне.
Если же твой вариант, то тогда перед нужными действиями надо найти окно Конфигуратора и его сделать активным.
   ret-Phoenix
 
23 - 14.06.17 - 10:47
(0) Набор скриптов на Autohotkey уже давно есть и прекрасно работает, делает очень многое http://catalog.mista.ru/public/339035/

Но лучше сразу смотреть https://github.com/ret-Phoenix/v8CfgAddsAhk/tree/dev

Функционал постоянно наращивается. Почти все написано на OneScript (http://oscript.io/), AHK только для работы с хоткеями.
   dezss
 
24 - 14.06.17 - 11:45
дирек, а потом <ctrl> + Q
   Повелитель
 
25 - 14.06.17 - 12:18
(0) Разленились 1с-ники, один купил мышку с 12 кнопкам, макросы повесил, второй тоже что-то приделвывает )))

Обычные шаблоны от 1с ускоряют в несколько раз работу с кодингом.
   Dzenn
 
26 - 14.06.17 - 13:00
(2) +1
   MaxS
 
27 - 14.06.17 - 13:07
(25) Как шаблон от 1С ускорит операцию выделить всё и скопировать в буфер в тексте модуля одного конфигуратора и потом выделить всё вставить из буфера в другом конфигураторе?
Мышкой - два движения, 4 кнопки.
Клавиатурой - нажать минимум 10 клавиш, если окна в фокусе.
   SiAl-chel
 
28 - 15.06.17 - 06:17
(27) Мышка - зло. :) Использование хоткеев вместо мышки здорово ускоряют работу. Мышедавы по лени - деграданты.
   Morkovkinator
 
29 - 15.06.17 - 07:08
(28) Мышка - добро.:) Но только там, где основной ввод происходит мышкой, AutoCAD, например. В других случаях скорее зло.
   1dvd
 
30 - 15.06.17 - 07:22
(27) CTRL+A CTRL+C ALT+TAB CTRL+V

Хотя, я предпочитаю CTRL+INS SHIFT+INS, но не суть...
Слабо представляю какой макрос или шаблон может в значительной степени ускорить эту опирацию
   LordCMEPTb
 
31 - 15.06.17 - 07:51
Шаблоны решают проблемы с написанием одинакового кода. Проблема шаблонов в том, что они вставляют кусок закодированного текста с заранее определенными переменными именно в текущее место. А как научить шаблон анализировать процедуру, в которую вставляется кусок кода, добавлять часть текста после окончания текущей процедуры, не совсем понятно..

Поясню, что имеется в виду. Банальная вставка кода асинхронного вопроса запроса:
СтруктураПараметров = Новый Структура;
ОписаниеОповещения = Новый ОписаниеОповещения("<?"Имя процедуры обработчика">", ЭтотОбъект, СтруктураПараметров);
ПоказатьВопрос(ОписаниеОповещения, "<?>", РежимДиалогаВопрос.ДаНетОтмена, 60);

<?>// Процедура-обработчик результата ответа на вопрос.

//
// Параметры:

//    РезультатВопроса        - КодВозвратаДиалога    - Ответ на вопрос.
//    ДополнительныеПараметры    - Произвольный            - Дополнительные параметры.

//
&НаКлиенте
Процедура <?"Имя процедуры обработчика">(Знач РезультатВопроса, Знач ДополнительныеПараметры = Неопределено) Экспорт
    
    Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
        
    ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Нет Тогда
        
    ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
        
    КонецЕсли; 
    
КонецПроцедуры

требует ввода новой процедуры обработчика ответа на вопрос, в то время как достаточно взять имя текущей процедуры и добавить "Завершение". Плюс кусок кода после комментария надо вручную переносить после конца текущей процедуры, ибо этот кусок вставляется в существующую.
   MaxS
 
32 - 15.06.17 - 08:43
(28) Ничего нового для меня в этом нет. Знаю я таких энергичных. )) У меня тоже могли бы быть всякие сравнения, но в силу культуры я воздерживаюсь от крайних высказываний. :P
(30) Перед CTRL+V нужно CTRL+A

Все эти комбинации клавиш можно повесить на дополнительную кнопку мыши и клавиатуры.
У человека две руки, одна на клавиатуре, другая на мышке. Непосредственно набор длинного текста - это мизер по сравнению с другими операциями и потратить доли секунды, чтобы переложить правую руку на клавиатуру не составляет труда.
(31) Одинаковый код скорее всего уже был ранее написан и даже может быть в текущей конфигурации, поэтому на соседнем мониторе обычно открыта аналогичная конфигурация или БСП и т.п. скопипастил и поправил для текущей задачи. И это будет быстрее правки результата не совсем интеллектуального шаблона.
   dezss
 
33 - 15.06.17 - 08:56
(28) мышка добро, но глупое, просто надо более интеллектуальную обработку ее действий...
даблклик, триплклик и т.п. надо лучше обрабатывать.
Если б в платформу подобное добавили, тогда от мыши было бы куда больше плюсов (что-то вроде четырекратного нажатия, выделяющего процедуру/функцию, например)
 
  Рекламное место пустует
   SiAl-chel
 
34 - 19.06.17 - 09:01
(32) Лет 18 назад работал оператором ПК, набивали заявки от покупателей в 1С ТиС 7.7 на слух. Скорость набора у тех, кто пользовался мышкой была в разы меньше, чем у тех (у меня), кто выучил хоткеи. Потому что мышкой еще нужно попасть в несколько пикселей, чтобы по "педальке" открылось окно подбора, а при помощи клавиш выходит несколько нажатий Tab и одно F4.
Да и перекидывание руки с клавиатуры на мышку и обратно тратит время. Так что если интерфейс рабочего места настроен грамотно, то и надобность в мышке почти отсутствует.
   orefkov
 
35 - 19.06.17 - 09:45
(31)
Это примерно так https://snegopat.ru/video/vt_creator или https://snegopat.ru/video/newdoc что-ли?
   MaxS
 
36 - 19.06.17 - 12:45
(34) Тема топика началась с обсуждением инструментов программиста. Вы же приводите пример оператора ПК, где действительно вся работа однообразна и все часто используемые однообразные операции можно найти или запрограммировать на клавиатуру.
Программист больше похож на художника, дизайнера, архитектора. И только клавиатурой не всегда удобно пользоваться. Например, простая операция - открыть обработку через файл-открыть, открыть код неосновной формы и открыть модуль объекта обработки. Мышкой удобнее и если трудно куда-то попасть, можно на той же мышке её кнопками убавить чувствительность.
   LordCMEPTb
 
37 - 19.06.17 - 13:56
(35) Скорее всего да, что-то похожее, но мне скорее не хватает кнопки, которая в текущее место закинет новый код (это реализовано в шаблонах), возьмет имя текущей процедуры и добавит к ней "Завершение", после завершения текущей процедуры создаст новую с полученным заголовком, в которую вставит нужный код (этого через шаблоны не сделать).
   MaxS
 
38 - 19.06.17 - 16:05
(37) Как вариант - написать код синхронный (по старинке) натравить на него штатный рефакторинг, который сделает все процедуры. ))

Макросов ИИ пока не хватает. Надиктовал в микрофон ТЗ, на утро разгребаешь сгенерированный код по стандартам 1С с использованием БСП и процедур конфигурации.
   LordCMEPTb
 
39 - 20.06.17 - 09:50
(38) Хы. Однажды как-то пытался натравить типовой функционал преобразователя на функцию выбора файла. Преобразователь сказал, что он не в состоянии.
// Функция вызывает диалог открытия файла.

//
// Параметры:

//    ПутьКФайлу        - Строка    - Значение, в которое будет помещен новый путь.
//    РежимДиалога    - Строка    - Доступные значения:

//        - "ВыбратьФайл" для открытия файла;
//        - "СохранитьФайл" для сохранения файла;

//        - другое значение для выбора папки.
//    Заголовок        - Строка    - Заголовок окна.

//    Фильтр            - Строка    - Фильтр файлов, например:
//        - "Текстовый документ(*.txt)|*.txt|Текстовый документ с расширением txt в любом регистре|*.[tT][xX][tT]".

//        
//

// Возвращаемое значение:
//    Булево    - Истина, если файл был выбран,

//            - Ложь, если пользователь отменил выбор.
//

Функция ВыбратьФайл(ПутьКФайлу, Знач РежимДиалога = "ВыбратьФайл", Знач Заголовок = "", Знач Фильтр = "") Экспорт
    
    Если Не ПодключитьРасширениеРаботыСФайлами() Тогда
        УстановитьРасширениеРаботыСФайлами();
    КонецЕсли;
    
    РежимРаботыСФайлом = Истина;
    // Установим режим выбора файла

    Если РежимДиалога = "ВыбратьФайл" Тогда
        РежимВыбораДиалога = РежимДиалогаВыбораФайла.Открытие;
    ИначеЕсли РежимДиалога = "СохранитьФайл" Тогда
        РежимВыбораДиалога = РежимДиалогаВыбораФайла.Сохранение;
    Иначе// Остается только выбор каталога

        РежимВыбораДиалога = РежимДиалогаВыбораФайла.ВыборКаталога;
        РежимРаботыСФайлом = Ложь;
    КонецЕсли;
    
    // Инициализируем диалог выбора файла

    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимВыбораДиалога); 
    
    // Заполним основные реквизиты

    ДиалогВыбора.Заголовок    = Заголовок;
    ДиалогВыбора.Фильтр        = Фильтр;
    
    // Проверим заполнение пути к файлу

    Если Не ПустаяСтрока(ПутьКФайлу) Тогда
        // Попробуем найти файл по переданному пути

        СуществующийФайл = Новый Файл(ПутьКФайлу);
        Если СуществующийФайл.Существует() Тогда
            Если СуществующийФайл.ЭтоФайл() Тогда
                ДиалогВыбора.ПолноеИмяФайла    = СуществующийФайл.ИмяБезРасширения;
                ДиалогВыбора.Каталог        = СуществующийФайл.Путь;
            Иначе// Выбранный файл - каталог

                ДиалогВыбора.ПолноеИмяФайла    = "";
                ДиалогВыбора.Каталог        = СуществующийФайл.ПолноеИмя;
            КонецЕсли;
        Иначе// Файла не существует, определим по наличию "\" в конец

            Если Прав(ПутьКФайлу, 1) = "\" Тогда// Видимо каталог

                ДиалогВыбора.ПолноеИмяФайла    = "";
                ДиалогВыбора.Каталог        = СуществующийФайл.ПолноеИмя;
            Иначе// Подразумевался файл

                ДиалогВыбора.ПолноеИмяФайла    = СуществующийФайл.ИмяБезРасширения;
                ДиалогВыбора.Каталог        = СуществующийФайл.Путь;
            КонецЕсли;
        КонецЕсли;    
    КонецЕсли;
    
    // Отобразим диалог выбора для пользователя    

    Если ДиалогВыбора.Выбрать() Тогда
        Если РежимРаботыСФайлом Тогда
            ПутьКФайлу = ДиалогВыбора.ПолноеИмяФайла;
        Иначе// Работаем с папкой

            ПутьКФайлу = ДиалогВыбора.Каталог;
        КонецЕсли;
        // Сообщим об успехе

        Возврат Истина;    
    КонецЕсли;
    
    // Если дошли до сюда, значит что-то не удалось

    Возврат Ложь;
    
КонецФункции

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



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует