Подключение к 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
35
35 Скачать (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

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

См. также

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

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

8400 руб.

20.08.2024    6890    49    22    

61

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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    8597    43    5    

72

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

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

10000 руб.

10.11.2023    10181    36    20    

61

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

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

14400 руб.

29.04.2020    32465    105    152    

73

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

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

4800 руб.

14.01.2013    187306    1134    0    

907

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

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

3600 руб.

10.02.2017    110307    663    174    

702

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72638    625    45    

84
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SergVolga_34 8 20.09.24 09:53 Сейчас в теме
Когда-нибудь пригодится!)
2. Xershi 1551 20.09.24 11:02 Сейчас в теме
(1) лучше иметь под рукой и никогда не использовать+)))
SergVolga_34; +1 Ответить
3. TMV 14 21.09.24 14:04 Сейчас в теме
вроде там есть нюанс с копированием полей типа timestamp или нет?
4. Xershi 1551 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 1551 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 1551 27.09.24 18:10 Сейчас в теме
(8) почитайте статью внимательнее. Задача более сложная чем вы поняли.
10. Fox-trot 163 02.10.24 09:36 Сейчас в теме
респект.. за кучу восклицательных знаков
Оставьте свое сообщение