1с не удалось зарегистрировать com компоненту dynamicwrapperx
Совмещение возможностей контекстной подсказки мощной разработки "Инструменты разработчика" (автор 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. После этого, для правил обмена с загруженными метаданными будет доступна контекстная подсказка в обработчиках.
Совмещение возможностей контекстной подсказки мощной разработки "Инструменты разработчика" (автор tormozit) и типовой конфигурации "Конвертации данных". Возможна контекстная подсказка по основным объектам и их типовым методам, по экспортным процедурам/функциям общих модулей (кроме глобальных) и по экспортным процедурам/функциям объектов.
Хорошая мысль, сам много раз о подобном думал.
Но немного напрягает способ объединения конфигураций, исходной КД и сабжа - неудобно :(
ЗЫ Кстати, на ИС есть аналог для более ранней версии КД и КП
(3) Старался поменьше изменять конфигурацию КД (т.к. выложить уже объединенную конфигурацию я не смогу) и в то же время дать гибкость при хранении метаданных. Поэтому пришлось уйти от стандартных справочников КД. Жду новой версии КД - там поглядим.
ЗЫ Если про это смесь ужа и ежа , то там контекстная подсказка не изменялась и работает как обычно для метаданных КД, а не той конфигурации, которая нужна. Поэтому и не упомянул.
(5) Да, но управляемыми формами пока не пахнет. А имеющиеся изменения нетрудно самому в 8.1 внести. Т.ч. пока пациент скорее жив, чем мертв :D А жаль.
(7) Я сделал обновление сабжа на платформе 8.2 для последней КД 2.1.3.1 и ИР 2.06.
Также есть дополнения по GComp для конфигураций 77.
Если будет нужно, могу выложить файл конфигурации моей КД :)
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.
ЗЫ Только насчет полной конфигурации КД - я тут узнавал, нельзя :).
Totoro пишет:
(8) Я не против. Могу и сам сделать, но времени и потребности пока нет, а сильных изменений для подсказки в КД там не было. По дополнению с GComp для конфигураций 77 думаю ту тему переименовать, т.к. отладка обработчиков уже не так актуальна. Если хочешь, можешь там выложить. Или все в одной конфе.
Пытаюсь работать с конфигурацией "Конвертация данных", очень востребован ее функционал. Но не могу похвастать, что удается так сразу в ней разобраться как следует, а очень хочется. Поэтому очень приветствую разработку, усиливающую ее возможности. Спасибо!
Объединил с КД 2.1.7.1 по инструкции - всё нормольно, одно но: в правилах ПКО и ПКС изменение размера поля не работает из-за добавленного поля "имя обработчика". Для исправления нужно заменить одну строчку в модуле кдРаботаСДиалогами в процедуре ИнициализироватьКонтекстнуюПодсказкуНаФорме
upd: всё равно иногда слетают привязки. Остановился на варианте вообще скрыть панель, вся функциональность через контекстное меню доступна:
Начал изучать правила обмена, КД и иже с ними. Взял конфу КД версии 2.1.8.1 с диска ИТС за октябрь, прикрутил к ней эту доработку вообще без проблем.
Помимо описанного в инструкции, пришлось еще повозиться с формами, куда собственно панельки и встраиваются, а именно с привязками. Проблема видимо та-же, что и в (13). Я во всех формах принудительно привязал текстовое поле растягиваться по ширине и высоте и дополнительные поля также в зависимости от расположения жестко привязал к границам панели - это помогло.
Мне в принципе КД нравится. Но визуального доступа к данным нет. Отладка слабенькая, ИМХО. Наверное не мешало бы видеть выгружаемые данные перед загрузкой и подробное описание всех действий при загрузке.
1. А подсказка по функциям общих модулей доступна? И как список процедур подгрузить?
2. Для общих модулей, да и для стандартных процедур надо бы еще подсказку по параметрам, чтобы в код не лезть постоянно. Этого не нашел даже в ИР (пробовал мобильные ИР, и там есть справка с выделением текущего параметра жирным шрифтом).
Понятно, что тема старая. Автору, если забросил - подскажи в какую сторону смотреть - что перспективнее?
Чтобы загрузить список модулей нужно сначала его выгрузить. Сейчас такого функционала у меня нет.
ЗЫ Вообще текущий вариант я развивать не буду. Есть пока не доделанная версия в которой используется немного упрощенный список метаданных из типовых справочников КД (что бы упростить использование и не возиться с полными дублями метаданных и не раздувать базу) и частичными дополнениями в отдельном справочнике некоторых метаданных. Т.к. как показала практика с опытом нужно в основном подсказки по небольшому списку метаданных и именам общих модулей.
Альтернативы пока не встречал, т.ч. и посоветовать нечего.
Это можно сделать из конфигуратора (см. рисунок).
Можно также использовать V8Unpack для сохраненной конфигурации.
А ещё, можно подсмотреть, как это реализовано в подсистеме ИР - там подсказки по методам модулей есть.
Могу сделать справочник типа "Функции и процедуры", куда размещать их описания (место определения, название, параметры) и загрузчик информации туда.
А как сделать, чтобы в контекстной подсказке это учитывалось?
(16) Собственно как это сделать я знаю :) Я еще в первых версиях подобное делал через V8Unpack, а тем более сейчас когда такой функционал есть в ИР. Только заниматся этим пока некогда.
(17) Давайте вмести уже довертим функционал? Я напишу загрузку в процедур, функций и переменных в справочник и скину результат Вам. Сделаете, чтобы функции и процедуры появлялись во всплывающей подсказке?
(18) Напомни в пятницу вечером. Если не буду на выходные занят и найду архив в котором делал, то можно попробовать доделать для текущей версии.
(14) Контекстная справка в ИР работает естественно только для предопределенных методов, т.к. для них есть описание в синтакс-помощнике. Для остальных не предусмотрено.
(20) Но Вам же удается получить список процедур общих модулей. Почему не сделать к ним список параметров этих процедур? Без параметров - это только половина дела.
(21) Удается получить через экспортную функцию из dll платформы. Этот код я заимствовал из Информатора, написанного chessman'ом http://www.1cpp.ru/forum/YaBB.pl?num=1313560540/90 . Там "рядом" можно получить только количество обязательных параметров, но их имена, типы и передачи по Ссылке/Значению, значения по умолчанию недоступны.
(22) ну для начала хотя бы количество) а вот для КД можно бы анализировать тексты модулей. пока что руки не доходят сделать их анализ - но думаю, там дел на один вечер.
(24) Тут я выложить не могу готовый cf (правила запрещают), но если не получилось обновить на последний релиз КД, то могу в личку ссылку кинуть. ИР будет старая 2.03.
- Обновил до ИР 3.04 и КД 2.1.8.1
- добавил загрузку через COM-соединение общих модулей (кроме глобальных) и экспортных процедур/функций общих модулей и объектов. Теперь подсказка в коде работает и по ним. Отключить загрузку процедур/функций можно в настройках COM-соединения (по умолчанию включена).
- упростил использование загрузки через COM-соединение
Большое спасибо _also за помощь в тестировании
Жаль, нельзя больше 1 плюса поставить) отрываю с руками. Нечеловеческое Спасибо!
UPD:
Для кого актуальны базы-источники и/или приемники на платформе 7.7:
Обработка выгрузки правил КД 2.1.8.1 с поддержкой GCOMP
Замените имеющуюся в конфигурации обработку на приложенную - получите все то же самое, но с поддержкой GCOMP. Все изменения помечены комментом //dem
Сам GCOMP v.2.2.15
Ввиду того, что удалось сделать перегрузку процедур/функций для общих модулей и объектов через COM-соединение и подсказка по ним работает, то текущей реализацией стало действительно удобно пользоваться (во всяком случае мне :)). Даже с учетом того, что подгружается копия метаданных. Сейчас есть следующие варианты развития:
1) Сделать единую обработку загрузки через СОМ-содинение, чтобы не нужно было запускать две обработки. При этом будет два варианта загрузки:
а) нажатием одной кнопки (или программно, по регл. заданию) - по последним настройкам списка метаданных, если загрузка уже производилась;
б) загрузка с открытием текущего диалога настроек.
2) Попробовать подключить подсказку к запросам в КД
3) Сделать единую обработку перегрузки метаданных через файл. тогда добавится перегрузка глобальных процедур/функций и можно будет использовать для баз к которым нет доступа по сети.
Что интересующиеся предпочтут?
По какой то непонятной мне причине не работает подсказка имен методов общих модулей.
Все делаю по инструкции, при загрузке через COM-соединение галка "Экспортные процедуры\функции" установлена. Сами имена общих модулей подсказываются нормально, а вот их методы - нет. И то же самое с элементами перечислений. Я пишу, допустим
, появляется список методов перечисления (Индекс(), Количество(), Получить() и т.д.), а значений перечисения в списке нет.
То же самое у меня было еще на КД 2.1.5.1 с добавленным функционалом подсказки, тогда я думал, что как то неправильно произвел объединение. Вобщем, не понятно. Кто нибудь сталкивался? Или у всех все работает?
Могу выложить свой cf, объясните, что я делаю не так.
Большое спасибо.
UPD Такое наблюдается, если ИБ-источник на платформе 8.1. У меня под рукой конвертация 8.1 - 8.2, на стороне источника методы общих модулей не подсказываются, на стороне приемника методы общих модулей подсказываются нормально, но значения перечислений не подсказываются нигде.
Интегрированный набор инструментов разработчика:
- консоль кода
- консоль запросов
- консоль построителя отчетов
- консоль компоновки данных
- консоль заданий
- конструктор запроса
- справочник алгоритмов
- исследователь объектов
- интерфейсная панель
- настройка журнала регистрации
- анализ журнала регистрации
- настройка техножурнала
- анализ техножурнала
- подбор и обработка объектов
- редактор объекта БД
- редактор констант
- редактор параметров сеанса
- редактор изменений по плану обмена
- редактор пользователей
- редактор предопределенных
- редактор хранилищ настроек
- динамический список
- поиск дублей и замена ссылок
- контекстная подсказка
- синтакс-помощник
- поиск битых ссылок
- поиск ссылок на объект
- структура хранения БД
- удаление объектов с контролем ссылок
- и прочее
Начиная с какой-то версии консоль запросов генерит для консоли кода нерабочий код (по кнопке на вкладке "обработка строки результата").
ну и хотелось бы, чтобы параметры, которые заполнены в консоли, также были заполнены в консоли кода (сейчас там комментарии с представлениями)
Прошу заранее прощение, но у меня снова пожелание:
Консоль компоновки данных (ИР): если сформировать отчёт в таблицу значений, то хочется, что бы эту таблицу можно было передать в "Консоль кода (ИР)"
Я скриншот приложил.
Например, эта таблица получается путём соединения данных базы 1С и внешнего источника, поэтому в консоли запросов такое не сделаешь. Но вот обработать всю таблицу программным кодом хочется.
P.S. Передать через выгрузку в файл VT_ конечно я смог. Просто хочется ещё чуточку удобства.
4.15 для расширения добавлена форма "Адаптация расширения" позволяющая подключить/отключить параметризованные команды расширения ко всем типам конфигурации.
Запускаю консоль запросов в БП КОРП 3.0.50.11 в режиме обычного приложения. ИР подключены как расширение. После обработки результата запроса начинают сыпаться ошибки:
в большом количестве, при этом видоизменяется форма консоли. Затем эти ошибки повторяются при каждом обновлении формы до перезапуска экземпляра приложения. Если в консоль запросов изначально просто зайти и сразу закрыть, затем открыть снова, то она уже откроется видоизмененной (как после не отработавшего как надо кода), и после этого запрос в ней уже не выполняется/не отображается его результат. Лечится опять же только перезапуском.
В запросе присутствует параметр Организация. Если выбрать его один раз - все ок. Если затем попробовать перевыбрать, возникает ошибка:
(2187) Такие проблемы являются следствием ошибок платформы, которые были исправлены только в 8.3.10.2375. Поэтому эта версия платформы указана в описании как минимальная.
(2189) Строго говоря не совсем все, т.к. в такси модально открытые обычные формы из расширения получают увеличенные шрифты. Это уже исправлено в платформе 8.3.11, но пока ее тестовой версии не опубликовано.
ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.6.2530
Конфигурация: Управление торговлей, редакция 10.3 (10.3.30.1)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Нет
Режим совместимости: Версия8_2_16
Инструменты разработчика: Портативные 4.16p
Консоль запросов. Пишу запрос
Ставлю тип результата - таблица. Нажимаю выполнить.
Далее нажимаю "Поместить данные во временную таблицу", задаю имя "ВТ".
Создаю еще один запрос:
Добрый день! Подскажите, использую ADO для подключения к файлу Excel в консоли запросов. Если стоит "*" (выбор всех полей), то запрос отрабатывает и получаю все данные листа, но если пытаюсь выбрать только одно поле (например, _Лист1.[Адрес дома] AS _АдресДома_ ), то появляется ошибка
Ошибка ADO: Произошла исключительная ситуация (Microsoft Access Database Engine): Ошибка синтаксиса в выражении запроса '_Лист1.[Адрес дома]' . Т.е. явно нельзя указать какие поля нужны всегда появляется ошибка. С чем это может быть связано? Заранее спасибо!
(2195) Платформы пробовал обе (файл XLS ч/з ACE.OLEDB-12.0 и файл XLS ч/з Jet.OLEDB-4.0). Файл сохранял и в xls и в xlsx.
Ошибка повторяется и там и там.
Еще если "Настройка использования внешней компоненты" стоит "Не использовать", то возникает ошибка "Метод объекта не обнаружен (BOF)", может это как-то связано. Использую "Выгружать RecordSet в таблицу значений". Остальные настройки по умолчанию, выбираю только путь.
(2197) Разобрался. При выполнении запроса происходит ошибка из-за псевдонима таблицы, когда в названии листа книги есть пробел Например лист называется "Первый лист". Если составлять запрос КонструкторомИР и явно выбрать поля, то запрос будет следующим:
SELECT
_ПервыйЛист__Т.[1] AS _1_,
_ПервыйЛист__Т.[2] AS _2_,
_ПервыйЛист__Т.[3] AS _3_
FROM
['Первый лист$'] AS _ПервыйЛист__Т
В сгенерированном тексте таблице дан псевдоним "_ПервыйЛист__Т", ошибка возникает когда первый знак в псевдониме "_".
Т.е. вот так все работает:
SELECT
ПервыйЛист__Т.[1] AS _1_,
ПервыйЛист__Т.[2] AS _2_,
ПервыйЛист__Т.[3] AS _3_
FROM
['Первый лист$'] AS ПервыйЛист__Т
(2199) Да я с этим как раз и разобрался), ругалось не на имя колонки с пробелом, а на наличие первого символа "_" в псевдониме таблицы.
Есть маленькие ошибки:
ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.8.2167
Конфигурация: Бухгалтерия предприятия, редакция 2.0 (2.0.66.24-uz.8)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Да
Режим совместимости: Версия8_2_16
Инструменты разработчика: Портативные 4.18p
1. Консоль запросов (ИР): в параметрах запроса есть параметр с типом "ТаблицаЗначений". При его редактировании я захотел колонку "НомерСтроки" (добавлял сам, так как она используется в запросе) решил переставить на первое место, но после нажатия на "ОК" и повторного открытия этой таблицы на редактирования - колонка остаётся по прежнему на последнем месте.
2. У нас в справочнике "ДоговорыКонтрагентов" есть ссылка на внешний источник данных "ДоговорИзРеестра"
Скриншот: ВнешнийИсточникВРедактореОбъектовБДОткрываемИзДругого1СЭлеме нта.jpg
Открываю ещё одно окно редактора объекта БД (ИР) внешнего источника из редактора объекта БД (ИР) ссылки на договор контрагента. И там:
1) Нет данных
2) Активны кнопки "Пометить на удаление", "Удалить из базы данных" и "Записать все". По настройкам внешнего источника данных он доступен только на чтение
3) Если в этой форме попытаться выбрать другую ссылку этого внешнего источника, то почему-то открывается форма выбора типа.
Скриншоты:
1 и 2: ВнешнийИсточникВРедактореОбъектовБД.jpg
3: ВнешнийИсточникВРедактореОбъектовБДВыборТипаЗачемто.jpg
3. Динамический список (ИР)
Он забывает настройки отображения колонок (точно забывает, когда он открывается в режиме выбора).
Т.е. после настройки отображения колонок, если ещё раз попытаться открыть выбор значения, то кононки отображаются снова "по умолчанию"
(2205) Такой функции не реализовывалось. Пожелание записал.
(2206) Так вроде работает как и обещано в подсказке к кнопке.
Я тоже как подумал и поэтому вместо "ошибка" написал "проблема".
Ну раз так и долно работать - то ладно
4. Консоль запросов ИР
Если в нормальный запрос вставить текст запроса из конфигуратора (с символами |), то после нажатия на кнопку "Удалить переносы строк и заменить двойные кавычки обычными", то и обычные двойные кавычки превращаются в одинарные.
у меня не открываются ИР портативные версия 4.19.
Вываливает 1С после вот этой ошибки:
Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта
по причине:
: Ошибка при вызове метода контекста (Создать)
по причине:
Ошибка подключения внешних метаданных
по причине:
server_addr=tcp://Server_1c:1560 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1584 file=src\DataExchangeTcpClientImpl.cpp
Версия 1С: 8.3.10.2505.
В другой базе на том же сервере - все ок.
В этой базе до обновления релиза 1С тоже все было ок.
(2210) В платформе 8.3.10.2505 внесли серьезные ошибки при работе с внешними обработками. Рекомендую откатиться на 8.3.10.2466
Прошу прощения, но у меня ещё пожелание:
Тех информация:
ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.8.2167
Конфигурация: Бухгалтерия предприятия, редакция 2.0 (2.0.66.32-uz.3)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Да
Режим совместимости: Версия8_2_16
Инструменты разработчика: Портативные 4.19p
Редактор объекта БД:
Если сделать поиск ссылок на объект на закладке "Ссылки на объект (-)" и там будет, к примеру, регистр сведений, то при двойном клике на этот пункт открывается "Динамический список (ИР)" но без отбора.
Скриншот приложил.
P.S. Ну и мелочь - на этой же закладке после поиска ссылок не обновляется имя закладки. Т.е. как закладка называлась "Ссылки на объект (-)", так и продолжает называться.
По факту это не пожелание, а ошибка. Вот скриншоты с выделением и комментариями на них:
(2215) Это не ошибка, а задуманное поведение. По двойному щелчку открывается динамический список регистра и текущей строкой устанавливается нужная строка регистра. Какую пользу по-твоему могла бы принести установка отбора, который бы оставил в списке единственную строку?
У меня это ни когда не срабатывало, поэтому я и предположил, что тут ошибка или это было не реализовано.
P.S. Я даже только что ещё раз специально проверил. не позиционируется.
Простите, что опять. ошибку нашёл:
ОС: Windows x86 version 6.1 Service Pack 1 (Build 7601)
Платформа: 8.3.8.2167
Конфигурация: Бухгалтерия предприятия, редакция 2.0 (2.0.66.24-uz.8)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
От имени администратора Windows: Да
Режим совместимости: Версия8_2_16
Инструменты разработчика: Портативные 4.20p
Редактор объекта БД (ИР). Работа со внешним источником данных. После поиска на закладке "Ссылки на объект", где нашлась ссылка на эту ссылку в другой таблице внешнего источника данных, то:
1) Нельзя открыть "Ссылающийся объект" по двойному клику мышкой. Возникает ошибка:
2) Нельзя открыть используя кнопку панели "Открыть ссылающийся объект в редакторе объекта БД и найти в нем ссылку". Возникает ошибка:
Приложил ещё два скриншота (для пояснений)
(2220) Такую ошибку мне будет сложно воспроизвести. Поэтому предлагаю тебе самостоятельно ее изучить.
(2223)
Кажется, разобрался.
Почему-то всегда в обработке выбора "ПараметрыЗначениеОбработкаВыбора" поле "Элемент.Значение" всегда строковое и даже после выполнения этого метода оно так и остаётся строковым, хотя "ВыбранноеЗначение" является таблицей значений.
И вот что получается.
Когда мы делаем так:
1) Создаём пустой запрос
2) Переходим в закладку "Параметры" и нажимаем "Добавить". В результате у нас создаётся параметр с именем "_".
3) Тыкаем мышкой в значение и выбираем ему тип "ТаблицаЗначений".
4) В появившемся окне редактора "Таблица значений" просто нажимаем "ОК"
5) Нажимаем мышкой в пустое пространство, что бы отключилось редактирование ячейки "Значение" (исчезла кнопка ". "), где содержится наш параметр с таблицей значения.
6) Кликаем два раза на наш параметр и у нас снова появляется форма редактирования нашей таблицы значения. В ней мы просто нажимаем "ОК".
7) И имеем ошибку - параметр сменил тип с "ТаблицаЗначений" на "Строка".
Работают методы "ПараметрыВыбор", потом "ЯчейкаТабличногоПоляРасширенногоЗначения_ВыборЛкс" (остальные уже не важны). И в результате параметр из-за поведения (наверное платформа виновата) "ПараметрыЗначениеОбработкаВыбора" становится строковым. См. скриншоты.
Эту ошибку можно и обойти. Тогда вместо пункта (6) нужно навести мышку на поле "Значение" и нажать правую клавишу (вызвать контекстное меню) и там выбрать "Изменить". Потом нажать на ". " и делать что нужно в открывшейся форме редактирования таблицы значений. Тогда после закрытия этой формы тип параметра не слетит.
В стэке вызовов перед вызовом "ЯчейкаТабличногоПоляРасширенногоЗначения_ВыборЛкс" вызывается метод "ПолеВводаКолонкиРасширенногоЗначения_НачалоВыбораЛкс" и вот тут есть код, который восстанавливает значение:
Из-за того, что в первом варианте (когда просто два раза кликаешь мышкой) ни где по коду нет восстановления значения в "ТекущиеДанные", то и такое получается.
P.S. Дополнительно: и из-за такого поведения платформы у тебя и в методе "ИнтерактивноЗаписатьВЭлементУправленияЛкс" условие "Результат = ЭлементУправления.Значение = Значение;" всегда выдаёт "Ложь".
В случае отсутствия компоненты, ее можно найти на диске ИТС и переписать в каталог /bin/ установленной платформы «1С:Предприятие 8.
Если после этого ошибка все равно остается (такое возможно, например, при работе под управлением ОС «Windows Vista» или «Windows 7) – необходимо зарегистрировать компоненту «вручную».
Для этого в командной строке ОС можно набрать команду regsvr32 «[Путь к DLL]\NameDecl.dll» и выполнить ее под правами администратора.
Здесь [Путь к DLL], скорее всего, для платформы 1cv81 – «С:\Program Files\1Cv81\bin\», а для платформы 1cv82 – «С:\Program Files\1cv82\8.2.9.356\bin\». При наборе пути к файлу необходимо заключить его в двойные кавычки.
Если при регистрации таким способом возникла ошибка – «Модуль «[Путь к DLL]\NameDecl.dll» загружен, но не удалось выполнить вызов DllRegisterServer, код ошибки 0х80070005, то можно попробовать выйти из положения следующим образом:
1. На компьютере находим файл NameDecl.dll (скорее всего, для платформы 1cv81 он находится в «С:\Program Files\1Cv81\bin\», а для платформы 1cv82 в «С:\Program Files\1cv82\8.2.9.356\bin\»). Для найденного файла создаем ярлык и выносим его на рабочий стол.
2. На рабочем столе правой кнопкой мыши вызываем свойства этого ярлыка.
3. В свойствах на закладке «Ярлык» в окне «Объект» перед путем к файлу вставляем команду regsvr32 (помним, что путь должен быть в двойных кавычках).
4. На этой же закладке свойств ярлыка жмем на кнопку «Дополнительно». В открывшемся диалоге устанавливаем флажок «Запуск от имени администратора» и сохраняем внесенные изменения.
5. Запускаем ярлык для регистрации компоненты NameDecl.dll (обычно запуск регистрации через ярлык достаточно произвести один раз).
6. После регистрации компоненты ярлык можно удалить.
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; v7plus.dll - отсутствует CLSID либо отсутствует интерфейс llnitDone 0
При выгрузке отчетности в 1С 7.7 программа ругается на v7plus.dll и указывает, что отсутствует интерфейс llritDone. Что делать? 1) Поудалять нафиг все v7plus.dll из каталогов ИБ и папок пользователей 2) Оставить только в bin каталоге и зарегить чер Посмотреть все результаты поиска похожих
В большинстве случаев никаких проблем с этой библиотекой не наблюдается - обновлятор сам автоматически регистрирует и использует библиотеку нужной версии 1с, но изредка возникают случаи (в основном на серверных ОС), когда требуются "пляски с бубном".
Как понять, что у нас проблемы с COM
Для этого нажимаем кнопку "Проверить настройки" удерживая клавишу "Shift" на клавиатуре:
При нормальной работе COM отчёт будет примерно таким:
При проблемах же с COM возникнет вот такая или похожая ошибка:
Ещё может писать, что -то типа " Не удалось создать программное подключение к 1С ".
Да, судя по тесту, у нас проблемы с COM
Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:
Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.
Кроме того, обновлятор перед тем как подключаться к базе через внешнее соединение сам дополнительно регистрирует в системе библиотеку из нужной версии платформы при помощи команды:
Итак, что мы можем предпринять?
Шаг №0
Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.
Шаг №1
Прежде всего убеждаемся, что у нас действительно проф-версия платформы, потому что для базовой версии платформы внешнее подключение к базам работать и не должно (это ограничение платформы).
Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.
Если лицензия на платформу у нас всё же не проф, а базовая, то все остальные шаги не имеют смысла. Внешнее подключение к базам у нас работать не будет (из-за ограничений платформы). Ничего не остаётся, кроме как настроить базы вот так.
Шаг №2
Далее пробуем запустить обновлятор с правами администратора.
Если у вас включён UAC, то добиться этого можно, нажав на ярлыке обновлятора правой кнопкой, и выбрав вариант "Запуск от имени администратора".
Далее выбираем базу и нажимаем кнопку "Проверить настройки". Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) - поздравляю, проблема решена. Если нет - идём дальше.
Шаг №3
В 32-битной версии ОС пробуем выполнить команду
В 64-битной версии ОС команда будет такой:
- для регистрации 64-битной платформы 1С:
- для регистрации 32-битной платформы 1С:
Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через "Запуск от имени администратора", либо через такой же запуск написанного батника.
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если этот шаг не помог - идём дальше.
Шаг №4
Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:
- Заходим в Панель управления - Администрирование - Службы компонентов.
- Переходим к ветке Компьютеры - Мой компьютер - Приложения COM+.
- В контекстном меню выбираем Создать - Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем "Далее".
- Выбираем "Создать новое приложение".
- Вводим имя "V83COMConnector". Устанавливаем переключатель "Серверное приложение". Нажимаем "Далее".
- На следующем шаге устанавливаем "Текущий пользователь". Нажимаем "Далее".
- Нажимаем "Готово".
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать - Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем "Далее".
- Выбираем "Установка новых компонентов".
- Выбираем файл \bin\comcntr.dll.
- Нажимаем "Далее" - "Готово".
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем "Свойства". В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку "Применить политику программных ограничений". Устанавливаем Уровень ограничений - "Неограниченный".
- Нажимаем "ОК".
После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.
Шаг №5
Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).
Шаг №6
Если проблема начала возникать сразу после обновления платформы 1с, то вероятнее всего новой версии платформы 1с не хватает какого-нибудь сервиспака или обновления для вашей операционной системы. Поэтому если есть возможность - ставим их все, если нет - действуем выборочно согласно этой ссылке.
Шаг №7
Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню "Запустить от имени администратора" или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Читайте также: