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

Публикация № 639443 28.06.17

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

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

Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

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

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с и читать форматированный текст запроса с отступами и пробелами.

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

ИР

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

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

Ссылки

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

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

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

Update 19.09.2017

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

Скачать файлы

Наименование Файл Версия Размер
Трансформатор 1с SQL:

.epf 32,01Kb
416
.epf 1.0.1 32,01Kb 416 Скачать

Специальные предложения

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

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

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

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

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

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

Именно с неё я и начинал изучение внутренностей бд.
Прикрепленные файлы:
zoikins; wowik; ZLENKO; stilet; +4 Ответить
22. Manticor 66 19.09.17 11:44 Сейчас в теме
(10) Николай, поделитесь плиз такой консолью, в типовой с сайта ИТС нет опции "показывать план выполнения запроса"
24. kuzyara 1300 19.09.17 12:21 Сейчас в теме
(22), в обработке для 8.3 - есть.
11. ArchLord42 78 29.06.17 07:14 Сейчас в теме
Очень нужная вещь, автор молодец!
13. 1segen1 33 29.06.17 09:50 Сейчас в теме
Отличная вещь! Автор - молодец.
16. Yashazz 4284 29.06.17 13:00 Сейчас в теме
Красиво сделано, аккуратно оформлено, толково рассказано. Собирался "вырастить" нечто подобное из своей http://infostart.ru/public/462714/, но руки не дошли. Спасибо, на первый взгляд выглядит как серьёзная качественная работа.
18. Serg O. 201 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 752 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 752 19.09.17 11:53 Сейчас в теме
(21) доработка небольшая, в ближайшее время сделаю, раз есть потребность у сообщества. Просто я пока занялся доведением до ума своей консоли запросов, скоро выложу на ИС :)
25. Sergey.Noskov 1268 29.09.17 10:53 Сейчас в теме
Большая работа, спасибо.
PS надеюсь когда нибудь конструктор запроса научится выдавать и текст запроса в терминах СУБД
27. red80 29.09.17 16:29 Сейчас в теме
28. Sergey.Noskov 1268 29.09.17 16:43 Сейчас в теме
(27) что бы видеть реальный запрос
26. LexSeIch 209 29.09.17 14:50 Сейчас в теме
Автору спасибо за разработку - взял на заметку.
29. SergF 30.09.17 10:16 Сейчас в теме
А самое главное, - автор не собирается останавливаться на достигнутом :

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

Очень ждем продолжения !!!
30. Synoecium 752 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 752 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 752 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 6548 14.05.19 16:03 Сейчас в теме
(36) Попробуй инструмент "Управление COM классами 1С" из набора "Инструменты разработчика". Он тебе покажет все варианты регистрации коннектора и позволит зарегистировать нужные.
38. wding 14.05.19 16:22 Сейчас в теме
(37) Тут глюк я думаю у 1С серьезный: та же конфа УТ 11.4, в режиме обычное приложение все отрабатывает на УРА! ... А, в режиме управляемого ругается.
39. tormozit 6548 14.05.19 16:40 Сейчас в теме
(38) Глюка в 1С тут уверяю нет. Но конечно, чтобы в этом убедиться, тебе потребуется потратить время.
46. Synoecium 752 24.10.19 09:43 Сейчас в теме
проблему уже обсуждали в комментарии (34), скорее всего у вас просто не установлена com-компонента для связи с сервером приложений 1С
40. r.zdorkin 06.06.19 07:29 Сейчас в теме
Спасибо за обработку, не понял только почему не добавлена опция доверительного подключения к SQL. хотя дописать скачавшему в этом плане не проблема
41. Synoecium 752 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 752 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 752 24.10.19 12:22 Сейчас в теме
(45) эта проблема уже обсуждалась в комментарии (34), скорее всего у вас не установлена com-компонента подключения к серверу приложений 1с
48. user1416994 01.06.20 15:50 Сейчас в теме
49. Synoecium 752 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 752 11.02.22 12:30 Сейчас в теме
(51)
Убедитесь, что каждый из столбцов в инструкции SELECT INTO имеет имя. Для других инструкций проверьте наличие пустых имен-псевдонимов. Не допускаются псевдонимы, определенные как [] или "". Измените псевдоним на допустимое имя.

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

См. также

HTTP-клиент Промо

Инструментарий разработчика v8 v8::Mobile 1cv8.cf Абонемент ($m)

Подсистема 1С для работы с HTTP.

1 стартмани

28.07.2021    8744    23    SpaceOfMyHead    44    

Функции "слоупока": как заставить открываться "Все функции" в 97 раз быстрее!

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Наверное, каждый программист 1С (да и не только программист), открывая «Функции для технического специалиста» (ранее «Все функции») на массивных конфигурациях вроде ERP 2.4 и т.п., в своей жизни много раз задавался вопросом – почему же они так долго открываются?? Действительно, в зависимости от мощностей сервера «Все функции» могут открываться от 20 секунд до 2 минут! «Ну, слишком много объектов в конфигурации, огромное количество констант, справочников, документов, регистров… – Отвечали себе страдающие пользователи. – Пока программа обойдёт в цикле все метаданные, пока построит дерево… Тут ничего не поделаешь…». И все они были не правы! Я провёл собственное расследование, которое показало, что 97% времени построения дерева метаданных тратится на…

1 стартмани

09.03.2022    11714    49    XilDen    69    

Программное формирование существующих печатных форм

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Получение списка печатных форм, формирование выбранной печатной формы и сохранение ее в файл.

1 стартмани

17.12.2021    4436    12    RocKeR_13    3    

Универсальный редактор данных (УРД)

Инструментарий разработчика v8 Абонемент ($m)

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    9937    162    Adeptus    53    

Навигатор по конфигурации базы 1С 8.3 Промо

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.87 от 02.12.2021

3 стартмани

28.10.2018    50733    458    ROL32    72    

Подсистема "Показатели объектов"

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов - тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.

2 стартмани

06.03.2021    10094    6    pila86    16    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    13764    27    huxuxuya    11    

Консоль кода для управляемых форм

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Консоль кода для управляемых форм с подсказками и подсветкой синтаксиса.

1 стартмани

17.07.2020    34084    484    salexdv    370    

Удаление и/или копирование сохраненных в 1С настроек (например настроек печати табличных форм) Промо

Инструментарий разработчика v8 Абонемент ($m)

Иногда нужно удалить сохраненную в 1С "покореженную" настройку или скопировать "удачную" другому пользователю...

1 стартмани

01.09.2012    71067    1394    AnryMc    46    

Внешний регламент для 1С

Инструментарий разработчика v8 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    11863    9    moolex    12    

CF & SQL : конструктор прямых запросов к БД 1С

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

02.10.2019    36846    347    dmitrydemenew    66    

Конвейер проверки качества кода

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    44068    31    Stepa86    46    

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

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.

1 стартмани

24.05.2012    88971    971    moolex    157    

Markdown-editor в 1С (с сохранением в HTML)

Инструментарий разработчика v8::УФ 1cv8.cf Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    15754    26    riposte    6    

Запуск 1С под любым пользователем (без необходимости указания пароля)

Пароли Инструменты администратора БД Инструментарий разработчика v8 v8::Права 1cv8.cf Абонемент ($m)

Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).

1 стартмани

02.07.2019    33691    365    sapervodichka    0    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    19640    1    vadim1980    5    

Консоль запросов с графом (Анализатор сложных запросов) Промо

Инструментарий разработчика v8::УФ v8::Запросы 1cv8.cf Абонемент ($m)

Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).

10 стартмани

03.05.2017    110431    520    manuel    294    

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Практический кейс построения HTTP-сервиса, который работает по принципу HTTP-сервера, с разбором всех методов построения и разработки класса задач построения личных кабинетов и сопряжения их с центральной базой.

1 стартмани

13.05.2019    44203    175    Diversus    44    

Блин, мы забыли включить регламентные задания…

Инструментарий разработчика v8 Абонемент ($m)

Привет, Инфостарт! Сегодня расскажу, как я решил проблему с выключенными регламентными заданиями в рабочих базах. Желая исключить человеческий фактор и минимизировать количество ошибок, я написал небольшую конфигурацию.  В конфигурации два регламентных задания. Первое периодически подключается к кластеру и сохраняет текущие параметры: имя, Сервер БД, базу СУДБ, блокировки входа и регламентных заданий и т.д. Второе задание периодически проверяет эти параметры на ошибки.

1 стартмани

08.04.2019    29035    22    slozhenikin_com    37    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Склад и ТМЦ Инструментарий разработчика v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    68298    277    informa1555    239    

Легкое и гибкое управление списком доступных баз 1С у пользователей

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    25133    27    RomikR    11    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    59154    571    Eugen-S    36    

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка)

Инструментарий разработчика v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    138509    3229    Evg-Lylyk    775    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    40876    35    informa1555    30    

Консоль HTTP-запросов с генерацией кода

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    36718    357    leongl    20    

Регистры правил [Расширение]

Инструментарий разработчика v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    26884    32    33lab    5    

Заполняем по шаблону (по умолчанию)

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2018    38648    22    mvxyz    17    

Программное формирование форматированной строки в стиле html+inline CSS

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    49430    49    bonv    13    

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

Инструментарий разработчика v8 Абонемент ($m)

При обновлении платформы 1С:Предприятие 8 предыдущие версии не удаляются. Со временем количество неиспользуемых версий платформы растет. Они занимают место на диске. Для решения этой проблемы предназначена программа OneCleaner. Она позволяет быстро удалить неиспользуемые версии платформы, а также почистить кэш метаданных и удалить ненужные информационные базы данных.

1 стартмани

14.11.2017    32782    100    bonv    15    

Закрываем всплывающие сообщения платформы

Инструментарий разработчика v8::УФ Абонемент ($m)

Принудительное закрывание сообщений платформы 8.3.10.

1 стартмани

10.11.2017    17820    13    RomaH    8    

Набор подсистем "Умные таблицы"

Инструментарий разработчика v8 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    41973    107    Silenser    34    

Автокликер для 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.04.2017    40579    85    slava_1c    67    

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.03.2017    44215    128    romasna    53    

Сценарное тестирование в помощь программисту 1С

Инструментарий разработчика v8 Абонемент ($m)

Альтернативное решение для организации сценарного тестирования конфигураций, разработанных на управляемых формах

1 стартмани

11.11.2016    34570    60    grumagargler    62    

Несколько шаблонов для доработки типовых конфигураций

Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Предлагаю несколько каркасов для создания новых объектов в типовых конфигурациях. Это выжимка из кода нескольких конфигураций, которая позволит быстро и красиво создавать и дорабатывать объекты метаданных с соблюдением идеологии исходной системы

1 стартмани

03.10.2016    46009    104    json    25    

Управление задачами: Канбан доска

Инструментарий разработчика v8 Абонемент ($m)

Конфигурация "Управление задачами" с использованием БСП. Канбан доска. Открытый код.Загрузка изменений из хранилища конфигураций 1С и связь с задачами. Проект выложен на github (ссылка в публикации). Управляемые формы. Рассылка уведомлений.

1 стартмани

02.10.2016    88426    700    BlizD    324    

Конструктор-тестер http запросов в 1С

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    52436    331    hlopik    19    

Подсистема обмена данными с порталом ИМНС по электронным счетам-фактурам (автоматический обмен)

Инструментарий разработчика v8 1cv8.cf Беларусь БУ НДС Абонемент ($m)

Подсистема включает документы и обработки для автоматического обмена данными с порталом ИМНС через web-сервис. Присутствует возможность заполнения данными типовых операций за период, учёта входящих документов, учёта произвольных исходящих документов. Приложены обработки для запуска задания планировщика на автоматический обмен данными.

1 стартмани

28.07.2016    41285    20    c1nil    4    

Навигатор по структуре и данным баз 1С 8

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Просмотр структуры и данных информационных баз 1С:Предприятие 8.2, 8.3. Состав, типы объектов, табличных частей, движений. Размер, структура хранения объекта. Для администраторов и разработчиков. Версия 1 - на обычных формах, версия 2 - на управляемых.

1 стартмани

11.07.2016    36694    149    o.nikolaev    17    

БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

1 стартмани

18.05.2016    83858    241    rozer    69    

Консоль запросов "Запросник" для управляемых форм с подсветкой синтаксиса

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Вот уже много лет я использую замечательный инструмент для работы с запросами - Запросник. Однако, с переходом на управляемые формы для его использования пришлось запускать базы в устаревшем толстом клиенте, да еще и разрешать в свойствах конфигурации использование обычных форм. В 2014 году появился запросник на управляемых формах, который, к сожалению, оказался несовершенен из за ограничений платформы. Самое неприятное из них - отсутствие подсветки синтаксиса. Мне кажется, что я нашел решение этой проблемы.

1 стартмани

19.04.2016    46188    270    1С_Мастер    42    

Простые радости жизни программиста 1С: выбор типа значения

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.02.2016    64492    57    yuraos    18