Конвертация данных + Контекстная подсказка 2.1.8.2+3.07 v2

Опубликовал Totoro в раздел Программирование - Инструментарий

Совмещение возможностей контекстной подсказки мощной разработки "Инструменты разработчика" (автор tormozit) и типовой конфигурации "Конвертации данных". Возможна контекстная подсказка по основным объектам и их типовым методам, по экспортным процедурам/функциям общих модулей (кроме глобальных) и по экспортным процедурам/функциям объектов.

Данная доработка подсистемы "Инструменты разработчика" (сокращенно ИР, автор tormozit) для добавления в конфигурацию "Конвертация данных ред.2" (сокращенно КД) возможности контекстной подсказки для произвольной конфигурации при написании кода обработчиков и алгоритмов.
Также добавлен справочник "Внешние обработки". Обработки из него удобно открывать через интерфейсную панель ИР.

Последняя версия рассчитана на КД 2.1.8.2

Интеграция в КД:

1. Включаем возможность внесения изменений в базе с конфигурацией "Конвертация данных".
2. Запускаем сравнение с файлом конфигурации КД+ИР.
3. После появления диалога объединения конфигураций снимаем флажки у всех объектов отключив флажок на корне метаданных.
Кто хочет оставить заставку с эмблемой КД и ИР может оставить флаг на "Заставка".
4. Нажимаем кнопку "Действия"-"Установить по подсистемам файла". Будет отмечена подсистема "Инструменты разработчика". Нажимаем "Установить".
5. Открываемь ветвь метаданных "Общие"-"Подсистемы" и ставим флажок у подсистем "ИнструментыРазработчика" и "кдКонтекстнаяПодсказка".
6. Нажимаем "Выполнить" и обновляем конфигурацию.
7. Открываем через меню "Файл"-"Открыть" файл конфигурации КД+ИР.
8. Открываем в ней модуль формы элемента справочнника "Конвертации". Копируем весь кода из модуля (он будет выделен скобками "КЛАСС.ПолеТекстовогоДокументаСКонтекстнойПодсказкой "). Открываем модуль формы элемента справочника "Конвертации" в конфигурации базы КД. Вставляем скопированный кусок кода перед комментарием "ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ".
9. Аналогично копируем код из модулей формы:
- элемента справочника "ПравилаВыгрузкиДанных"
- элемента справочника "ПравилаКонвертацииОбъектов"
- элемента справочника "ПравилаКонвертацииСвойств"
- элемента справочника "ПравилаОчисткиДанных"
- элемента справочника "Алгоритмы" (код вставлять в конец модуля формы)
10. Для тех, кто использует мою групповую обработку объектов/свойств необходимо скопировать кусок кода общей формы "ПравилаОбмена".
11. Обновляем БД. Теперь можно сохранить конфигурацию и обновлять другие базы КД уже на неё сразу.

Начало использования:

1. Загружаем метаданные конфигураций типовым способом. Это можно сделать:

- загрузив правила обмена, тогда загрузятся объекты метаданных, которые использовались в них
- загрузив метаданные из файла типовой обработкой
- загрузив метаданные через COM-соединение с базой моей обработкой через меню «Контекстная подсказка (КД)»-«Загрузка структуры метаданных (через COM-соединение)»
2. Загружаем метаданные для контекстной подсказки. Загрузка выполняется с помощью обработки через меню «Контекстная подсказка (КД)»-«Загрузка структуры метаданных (КД)». В обработке нужно выбрать конфигурацию КД к которой будут привязаны метаданные. Возможны следующие способы загрузки:
- по данным имеющейся конфигурации КД. В этом случае в обработке нужно выбрать режим «По конфигурации КД». Будут загружены только поддерживаемые КД метаданные.
- через COM-соединение к базе. В этом случае нужно выбрать в обработке режим «Через COM-соединение», указать соединение к базе и отметить необходимые метаданные. Если типовые метаданные вы загружали тоже через COM-соединение, то его параметры будут заполнены. В этом режиме возможна загрузка так же и экспортных процедур/функций из общих модулей, модулей объектов и модулей менеджера объектов. Глобальные процедуры/функции не загружаются.
3. После этого, для правил обмена с загруженными метаданными будет доступна контекстная подсказка в обработчиках.

 

 

 

Файлы

Наименование Файл Версия Размер Кол. Скачив.
КД2182_ИР307_upd v2.cf
.cf 4,94Mb
04.07.14
75
.cf 4,94Mb 75 Скачать
Файл обновления для КД 2.03.1 (8.2, устаревшая версия)
.cf 2,50Mb
04.07.14
212
.cf 2,50Mb 212 Скачать

См. также

Лучшие комментарии

29. Totoro 13.02.2014 08:48
- Обновил до ИР 3.04 и КД 2.1.8.1
- добавил загрузку через COM-соединение общих модулей (кроме глобальных) и экспортных процедур/функций общих модулей и объектов. Теперь подсказка в коде работает и по ним. Отключить загрузку процедур/функций можно в настройках COM-соединения (по умолчанию включена).
- упростил использование загрузки через COM-соединение

Большое спасибо _also за помощь в тестировании
Ответили: (30) (32)
# Ответить
33. demon_infernal (файл скачал) 13.02.2014 23:01
Жаль, нельзя больше 1 плюса поставить) отрываю с руками. Нечеловеческое Спасибо!

UPD:
Для кого актуальны базы-источники и/или приемники на платформе 7.7:
Обработка выгрузки правил КД 2.1.8.1 с поддержкой GCOMP
Замените имеющуюся в конфигурации обработку на приложенную - получите все то же самое, но с поддержкой GCOMP. Все изменения помечены комментом //dem
Сам GCOMP v.2.2.15
+ 2 [ dyuha; artbear; ]
# Ответить
7. Totoro 24.09.2010 15:33
Обновил для ИР 2.03
Ответили: (8)
+ 1 [ artbear; ]
# Ответить

Комментарии

1. notka (файл скачал) 09.07.2010 10:20
Тестировать еще только начала, но так как идея нужная +
# Ответить
2. andy-cj (файл скачал) 14.07.2010 09:13
Зачет, попробуем.
# Ответить
3. artbear (файл скачал) 14.07.2010 10:30
Хорошая мысль, сам много раз о подобном думал.
Но немного напрягает способ объединения конфигураций, исходной КД и сабжа - неудобно :(
ЗЫ Кстати, на ИС есть аналог для более ранней версии КД и КП
Ответили: (4)
# Ответить
4. Totoro 14.07.2010 11:56
(3) Старался поменьше изменять конфигурацию КД (т.к. выложить уже объединенную конфигурацию я не смогу) и в то же время дать гибкость при хранении метаданных. Поэтому пришлось уйти от стандартных справочников КД. Жду новой версии КД - там поглядим...
ЗЫ Если про это смесь ужа и ежа, то там контекстная подсказка не изменялась и работает как обычно для метаданных КД, а не той конфигурации, которая нужна. Поэтому и не упомянул.
Ответили: (5)
# Ответить
5. artbear (файл скачал) 23.07.2010 15:48
(4) Все, КД на 8.1 кончилась :)
Смотрел новую версию, только для 8.2 ?
Ответили: (6)
# Ответить
6. Totoro 23.07.2010 19:13
(5) Да, но управляемыми формами пока не пахнет. А имеющиеся изменения нетрудно самому в 8.1 внести. Т.ч. пока пациент скорее жив, чем мертв :D А жаль.
# Ответить
7. Totoro 24.09.2010 15:33
Обновил для ИР 2.03
Ответили: (8)
+ 1 [ artbear; ]
# Ответить
8. artbear (файл скачал) 13.12.2010 11:26
(7) Я сделал обновление сабжа на платформе 8.2 для последней КД 2.1.3.1 и ИР 2.06.
Также есть дополнения по GComp для конфигураций 77.
Если будет нужно, могу выложить файл конфигурации моей КД :)
Ответили: (9) (10)
# Ответить
9. Totoro 13.12.2010 15:21
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.
ЗЫ Только насчет полной конфигурации КД - я тут узнавал, нельзя :).
# Ответить
10. artbear (файл скачал) 15.12.2010 15:58
Totoro пишет:
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.

По отладке 77 и ЖКомп я лично фразу не понял.Пояснишь?
# Ответить
11. a4a 13.02.2012 11:49
Пытаюсь работать с конфигурацией "Конвертация данных", очень востребован ее функционал. Но не могу похвастать, что удается так сразу в ней разобраться как следует, а очень хочется. Поэтому очень приветствую разработку, усиливающую ее возможности. Спасибо!
# Ответить
12. tehas 10.03.2012 21:22
очень полезно, спасибо
# Ответить
13. zqzq (файл скачал) 30.07.2013 12:16
Объединил с КД 2.1.7.1 по инструкции - всё нормольно, одно но: в правилах ПКО и ПКС изменение размера поля не работает из-за добавленного поля "имя обработчика". Для исправления нужно заменить одну строчку в модуле кдРаботаСДиалогами в процедуре ИнициализироватьКонтекстнуюПодсказкуНаФорме
ТекКоманднаяПанель.Верх   = ТекПолеТекстовогоДокумента.Высота - ТекКоманднаяПанель.Высота - 2;

на строчку
ТекКоманднаяПанель.Верх   = ТекПолеТекстовогоДокумента.Высота; // - ТекКоманднаяПанель.Высота - 2; // для учёта нового поля "имя обработчика"


upd: всё равно иногда слетают привязки. Остановился на варианте вообще скрыть панель, вся функциональность через контекстное меню доступна:
ТекКоманднаяПанель.Видимость = Ложь; 
+закомментировать код по установке привязок и положения ТекКоманднаяПанель
Ответили: (14)
# Ответить
14. DrAku1a (файл скачал) 05.11.2013 17:16
Начал изучать правила обмена, КД и иже с ними... Взял конфу КД версии 2.1.8.1 с диска ИТС за октябрь, прикрутил к ней эту доработку вообще без проблем...
Помимо описанного в инструкции, пришлось еще повозиться с формами, куда собственно панельки и встраиваются, а именно с привязками. Проблема видимо та-же, что и в (13). Я во всех формах принудительно привязал текстовое поле растягиваться по ширине и высоте и дополнительные поля также в зависимости от расположения жестко привязал к границам панели - это помогло.

Мне в принципе КД нравится. Но визуального доступа к данным нет. Отладка слабенькая, ИМХО... Наверное не мешало бы видеть выгружаемые данные перед загрузкой и подробное описание всех действий при загрузке.

Вопросы/предложения:

1. А подсказка по функциям общих модулей доступна? И как список процедур подгрузить?

2. Для общих модулей, да и для стандартных процедур надо бы еще подсказку по параметрам, чтобы в код не лезть постоянно. Этого не нашел даже в ИР (пробовал мобильные ИР, и там есть справка с выделением текущего параметра жирным шрифтом).

Понятно, что тема старая... Автору, если забросил - подскажи в какую сторону смотреть - что перспективнее?
Ответили: (15) (20)
# Ответить
15. Totoro 05.11.2013 20:38
(14) Проблема с привязками старая и тянется в формах КД уже давно. Единственный способ - или подправить привязки руками (чтобы не вылезали за обычные границы) или отключать панель совсем.

Чтобы загрузить список модулей нужно сначала его выгрузить. Сейчас такого функционала у меня нет.

ЗЫ Вообще текущий вариант я развивать не буду. Есть пока не доделанная версия в которой используется немного упрощенный список метаданных из типовых справочников КД (что бы упростить использование и не возиться с полными дублями метаданных и не раздувать базу) и частичными дополнениями в отдельном справочнике некоторых метаданных. Т.к. как показала практика с опытом нужно в основном подсказки по небольшому списку метаданных и именам общих модулей.

Альтернативы пока не встречал, т.ч. и посоветовать нечего.
Ответили: (16)
# Ответить
16. DrAku1a (файл скачал) 06.11.2013 02:12
(15)
нужно сначала его выгрузить. Сейчас такого функционала у меня нет.

Это можно сделать из конфигуратора (см. рисунок).
Можно также использовать V8Unpack для сохраненной конфигурации.
А ещё, можно подсмотреть, как это реализовано в подсистеме ИР - там подсказки по методам модулей есть.

Могу сделать справочник типа "Функции и процедуры", куда размещать их описания (место определения, название, параметры) и загрузчик информации туда.

А как сделать, чтобы в контекстной подсказке это учитывалось?
Ответили: (17)

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

Image 303.png
Image 304.png
# Ответить
17. Totoro 06.11.2013 10:42
(16) Собственно как это сделать я знаю :) Я еще в первых версиях подобное делал через V8Unpack, а тем более сейчас когда такой функционал есть в ИР. Только заниматся этим пока некогда.
Ответили: (18)
# Ответить
18. DrAku1a (файл скачал) 06.11.2013 10:50
(17) Давайте вмести уже довертим функционал? Я напишу загрузку в процедур, функций и переменных в справочник и скину результат Вам. Сделаете, чтобы функции и процедуры появлялись во всплывающей подсказке?
Ответили: (19)
# Ответить
19. Totoro 06.11.2013 11:26
(18) Напомни в пятницу вечером. Если не буду на выходные занят и найду архив в котором делал, то можно попробовать доделать для текущей версии.
# Ответить
20. tormozit 19.11.2013 11:12
(14) Контекстная справка в ИР работает естественно только для предопределенных методов, т.к. для них есть описание в синтакс-помощнике. Для остальных не предусмотрено.
Ответили: (21)
# Ответить
21. DrAku1a (файл скачал) 19.11.2013 13:52
(20) Но Вам же удается получить список процедур общих модулей. Почему не сделать к ним список параметров этих процедур? Без параметров - это только половина дела...
Ответили: (22)
# Ответить
22. tormozit 19.11.2013 14:22
(21) Удается получить через экспортную функцию из dll платформы. Этот код я заимствовал из Информатора, написанного chessman'ом http://www.1cpp.ru/forum/YaBB.pl?num=1313560540/90 . Там "рядом" можно получить только количество обязательных параметров, но их имена, типы и передачи по Ссылке/Значению, значения по умолчанию недоступны.
Ответили: (23) (44)
# Ответить
23. DrAku1a (файл скачал) 19.11.2013 14:49
(22) ну для начала хотя бы количество) а вот для КД можно бы анализировать тексты модулей... пока что руки не доходят сделать их анализ - но думаю, там дел на один вечер...
# Ответить
24. _also (файл скачал) 31.01.2014 15:21
Люди, на каком уровне живет эта разработка. Может кто выложит готовый cf для последней конвертации?
Ответили: (25)
# Ответить
25. Totoro 31.01.2014 17:47
(24) Тут я выложить не могу готовый cf (правила запрещают), но если не получилось обновить на последний релиз КД, то могу в личку ссылку кинуть. ИР будет старая 2.03.
Ответили: (26) (27)
# Ответить
26. _also (файл скачал) 04.02.2014 09:49
(25) написал Вам в личку
# Ответить
27. Bukaska 04.02.2014 15:51
(25) Totoro, Что такое ИР?
Ответили: (28)
# Ответить
29. Totoro 13.02.2014 08:48
- Обновил до ИР 3.04 и КД 2.1.8.1
- добавил загрузку через COM-соединение общих модулей (кроме глобальных) и экспортных процедур/функций общих модулей и объектов. Теперь подсказка в коде работает и по ним. Отключить загрузку процедур/функций можно в настройках COM-соединения (по умолчанию включена).
- упростил использование загрузки через COM-соединение

Большое спасибо _also за помощь в тестировании
Ответили: (30) (32)
# Ответить
30. _also (файл скачал) 13.02.2014 09:53
(29) Totoro, Вам спасибо. Был готов сам это с нуля делать!
Ответили: (31)
# Ответить
31. tormozit 13.02.2014 10:42
(30) Хорошо, что удалось предотвратить это =)
+ 1 [ _also; ]
# Ответить
32. artbear (файл скачал) 13.02.2014 11:36
(29) Огромное спасибо!
# Ответить
33. demon_infernal (файл скачал) 13.02.2014 23:01
Жаль, нельзя больше 1 плюса поставить) отрываю с руками. Нечеловеческое Спасибо!

UPD:
Для кого актуальны базы-источники и/или приемники на платформе 7.7:
Обработка выгрузки правил КД 2.1.8.1 с поддержкой GCOMP
Замените имеющуюся в конфигурации обработку на приложенную - получите все то же самое, но с поддержкой GCOMP. Все изменения помечены комментом //dem
Сам GCOMP v.2.2.15
+ 2 [ dyuha; artbear; ]
# Ответить
34. Totoro 14.02.2014 22:31
Ввиду того, что удалось сделать перегрузку процедур/функций для общих модулей и объектов через COM-соединение и подсказка по ним работает, то текущей реализацией стало действительно удобно пользоваться (во всяком случае мне :)). Даже с учетом того, что подгружается копия метаданных. Сейчас есть следующие варианты развития:
1) Сделать единую обработку загрузки через СОМ-содинение, чтобы не нужно было запускать две обработки. При этом будет два варианта загрузки:
а) нажатием одной кнопки (или программно, по регл. заданию) - по последним настройкам списка метаданных, если загрузка уже производилась;
б) загрузка с открытием текущего диалога настроек.
2) Попробовать подключить подсказку к запросам в КД
3) Сделать единую обработку перегрузки метаданных через файл. тогда добавится перегрузка глобальных процедур/функций и можно будет использовать для баз к которым нет доступа по сети.

Что интересующиеся предпочтут?
Ответили: (35)
# Ответить
35. _also (файл скачал) 17.02.2014 15:31
(34) все три пункта очень нужны и важны, но мне актуальнее всего 1 а)
Ответили: (38)
# Ответить
36. DoctorRoza 18.02.2014 08:11
Отмечусь, отличная вещь, нужно ознакомиться! :)
# Ответить
37. so-quest (файл скачал) 18.02.2014 10:48
авансом плюсую
# Ответить
38. Totoro 18.02.2014 19:22
(35) Значит её и сделаем первой
# Ответить
39. demon_infernal (файл скачал) 22.02.2014 14:11
По какой то непонятной мне причине не работает подсказка имен методов общих модулей.
Все делаю по инструкции, при загрузке через COM-соединение галка "Экспортные процедуры\функции" установлена. Сами имена общих модулей подсказываются нормально, а вот их методы - нет. И то же самое с элементами перечислений. Я пишу, допустим
А = Перечисления.СтавкиНДС<ставлю точку>
, появляется список методов перечисления (Индекс(), Количество(), Получить() и т.д.), а значений перечисения в списке нет...
То же самое у меня было еще на КД 2.1.5.1 с добавленным функционалом подсказки, тогда я думал, что как то неправильно произвел объединение... Вобщем, не понятно. Кто нибудь сталкивался? Или у всех все работает?
Могу выложить свой cf, объясните, что я делаю не так.
Большое спасибо.
UPD Такое наблюдается, если ИБ-источник на платформе 8.1. У меня под рукой конвертация 8.1 - 8.2, на стороне источника методы общих модулей не подсказываются, на стороне приемника методы общих модулей подсказываются нормально, но значения перечислений не подсказываются нигде.
Ответили: (40)
# Ответить
40. Totoro 24.02.2014 08:15
(39) Под 8.1 не проверял, т.к. уже давно забыл про неё. Проверю, но не думаю что твой cf-ник нужен будет.
Ответили: (41)
# Ответить
41. Totoro 24.02.2014 23:12
(39) По поводу загрузки методов из 8.1 через COM-соединение - не работает. Во всяком случае возвращается пустая таблица. Работоспособность просто контекстной подсказки по методам в 8.1 проверить нельзя, т.к. в последней версии для 8.1 еще не использовалась эта возможность подсказки.

По поводу перечислений - действительно ошибка. Исправлю в следующий версии. Сейчас можно исправить так:
в модуле обработки "ирПлатформа" в строке 1540 заменить строку
ИначеЕсли СтрокаОписанияВида.ИмяКоллекции = "Предопределенные"

 на строку

ИначеЕсли (СтрокаОписанияВида.ИмяКоллекции = "Предопределенные" ИЛИ СтрокаОписанияВида.ИмяКоллекции = "ЗначенияПеречисления")
...Показать Скрыть
Ответили: (43)
# Ответить
43. demon_infernal (файл скачал) 25.02.2014 22:50
(41) Огромное спасибо.
реально ли сделать подсказку по параметрам методов общих модулей? Раньше в конфигуратор лазили, чтобы посмотреть методы общих модулей, теперь лазим только за параметрами.
Если не реально - ок, и так уже очень даже хорошо. Просто спрашиваю.
Ответили: (44)
# Ответить
44. Totoro 26.02.2014 10:08
(43) Сейчас нельзя. Подробнее в (22).
# Ответить
45. Totoro 03.07.2014 16:43
Обновил до КД 2.1.8.2 и ИР 3.07
# Ответить
46. Totoro 04.07.2014 16:41
Временное исправление (до появления новой версии ИР) ошибки загрузки методов в 8.3/8.2.
На текущий момент не работает загрузка методов при разных версиях платформы (ИБ 8.2 -> КД 8.3, ИБ 8.3 -> КД 8.2). Нормально работает при аналогичной версии платформы (ИБ 8.2 -> КД 8.2, ИБ 8.3 -> КД 8.3).
Ответили: (48)
# Ответить
47. Gotcha 09.07.2014 13:18
Граждане, прошу прощения, что оффтопик, но кто такие "Правила Корреспондента", добавленные в 2.1.8.2 - в хелпе ничего не вижу, в инернетах, навскидку-тоже. Какая польза от оных?
+ 1 [ demon_infernal; ]
# Ответить
48. unichkin (файл скачал) 15.04.2015 10:21
(46) Totoro, так и не смог добиться контекстной подсказки. Все ВК зарегистрированы, xp sp3, КД 2.1.8.2, выставил свойство у конфигураций 8.2. Только через com не пробовал, сейчас буду пытаться.
-
Блин) Нужно было просто право дать пользователю. Вы бы в статье указали этот момент.
+ 1 [ Young; ]
# Ответить
49. unichkin (файл скачал) 15.04.2015 11:01
Подскажите пожалуйста: открываю настройки в модуле ПКС, там есть возможность указать файл шаблонов текста. Указал свои шаблоны, которыми пользуюсь постоянно, но ни автоматически ни по ctrl+пробел не срабатывает, что нужно сделать?
_
Нашел shift + space
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016