Подключение к SQL из 1С (обычная и управляемая форма)

20.09.24

База данных - Инструменты администратора БД

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Подключение к SQL из 1С 2.0
.epf 27,25Kb ver:2.0
38
38 Скачать (2 SM) Купить за 2 150 руб.

Предыстория

Ранее рабочая база работала на платформе 8.3.20.1789. Поставили 8.3.25.1257 и начали обновление.

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

Более подробное описание есть в статье Восстановление базы или решение проблемы Ошибка СУБД: Microsoft SQL Server.

Поэтому понадобился функционал копирования таблиц из копии базы.

Обновление выполнялось на 8.3.25.1257 через хранилище конфигурации и в 8.3.25.1374 проблема уже не должна появляться.

 

Описание задачи

Требуется подключиться к копии MS SQL базы на сервере Windows на управляемых формах. Найти список таблиц, которые есть в копии базы, но нету в рабочей базе. Скопировать эти таблицы в рабочую базу. Также можно очистить данные таблиц средствами СУБД.

 

Решение

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

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

Для поставленной задачи разработана обработка «Подключение к SQL из 1С 2.0» представляет собой полностью автономное решение, с точки зрения встраивания в любую конфигурацию, как на обычных, так и на управляемых формах!

Список основных доработок:

1. Разработана управляемая форма;

2. Разработана функция копирования данных таблиц из копии базы;

3. Улучшен интерфейс;

4. Переработан код.

Обработка поддерживает подключение через дополнительные обработки.

Есть два варианта запуска:

  1. Через меню "Файл - Открыть" как обычную внешнюю обработку.
  2. Через справочник "Дополнительные отчеты и обработки" (в обработку встроен механизм подключения внешних обработок, пример подключения).

Функционал обработки проиллюстрирован в скриншотах.

В коде не используются синхронные и модальные вызовы!

Обработка прошла тестирование в тонком клиенте, толстом клиенте, веб-клиенте, толстом клиенте (обычное приложение) на платформах 8.3.20.1789, 8.3.25.1257, 8.3.25.1374, ОС семейства Windows.

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

 

Инструкция

Перед использованием нужно заполнить настройки для подключения к СУБД: сервер, имя пользователя и пароль СУБД (желательно создать отдельного или можно использовать системного пользователя - sa).

Нажать кнопку подключения к БД (Соединить/Список БД) - получает список баз СУБД, затем список таблиц первой базы.

Описание кнопок:

1. Кнопка "Просмотр" - показывает данные таблицы в СУБД.

2. Кнопка "Удалить таблицу" - удаляет данные таблицы в СУБД (сделайте резервную копию перед использованием)!

3. Кнопка "Таблицы" - показывает структуру таблиц запущенной базы по формату 1С.

4. Подменю "Копирование данных" - содержит кнопки для работы с данными второй базы - копии.

4.1 Кнопка "Разница таблиц" - получает список разницы таблиц первой (база, которую будем выбирать и откуда будут копироваться данные) и второй базы (база, выбранная на форме, в которую будут копироваться данные.).

4.2 Кнопка "Скопировать выбранную таблицу" - копирует данные таблицы по выбранным строкам из п. 4.1.

4.3 Кнопка "Очистить не выбранное" - удаляет не выбранные строки из п. 4.1 (упрощает визуальное восприятие).

 

Используемый материал

Microsoft SQL Server. Как скопировать таблицу из другой базы

Из ключевого стоит отметить:

Скопировать структуры таблицу и ее данные из одной базы в другую:

SELECT * into [Db2].[dbo].tmp_tbl_Deps FROM [Db1].[dbo].tbl_Deps

Минус у такого решения – не копируются индексы.

P.S. Если материал вам помог, поблагодарите автора, поставив плюс!

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей для Беларуси, редакция 3, релизы 3.5.11.73

Добавил скриншот из переписки.

См. также

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7738    55    22    

66

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8829    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10401    36    20    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187957    1138    0    

912

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32651    106    152    

73

SALE! 20%

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

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 2880 руб.

10.02.2017    110487    662    174    

702

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62812    94    59    

79
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SergVolga_34 8 20.09.24 09:53 Сейчас в теме
Когда-нибудь пригодится!)
2. Xershi 1555 20.09.24 11:02 Сейчас в теме
(1) лучше иметь под рукой и никогда не использовать+)))
SergVolga_34; +1 Ответить
3. TMV 14 21.09.24 14:04 Сейчас в теме
вроде там есть нюанс с копированием полей типа timestamp или нет?
4. Xershi 1555 21.09.24 14:45 Сейчас в теме
5. TMV 14 21.09.24 16:14 Сейчас в теме
(4) вот тут
SEL ECT * into [Db2].[dbo].tmp_tbl_Deps FR OM [Db1].[dbo].tbl_Deps
6. Xershi 1555 21.09.24 21:21 Сейчас в теме
(5) единственный нюанс, который там упоминался это индексы. А т.к. применение обработки было в рамках поставленной задачи, то такой вопрос не возникал. Можете провести исследование и более детально посмотреть, что получится.
7. TMV 14 24.09.24 20:23 Сейчас в теме
(6) действительно перепутал с конструкцией
ins ert in to [demo2].[dbo].[Document] sel ect * FR OM [Demo].[dbo].[Document]
8. Оберон 17 27.09.24 15:50 Сейчас в теме
Выгрузить БД на старой платформе и Загрузить БД на новой платформе не судьба конечно было сделать, тем более копия на СУБД была..
ох уж эта религия изобретателей велосипедов: сначала создать проблему и потом творчески ее решать )))
9. Xershi 1555 27.09.24 18:10 Сейчас в теме
(8) почитайте статью внимательнее. Задача более сложная чем вы поняли.
10. Fox-trot 163 02.10.24 09:36 Сейчас в теме
респект.. за кучу восклицательных знаков
Оставьте свое сообщение