gifts2017

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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


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

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

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

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

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

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

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

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

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

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

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

А как сделать, чтобы в контекстной подсказке это учитывалось?
Прикрепленные файлы:
17. Геннадий Пиганов (Totoro) 06.11.13 10:42
(16) Собственно как это сделать я знаю :) Я еще в первых версиях подобное делал через V8Unpack, а тем более сейчас когда такой функционал есть в ИР. Только заниматся этим пока некогда.
18. Андрей Акулов (DrAku1a) 06.11.13 10:50
(17) Давайте вмести уже довертим функционал? Я напишу загрузку в процедур, функций и переменных в справочник и скину результат Вам. Сделаете, чтобы функции и процедуры появлялись во всплывающей подсказке?
19. Геннадий Пиганов (Totoro) 06.11.13 11:26
(18) Напомни в пятницу вечером. Если не буду на выходные занят и найду архив в котором делал, то можно попробовать доделать для текущей версии.
20. Сергей Старых (tormozit) 19.11.13 11:12
(14) Контекстная справка в ИР работает естественно только для предопределенных методов, т.к. для них есть описание в синтакс-помощнике. Для остальных не предусмотрено.
21. Андрей Акулов (DrAku1a) 19.11.13 13:52
(20) Но Вам же удается получить список процедур общих модулей. Почему не сделать к ним список параметров этих процедур? Без параметров - это только половина дела...
22. Сергей Старых (tormozit) 19.11.13 14:22
(21) Удается получить через экспортную функцию из dll платформы. Этот код я заимствовал из Информатора, написанного chessman'ом http://www.1cpp.ru/forum/YaBB.pl?num=1313560540/90 . Там "рядом" можно получить только количество обязательных параметров, но их имена, типы и передачи по Ссылке/Значению, значения по умолчанию недоступны.
23. Андрей Акулов (DrAku1a) 19.11.13 14:49
(22) ну для начала хотя бы количество) а вот для КД можно бы анализировать тексты модулей... пока что руки не доходят сделать их анализ - но думаю, там дел на один вечер...
24. Алексей Орлов (_also) 31.01.14 15:21
Люди, на каком уровне живет эта разработка. Может кто выложит готовый cf для последней конвертации?
25. Геннадий Пиганов (Totoro) 31.01.14 17:47
(24) Тут я выложить не могу готовый cf (правила запрещают), но если не получилось обновить на последний релиз КД, то могу в личку ссылку кинуть. ИР будет старая 2.03.
26. Алексей Орлов (_also) 04.02.14 09:49
27. Елена Пименова (Bukaska) 04.02.14 15:51
28. Геннадий Пиганов (Totoro) 04.02.14 23:16
29. Геннадий Пиганов (Totoro) 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) 13.02.14 09:53
(29) Totoro, Вам спасибо. Был готов сам это с нуля делать!
31. Сергей Старых (tormozit) 13.02.14 10:42
(30) Хорошо, что удалось предотвратить это =)
32. Артур Аюханов (artbear) 13.02.14 11:36
33. Сергей Шевченко (demon_infernal) 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) 14.02.14 22:31
Ввиду того, что удалось сделать перегрузку процедур/функций для общих модулей и объектов через COM-соединение и подсказка по ним работает, то текущей реализацией стало действительно удобно пользоваться (во всяком случае мне :)). Даже с учетом того, что подгружается копия метаданных. Сейчас есть следующие варианты развития:
1) Сделать единую обработку загрузки через СОМ-содинение, чтобы не нужно было запускать две обработки. При этом будет два варианта загрузки:
а) нажатием одной кнопки (или программно, по регл. заданию) - по последним настройкам списка метаданных, если загрузка уже производилась;
б) загрузка с открытием текущего диалога настроек.
2) Попробовать подключить подсказку к запросам в КД
3) Сделать единую обработку перегрузки метаданных через файл. тогда добавится перегрузка глобальных процедур/функций и можно будет использовать для баз к которым нет доступа по сети.

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

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

 на строку

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