Трансформатор 1С - SQL

19.09.17

Разработка - Инструментарий разработчика

Публикация размещена исключительно в образовательных целях и подходит только для платформы версии 8.3.7.2027.
Использует недокументированные средства доступа к базе данных 1С. Прямое обращение к СУБД нарушает лицензионное соглашение,
может изменить поведение платформы, привести к разрушению базы данных, скомпрометировать данные,
а также привести к отказу в официальной поддержке Фирмы 1С.
Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Трансформатор 1с SQL:
.epf 32,01Kb ver:1.0.1
522
522 Скачать (1 SM) Купить за 1 850 руб.

Возможности обработки

1) Трассировка реально выполняемого запроса SQL по заданному тексту запроса 1С

2) Замена наименований таблиц SQL запроса терминами 1С (например, вместо _Reference185 будет Справочник.ПодразделенияОрганизаций)

3) Представление ссылок в 1С «формате» (например, вместо 0x9E80A570B3B742FB44770FC3B9C6ACCD будет "Подразделения"   Перечисление.ВидыОбъектовДоступа)

4) Форматирование текста результирующего запроса с помощью интернет-сервиса «sqlformat.org»

Внешний вид обработки в обычных формах:

ОФ

в управляемых формах:

УФ

в браузере:

Для чего можно использовать

Пример 1

В первую очередь обработка будет удобна для анализа RLS, чтобы получить реально выполняемый запрос базы данных  со всеми ограничениями в удобочитаемом виде.

Пример: у нас есть запрос 1С из конфигурации УПП 1.3, который медленно выполняется под некоторыми пользователями, и мы хотим понять, какой запрос по факту выполняется и по возможности ускорить его.

Исходный запрос:

ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 100
                СдельныйНаряд.Ссылка,
                СдельныйНаряд.Проведен,
                СдельныйНаряд.ПодразделениеОрганизации
ИЗ
                Документ.СдельныйНаряд КАК СдельныйНаряд
 
Результат трансформации (все опции включены):

Видно, что к исходному запросу добавляется громоздкое условие проверяющее доступ пользователя к данной таблице. Предположим, что в организации не используется управленческий учет, тогда проверку доступа RLS можно упростить, отключив контроль по подразделению и оставив контроль по подразделению организации (Операции->Константы->Настройка параметров доступа на уровне записей). Обратите внимание, что при включенном флажке «Результат в терминах 1С», текст запроса максимально приближен к тексту запроса, корректного для выполнения в консоли запроса 1С. Что мне не удалось сделать, так это убрать из текста запроса проверки типа для составных полей, так как для этого пришлось бы использовать полноценный парсер языка запросов SQL. Чтобы запрос был полностью рабочим для консоли запросов, придется руками убрать проверку на составной тип, если такой используется в запросе. В приведенном примере нужно заменить строки

T7.ОбъектДоступа_TYPE = 0x08

AND T7.ОбъектДоступа_RTRef = 0x000000B5

AND T7.ОбъектДоступа = T1.Подразделение на строку

на строку

AND T7.ОбъектДоступа = T1.Подразделение на строку

А также строки

T9.ОбъектДоступа_TYPE = 0x08

AND T9.ОбъектДоступа_RTRef = 0x000000B6

AND T9.ОбъектДоступа = T1.ПодразделениеОрганизации

На строку

T9.ОбъектДоступа = T1.ПодразделениеОрганизации

Тогда запрос будет полностью корректным для языка запросов 1с и его можно будет выполнить в консоли.

 

Дополнительный способ проверки результирующего запроса в SQL

Если при выполнении трансформации снять флажок «Результат в терминах 1С», то результирующий текст запроса будет корректным для языка T-SQL и его можно выполнить в SQL Server Management Studio или в консоли запросов, которая поддерживает выполнение прямых запросов SQL (например моя простенькая консоль SQL запросов). Для нашего примера со списком сдельных нарядов результат будет следующим:

 
Результат трансформации (снят флажок «Результат в терминах 1С»):

Теперь запрос представлен в исходном SQL виде с дополнительными комментариями к параметрам запроса с представлениями ссылок в 1с и его можно выполнить как обычный запрос на языке T-SQL.

 

Пример 2

Еще один способ использования обработки – в связке с технологическим журналом, без использования трассировки. Пример: в доработанной конфигурации Документооборот 1.4 под некоторыми пользователями очень медленно открывается список внутренних документов. Настраиваем тех. журнал на отлов событий DBMSSQL и смотрим запросы, которые генерировала платформа при открытии формы списка (для настройки и анализа тех. журнала удобно пользоваться инструментами разработчика, но для просмотра можно использовать и типовую обработку с ИТС ПросмотрТехнологическогоЖурнала.epf). Находим следующий запрос:

 
Исходный запрос из технологического журнала:

Не очень удобно разбираться с таким запросом – нет форматирования, вместо параметров стоят вопросы и т.д., поэтому прогоняем его через трансформатор(все опции включены) и получаем такой вид:

 
Результат трансформации (все опции включены):

Видно, что однотипные ограничения RLS применяются 3 раза при выполнении запроса динамического списка (это можно понять по характерным конструкциям WHERE EXISTS() или по использованию области доступа «ДокументыИФайлы») и это может быть причиной медленной работы списка документов. С проверкой на доступ к таблице T1 «Справочник.ВнутренниеДокументы» сделать ничего не получится, так как это основная таблица списка, а вот оставшиеся 2 проверки под вопросом. «РегистрСведений.ОбщиеРеквизитыДокументов» T4 используется для получения реквизитов «КорреспондентыДляСписков», «ПредставлениеСостояния», «СодержитОригинал», а таблица «Справочник.ВидыВнутреннихДокументов» T12 используется для получения реквизита «ВидДокумента.ЯвляетсяКомплектомДокументов». Таким образом, можно либо не использовать поля на форме, которые приводят к вызову дополнительных проверок на права доступа, либо убрать проверку RLS для вспомогательного регистра с данными, так как проверка уже выполняется в основной таблице и эффекта от дополнительных проверок в данном запросе нет.

 

Пример 3

Еще один вариант использования обработки – исследование фактического запроса SQL при обращении к виртуальным таблицам 1с. Меня давно интересовал вопрос, как интерпретируется запрос к виртуальным таблицам. Если с таблицей остатков и оборотов регистров накопления все достаточно очевидно, то, например, с регистрами бухгалтерии было бы интересно посмотреть на фактический запрос при указании разных параметров. Рассмотрим достаточно простой запрос обращения к движениям с субконто за указанный период

ВЫБРАТЬ
	ХозрасчетныйДвиженияССубконто.СчетДт,
	ХозрасчетныйДвиженияССубконто.СубконтоДт1,
	ХозрасчетныйДвиженияССубконто.Сумма
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(ДАТАВРЕМЯ(2017, 5, 1), ДАТАВРЕМЯ(2017, 5, 31), Счет = &Счет, , ) КАК ХозрасчетныйДвиженияССубконто

Прогоняем запрос через трансформатор(все опции включены) и получаем такой вид:

 
Результат трансформации (все опции включены):

Получен интересный листинг, который показывает, что фактически происходит выполнение нескольких запросов с формированием временных таблиц. Рассмотрим эти запросы:

1) Выполняется запрос к системной таблице актуальности итогов для всех регистров с отбором по регистру. Это нужно для определения необходимости использования служебных таблиц с итогами и периода, на который эти итоги существуют (может есть и другие функции этого запроса, но мои знания ограничиваются только периодами в итогах — дополняйте в комментариях:))

2) Здесь формируется таблица #tt2, содержащая ссылки на регистраторов и номера строк всех записей из основной таблицы регистра бухгалтерии, которые удовлетворяют условиям, указанным в виртуальной таблице (в нашем случае происходит отбор по периоду и по счету). Запрос состоит из двух объединенных запросов, для выбора случаев когда указанный в параметрах счет проходит по дебету или по кредиту.

3) Формируется таблица #tt3, простым копированием первых 1000 записей из таблицы #tt2, упорядоченной по регистратору и номеру строки (порционная обработка данных таблицы)

4) Формируется таблица #tt4 с помощью соединения сформированной таблицы #tt3 с основной таблицей регистра бухгалтерии по регистратору и номеру строки, выбираются дополнительно поля СчетДт, СчетКт, Сумма.

5) Формируется таблица #tt5 с помощью соединения сформированной таблицы #tt4 с таблицей субконто регистра бухгалтерии из которой выбирается вид субконто, значение субконто, вид движения в дополнение к регистратору и номеру строки. Соединение с табличной частью плана счетов используется для определения номера субконто по счету дебета или кредита и по виду субконто.

6) Формируется таблица #tt1 левым соединением таблиц #tt4 и #tt5. Так как в запросе был выбран СубконтоДт1 из таблицы #tt5, то параметры соединения задаются соответственно: _AccEdKindLineNo — номер субконто 1, _Correspond — вид движения Дебет. СчетДт и Сумма берутся из таблицы #tt4.

7) Выбирается максимальный регистратор и номер строки, для отделения следующей порции данных

8) В таблицу #tt3 Выбирается следующая порция в 1000 записей из таблицы #tt2

9) Очистка таблицы #tt3. Здесь при необходимости происходит повторение выборки (шаги 4-9)

10) Окончательная выборка результатов из таблицы #tt1

 

Разобрав запрос, можно сделать вывод что производительность выборки из виртуальной таблицы ДвиженияССубконто полностью определяется объемами выбираемых данных и если не использовать отбор внутри виртуальной таблицы, то все записи физических таблиц будут прогоняться через временные таблицы порциями по 1000 записей, что очень медленно (даже продвинутая СУБД не сможет оптимизировать такой запрос).

 

Как настроить трассировку запроса из обработки

За трассировку запроса отвечает 2 поля:

Путь файла трассы — здесь указывается путь к папке, в которую будут сохраняться временные файлы трассировки и имя файла (например D:\Временные файлы\TraceTest). Имена файлов трассировки будут присваиваться автоматически, добавлением номера в конец имени (например TraceTest_54.trc)

Подключение SQL — строка подключения к базе данных (например «DRIVER={SQL Server};SERVER=PC_1C_003;UID=sa;PWD=123;DATABASE=Localbase»). Строку подключения можно проверить на работоспособность, нажав на кнопку «Проверить подключение».

Трассировка запускается только если исходный запрос написан на языке запросов 1с, поэтому если введен SQL запрос, то поля «Путь файла трассы» и «Подключение SQL» можно не заполнять.

 

Выводы

Данную обработку можно использовать в связке с технологическим журналом с помощью инструментов разработчика или типовой обработки, а также можно использовать без ТЖ, используя трассировку запроса, встроенную в обработку или запуская трассировку вручную. Для понимания фактически выполняемого SQL запроса, гораздо удобнее видеть наименования таблиц и полей в терминах 1с, видеть представление ссылок 1с и читать форматированный текст запроса с отступами и пробелами.

Форма обработки анализа ТЖ из инструментов разработчика:

ИР

Форма типовой обработки с ИТС для просмотра логов ТЖ:

Типовая обработка

Ссылки

Инструменты разработчика: //infostart.ru/public/15126/

Типовая обработка просмотра логов ТЖ: https://its.1c.ru/db/metod8dev#content:5896:hdoc

Простая консоль ADO запросов: //infostart.ru/public/343268/

Update 19.09.2017

- При обращении к сервису форматирования убрано использование объекта ЧтениеJSON, для совместимости с 8.2 и версиями ниже 8.3.6

Обработка SQL технологический журнал трассировка

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159270    872    399    

861

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7713    55    22    

66

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23386    68    45    

117

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10397    36    20    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 19980 руб.

06.10.2023    15374    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3120 руб.

14.01.2013    187949    1138    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17295    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7677    8    35    

23
Отзывы
54. strop 11.02.22 19:09 Сейчас в теме
(52)
(52)
Проблема была в пути к файлу трассы. SQL сервер не мог туда писать. Спасибо
Andreyyy; +1 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Gilev.Vyacheslav 1917 28.06.17 09:53 Сейчас в теме
неплохо
корум; seperblunt2; r.zdorkin; +3 Ответить
2. bulpi 217 28.06.17 12:58 Сейчас в теме
Ха! Неплохо ? Да это просто бомба!
Berckk; корум; wowik; mus-yo; seperblunt2; YPermitin; user747571; 🅵🅾️🆇; rpgshnik; primara; purgin; pallid; kolya_tlt; ice-net; WellMaster; sqncng; JohnConnor; maksa2005; JohnyDeath; kuzyara; akR00b; +21 2 Ответить
5. Synoecium 785 28.06.17 16:30 Сейчас в теме
(2) Спасибо за высокую оценку :)

(3) Да, портянки действительно большие, звучит разумно показывать по кнопке.
55. пользователь 24.03.23 17:37
Сообщение было скрыто модератором.
...
14. user774630 29.06.17 12:48 Сейчас в теме
(2) у Вячеслава это, видимо, максимальное значение из диапазона оценок :)
wowik; rpgshnik; JohnyDeath; +3 Ответить
17. JohnyDeath 302 29.06.17 14:15 Сейчас в теме
(14) если только это не оценка ему самому )
15. Yashazz 4790 29.06.17 12:57 Сейчас в теме
(2) Бомба? Я вас умоляю, это баян. Просто акккуратно и хорошо сделано. И публикация грамотно оформлена.
3. swimdog 772 28.06.17 15:21 Сейчас в теме
Рекомендую тексты запросов в статье поместить в спойлеры.
Скрытый текст
tormozit; +1 Ответить
4. pm74 203 28.06.17 15:26 Сейчас в теме
6. tormozit 7229 28.06.17 19:28 Сейчас в теме
А че же про встроенный конвертор текста запроса в анализе техножурнала не упомянул? Там есть
- преобразование констант в ссылки
- перевод в термины метаданных
- форматирование
- список таблиц использованных в запросе
- переход в конструктор запроса
- переход в дерево запроса
r.zdorkin; CSiER; artbear; +3 Ответить
9. kuzyara 2090 29.06.17 05:20 Сейчас в теме
(6)
- форматирование

А где оно расположено?

Помню сколько я мучился с сервисами онлайн-форматирования кода когда изучал исходные запросы виртуальных таблиц...
12. tormozit 7229 29.06.17 07:24 Сейчас в теме
(9)
Флажок "Пересобрать текст"
7. igomark 28.06.17 19:40 Сейчас в теме
О, по-моему, это крутейшая штука!
rpgshnik; +1 Ответить
8. Tanis 28.06.17 20:17 Сейчас в теме
Вечер добрый!

Прекрасная вещь! Молодцы!

Спасибо!
10. kuzyara 2090 29.06.17 05:48 Сейчас в теме
По-моему, в статье зря не упомянуто про типовую консоль запросов.
https://its.1c.ru/db/metod8dev/content/4500/hdoc

Именно с неё я и начинал изучение внутренностей бд.
Прикрепленные файлы:
user2068269; zoikins; wowik; ZLENKO; stilet; +5 Ответить
22. Manticor 66 19.09.17 11:44 Сейчас в теме
(10) Николай, поделитесь плиз такой консолью, в типовой с сайта ИТС нет опции "показывать план выполнения запроса"
24. kuzyara 2090 19.09.17 12:21 Сейчас в теме
(22), в обработке для 8.3 - есть.
11. ArchLord42 83 29.06.17 07:14 Сейчас в теме
Очень нужная вещь, автор молодец!
13. 1segen1 33 29.06.17 09:50 Сейчас в теме
Отличная вещь! Автор - молодец.
16. Yashazz 4790 29.06.17 13:00 Сейчас в теме
Красиво сделано, аккуратно оформлено, толково рассказано. Собирался "вырастить" нечто подобное из своей http://infostart.ru/public/462714/, но руки не дошли. Спасибо, на первый взгляд выглядит как серьёзная качественная работа.
18. Serg O. 297 29.06.17 15:03 Сейчас в теме
только под 8.3 работает?

на платформе 8.2 - выдаёт ошибку!

{ВнешняяОбработка.ТрансформаторSQL1С.МодульОбъекта(26,22)}: Тип не определен (ЧтениеJSON)
ЧтениеJSON = Новый <<?>>ЧтениеJSON;
19. qwed557 30 29.06.17 19:50 Сейчас в теме
(18)
ЧтениеJSON

а что платформа 8.2 поддерживает JSON? Сами же видите где ошибка.
20. Synoecium 785 30.06.17 06:27 Сейчас в теме
(18) выяснил, что формат JSON в 1С до версии 8.3.6 не реализован https://helpf.pro/faq82/view/1664.html
В принципе большой сложности нет - написать код разбора JSON ответа с форматированным запросом, тогда будет работать и на 8.2. Сделаю в след. версии. Пока можно не пользоваться галкой "Форматирование интернет-сервисом", остальное то будет работать.
21. Manticor 66 19.09.17 11:26 Сейчас в теме
(20) аффтар, удалось переделать для версии 8.2))) ??
23. Synoecium 785 19.09.17 11:53 Сейчас в теме
(21) доработка небольшая, в ближайшее время сделаю, раз есть потребность у сообщества. Просто я пока занялся доведением до ума своей консоли запросов, скоро выложу на ИС :)
25. Sergey.Noskov 1406 29.09.17 10:53 Сейчас в теме
Большая работа, спасибо.
PS надеюсь когда нибудь конструктор запроса научится выдавать и текст запроса в терминах СУБД
27. red80 29.09.17 16:29 Сейчас в теме
28. Sergey.Noskov 1406 29.09.17 16:43 Сейчас в теме
(27) что бы видеть реальный запрос
26. LexSeIch 211 29.09.17 14:50 Сейчас в теме
Автору спасибо за разработку - взял на заметку.
29. SergF 30.09.17 10:16 Сейчас в теме
А самое главное, - автор не собирается останавливаться на достигнутом :

//TODO
//1. Прикрутить план запросов SQL
//2. Выполнение запроса под определенным пользователем (под вопросом)
//3. Проверка на тонкий клиент 8.3.5 конструктор запроса + модальный вызов
//4. Сохранение/загрузка настроек в УФ

Очень ждем продолжения !!!
30. Synoecium 785 02.10.17 14:33 Сейчас в теме
(29) вообще планы по развитию есть, но после обдумывания акценты сместились. В первую очередь хочу проработать 2 пункта:
1) таблица с параметрами запроса, как в консоли запросов. Это позволит выполнять некоторые запросы, которые нельзя выполнить сейчас из-за ограничений параметров, задаваемых текстом (например вирт. таблица регистра расчета для определения базы по регистру)
2) выполнение под другим пользователем. Тоже полезная функция, если надо проверить фактический запрос с учетом RLS для пользователя
Насчет плана запроса, есть задумки, но если делать, то надо делать полноценный вариант с графическим представлением и деревом плана запроса, а это довольно сложно. Разве что скопировать с согласия автора функционал из существующих на ИС обработок, работающих с планом запроса. В общем, с планом планом пока не определился точно, пишите пожелания :)
31. asved.ru 36 27.06.18 08:56 Сейчас в теме
+++
Как раз собирался написать конвертер для нового ЦУП (который на УФ). Благодаря Вам эта муторная работа отменяется.
32. wding 14.05.19 10:00 Сейчас в теме
Добрый день!
Обработка классная!
Но, при обновлении платформы на 8.3.13.1644 перестала работать
Прикрепленные файлы:
33. Synoecium 785 14.05.19 11:02 Сейчас в теме
(32) Это скорее всего проблемы с com-коннектором, а не с платформой, надо убедиться что он у вас работает сначала. Com-соединение используется в обработке чтобы определить ID запроса, по которому затем отбирается запрос SQL из трассировки.
Давайте в личку, попытаюсь помочь.
34. wding 14.05.19 11:24 Сейчас в теме
(33) В личку что-то не пишется, ругается на какуюто отложенную группу :(
Вот в чем "затык", но как исправить не понимаю:

{ВнешняяОбработка.ТрансформаторSQL1С.МодульОбъекта(350)}: Ошибка при вызове конструктора (COMОбъект)
Коннектор = Новый COMОбъект("v"+версияКоннектора+".COMConnector");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса
35. Synoecium 785 14.05.19 11:37 Сейчас в теме
(34) посмотрите эти статьи, думаю информация из них поможет:
http://1clenta.ru/pattern/186 //сначала пробуйте так
https://infostart.ru/public/400951/ //если не получится, то так
https://infostart.ru/public/276794/ //эта статья скорее всего уже перебор для вашего случая, но на всякий случай :)
36. wding 14.05.19 15:52 Сейчас в теме
(35) Поучительные статьи.
Все сделал именно так -- под УФ не работает. Работает под неуправляемыми формами ...
Странно как-то. Уже по сносил все и переустановил, но все равно под УФ УТ 11.4 не работает.
37. tormozit 7229 14.05.19 16:03 Сейчас в теме
(36) Попробуй инструмент "Управление COM классами 1С" из набора "Инструменты разработчика". Он тебе покажет все варианты регистрации коннектора и позволит зарегистировать нужные.
38. wding 14.05.19 16:22 Сейчас в теме
(37) Тут глюк я думаю у 1С серьезный: та же конфа УТ 11.4, в режиме обычное приложение все отрабатывает на УРА! ... А, в режиме управляемого ругается.
39. tormozit 7229 14.05.19 16:40 Сейчас в теме
(38) Глюка в 1С тут уверяю нет. Но конечно, чтобы в этом убедиться, тебе потребуется потратить время.
46. Synoecium 785 24.10.19 09:43 Сейчас в теме
проблему уже обсуждали в комментарии (34), скорее всего у вас просто не установлена com-компонента для связи с сервером приложений 1С
40. r.zdorkin 06.06.19 07:29 Сейчас в теме
Спасибо за обработку, не понял только почему не добавлена опция доверительного подключения к SQL. хотя дописать скачавшему в этом плане не проблема
41. Synoecium 785 06.06.19 07:33 Сейчас в теме
(40) а что за доверительное подключение, какая от него польза? Можете ссылкой поделиться - почитаю на досуге
42. r.zdorkin 06.06.19 07:51 Сейчас в теме
(41)
видимо слишком вычурно выразился. я имел ввиду виндовую аутентификацию по сути, просто если в рамках строки подключения через ADO прямой перевод именно такой " доверительное подключение)

код будет примерно такой для получения строки подключения в случае ADO

Если ДоверительноеПодключение Тогда 
			стрПодключения = ("Provider=SQLOLEDB; Server="+СокрЛП(СерверSQL)+"; Trusted_Connection=yes; DataBase="+СокрЛП(БазаSQL));
			
		Иначе 		
			
			
			
			
			стрПодключения = "Driver={SQL Server};Server=" + СокрЛП(СерверSQL) + ";Uid=" + СокрЛП(ПользовательSQL) + ";Pwd=" + 
                                                         СокрЛП(ПарольSQL) + ";DataBase=" + СокрЛП(БазаSQL) + ";" + "Pwd=" + СокрЛП(ПарольSQL) +";";
			
			
		КонецЕсли; 
Показать


ну и еще раз спасибо за удобный инструмент и подробные инструкции
43. Synoecium 785 06.06.19 07:57 Сейчас в теме
(42) аа, похоже понял о чем речь. Имеете ввиду возможность авторизации без логина и пароля, как в Management Studio через пункт "Windows Authentication"? Да, хорошая идея, спасибо
44. r.zdorkin 06.06.19 08:06 Сейчас в теме
45. user1005652 24.10.19 06:08 Сейчас в теме
Выводит следующую ошибку
{ВнешняяОбработка.ТрансформаторSQL1С.МодульОбъекта(350)}: Ошибка при вызове конструктора (COMОбъект)
Коннектор = Новый COMОбъект("v"+версияКоннектора+".COMConnector");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса
47. Synoecium 785 24.10.19 12:22 Сейчас в теме
(45) эта проблема уже обсуждалась в комментарии (34), скорее всего у вас не установлена com-компонента подключения к серверу приложений 1с
48. user1416994 01.06.20 15:50 Сейчас в теме
49. Synoecium 785 01.06.20 16:41 Сейчас в теме
(48) да как обычно, это же внешняя обработка 1с за 1 стартмани
50. user1712176 10.12.21 11:24 Сейчас в теме
При выполнении ошибка:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][SQL Server]You do not have permission to run 'SYS.TRACES'.

Подключение к SQL - успешно
путь файла трассы - указан
51. strop 11.02.22 10:47 Сейчас в теме
Подключение к SQL успешно. Но на все, даже самые маленькие, запросы - ошибка

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][SQL Server]Имя объекта или столбца отсутствует или пусто. Убедитесь, что каждый из столбцов в инструкции SELECT INTO имеет имя. Для других инструкций проверьте наличие пустых имен-псевдонимов. Не допускаются псевдонимы, определенные как [] или "". Измените псевдоним на допустимое имя.

1С:ERP 2.4.8.92. платформа 8.3.18.1289.
52. Synoecium 785 11.02.22 12:30 Сейчас в теме
(51)
Убедитесь, что каждый из столбцов в инструкции SELECT INTO имеет имя. Для других инструкций проверьте наличие пустых имен-псевдонимов. Не допускаются псевдонимы, определенные как [] или "". Измените псевдоним на допустимое имя.

Что-то пока никаких идей почему такая ошибка, но по тексту похоже что проблема в момент выполнения запрос MSSQL, который собирает через трассировку текст реального запроса. А какая версия MS SQL используется? Сможете в отладчике посмотреть какой текст запроса выполняется к MS SQL перед тем, как выдается ошибка?
54. strop 11.02.22 19:09 Сейчас в теме
(52)
(52)
Проблема была в пути к файлу трассы. SQL сервер не мог туда писать. Спасибо
Andreyyy; +1 Ответить
53. strop 11.02.22 19:03 Сейчас в теме
(52)
MS SQL 2016 13.0.5026.0. В понедельник подробнее посмотрим.
Оставьте свое сообщение