Конвертация данных + Контекстная подсказка 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
85
.cf 4,94Mb 85 Скачать
Файл обновления для КД 2.03.1 (8.2, устаревшая версия)
.cf 2,50Mb
04.07.14
212
.cf 2,50Mb 212 Скачать

См. также

Комментарии
1. Notka Sp (notka) 115 09.07.10 10:20 Сейчас в теме
Тестировать еще только начала, но так как идея нужная +
2. Андрей Шиба (andy-cj) 52 14.07.10 09:13 Сейчас в теме
3. Артур Аюханов (artbear) 857 14.07.10 10:30 Сейчас в теме
Хорошая мысль, сам много раз о подобном думал.
Но немного напрягает способ объединения конфигураций, исходной КД и сабжа - неудобно :(
ЗЫ Кстати, на ИС есть аналог для более ранней версии КД и КП
4. Геннадий Пиганов (Totoro) 493 14.07.10 11:56 Сейчас в теме
(3) Старался поменьше изменять конфигурацию КД (т.к. выложить уже объединенную конфигурацию я не смогу) и в то же время дать гибкость при хранении метаданных. Поэтому пришлось уйти от стандартных справочников КД. Жду новой версии КД - там поглядим...
ЗЫ Если про это смесь ужа и ежа, то там контекстная подсказка не изменялась и работает как обычно для метаданных КД, а не той конфигурации, которая нужна. Поэтому и не упомянул.
5. Артур Аюханов (artbear) 857 23.07.10 15:48 Сейчас в теме
(4) Все, КД на 8.1 кончилась :)
Смотрел новую версию, только для 8.2 ?
6. Геннадий Пиганов (Totoro) 493 23.07.10 19:13 Сейчас в теме
(5) Да, но управляемыми формами пока не пахнет. А имеющиеся изменения нетрудно самому в 8.1 внести. Т.ч. пока пациент скорее жив, чем мертв :D А жаль.
7. Геннадий Пиганов (Totoro) 493 24.09.10 15:33 Сейчас в теме
8. Артур Аюханов (artbear) 857 13.12.10 11:26 Сейчас в теме
(7) Я сделал обновление сабжа на платформе 8.2 для последней КД 2.1.3.1 и ИР 2.06.
Также есть дополнения по GComp для конфигураций 77.
Если будет нужно, могу выложить файл конфигурации моей КД :)
9. Геннадий Пиганов (Totoro) 493 13.12.10 15:21 Сейчас в теме
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.
ЗЫ Только насчет полной конфигурации КД - я тут узнавал, нельзя :).
10. Артур Аюханов (artbear) 857 15.12.10 15:58 Сейчас в теме
Totoro пишет:
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Большое спасибо _also за помощь в тестировании
dyuha; happyden; shalimski; zqzq; DrAku1a; demon_infernal; artbear; tormozit; _also; +9 Ответить 2
30. Алексей Орлов (_also) 330 13.02.14 09:53 Сейчас в теме
(29) Totoro, Вам спасибо. Был готов сам это с нуля делать!
31. Сергей Старых (tormozit) 4168 13.02.14 10:42 Сейчас в теме
(30) Хорошо, что удалось предотвратить это =)
32. Артур Аюханов (artbear) 857 13.02.14 11:36 Сейчас в теме
33. Сергей Шевченко (demon_infernal) 19 13.02.14 23:01 Сейчас в теме
Жаль, нельзя больше 1 плюса поставить) отрываю с руками. Нечеловеческое Спасибо!

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

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

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

 на строку

ИначеЕсли (СтрокаОписанияВида.ИмяКоллекции = "Предопределенные" ИЛИ СтрокаОписанияВида.ИмяКоллекции = "ЗначенияПеречисления")
...Показать Скрыть
43. Сергей Шевченко (demon_infernal) 19 25.02.14 22:50 Сейчас в теме
(41) Огромное спасибо.
реально ли сделать подсказку по параметрам методов общих модулей? Раньше в конфигуратор лазили, чтобы посмотреть методы общих модулей, теперь лазим только за параметрами.
Если не реально - ок, и так уже очень даже хорошо. Просто спрашиваю.
44. Геннадий Пиганов (Totoro) 493 26.02.14 10:08 Сейчас в теме
(43) Сейчас нельзя. Подробнее в (22).
45. Геннадий Пиганов (Totoro) 493 03.07.14 16:43 Сейчас в теме
Обновил до КД 2.1.8.2 и ИР 3.07
46. Геннадий Пиганов (Totoro) 493 04.07.14 16:41 Сейчас в теме
Временное исправление (до появления новой версии ИР) ошибки загрузки методов в 8.3/8.2.
На текущий момент не работает загрузка методов при разных версиях платформы (ИБ 8.2 -> КД 8.3, ИБ 8.3 -> КД 8.2). Нормально работает при аналогичной версии платформы (ИБ 8.2 -> КД 8.2, ИБ 8.3 -> КД 8.3).
47. Евгений Фалин (Gotcha) 5 09.07.14 13:18 Сейчас в теме
Граждане, прошу прощения, что оффтопик, но кто такие "Правила Корреспондента", добавленные в 2.1.8.2 - в хелпе ничего не вижу, в инернетах, навскидку-тоже. Какая польза от оных?
demon_infernal; +1 Ответить
48. Роман Уничкин (unichkin) 348 15.04.15 10:21 Сейчас в теме
(46) Totoro, так и не смог добиться контекстной подсказки. Все ВК зарегистрированы, xp sp3, КД 2.1.8.2, выставил свойство у конфигураций 8.2. Только через com не пробовал, сейчас буду пытаться.
-
Блин) Нужно было просто право дать пользователю. Вы бы в статье указали этот момент.
49. Роман Уничкин (unichkin) 348 15.04.15 11:01 Сейчас в теме
Подскажите пожалуйста: открываю настройки в модуле ПКС, там есть возможность указать файл шаблонов текста. Указал свои шаблоны, которыми пользуюсь постоянно, но ни автоматически ни по ctrl+пробел не срабатывает, что нужно сделать?
_
Нашел shift + space