Подключение к SQL из 1С (обычная и управляемая форма)
База данных - Инструменты администратора БД
Использует недокументированные средства доступа к базе данных 1С. Прямое обращение к СУБД нарушает лицензионное соглашение,
может изменить поведение платформы, привести к разрушению базы данных, скомпрометировать данные,
а также привести к отказу в официальной поддержке Фирмы 1С.
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предыстория
Ранее рабочая база работала на платформе 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. Переработан код.
Обработка поддерживает подключение через дополнительные обработки.
Есть два варианта запуска:
- Через меню "Файл - Открыть" как обычную внешнюю обработку.
- Через справочник "Дополнительные отчеты и обработки" (в обработку встроен механизм подключения внешних обработок, пример подключения).
Функционал обработки проиллюстрирован в скриншотах.
В коде не используются синхронные и модальные вызовы!
Обработка прошла тестирование в тонком клиенте, толстом клиенте, веб-клиенте, толстом клиенте (обычное приложение) на платформах 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
Вступайте в нашу телеграмм-группу Инфостарт