TMSSQL - работа с базами данных MS SQL Server в скриптах на OneScript и из командной строки

Публикация № 823802

Разработка - Языки и среды - OneScript

56
Представляю вашему вниманию библиотеку TMSQL для работы с базами данных на MS SQL Server. Библиотека подключается в качестве модуля или класса в скрипты, написанные на OneScript, а также может работать как независимое консольное приложение.

Подробное описание библиотеки и примеры использования в вебинаре ниже.

Из видео вы также узнаете о том как:

  • Развернуть и настроить среду Visual Studio Code для разработки и отладки скриптов на OneScript
  • Разрабатывать простые скрипты
  • Устанавливать и подключать различные имеющиеся библиотеки
  • Разрабатывать свои библиотеки и приложения на OneScript
  • Использовать библиотеку TMSSQL для решения различных повседневных задач

 

Ссылки из вебинара:

Предыдущие вебинары на данную тему:

Пример использования библиотеки в приложении:

Вебинары по SQL-скриптам:

 

Описание библиотеки TMSSQL

Приложение для работы с базами данных на MS SQL Server. Реализовано на OneScript. Работает в режиме:

  • Консольного приложения
  • Библиотеки для разработки скриптов на OneScript

Официальная страница репозитория: https://github.com/Tavalik/TMSSQL

Для подключения к MS SQL-серверу используется COM-Объект ADODB.Connection:

Соединение  = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString =
    "driver={SQL Server};" +
    "server="+ПараметрыПодключения.АдресСервераSQL+";"+
    "uid="+ПараметрыПодключения.ИмяПользователяSQL+";"+
    "pwd="+ПараметрыПодключения.ПарольПользователяSQL+";" +
    "database="+БазаДанных+";";
Соединение.ConnectionTimeout = ПараметрыПодключения.ConnectionTimeout;
Соединение.CommandTimeout = ПараметрыПодключения.CommandTimeout;
Соединение.Open();

Соответственно, приложение работает только в ОС семейства Windows.

 

Установка

Установка через пакетный менеджер opm командой:

opm install tmssql

Или копированием всего репозитория по прямой ссылке: https://github.com/Tavalik/TMSSQL/archive/master.zip

 

Работа в режиме приложения

Исполняемый файл: C:\Program Files (x86)\OneScript\bin\TMSSQL.bat

Команды:

  • help - Вывод справки по параметрам
  • createdatabase - Создание базы данных
  • dropdatabase - Удаление базы данных
  • setrecovery - Изменение модели восстановления
  • backupdatabase - Создание резервной копии
  • restoredatabase - Восстановление базы данных
  • shrinkfile - Сжатие файлов базы данных
  • shrinkdatabase - Сжатие базы данных
  • deletefile - Удаление файлов на сервере

Пример использования (bat-файл):

@echo off

setlocal

set server="10.1.1.40"
set uid="sa"
set pwd="pass"
set database="Test_OS_TMSSQL"
set connectionstring=-server %server% -uid %uid% -pwd %pwd% -database %database%

rem Вывод справки
echo ----------------------------------------------
echo help:
call TMSSQL help

rem Создание базы данных 
echo ----------------------------------------------
echo createdatabase:
call TMSSQL createdatabase %connectionstring%

rem Изменение модели восстановления
echo ----------------------------------------------
echo setrecovery:
call TMSSQL setrecovery FULL %connectionstring%

rem Создание резервных копий
echo ----------------------------------------------
echo backupdatabase:
set file_FULL=%database%_FILE_FULL.bak
set file_DIFF=%database%_FILE_DIFF.bak
set file_LOG=%database%_FILE_LOG.trn
call TMSSQL backupdatabase "" %file_FULL% FULL %connectionstring%
TIMEOUT 1 /NOBREAK
call TMSSQL backupdatabase "" %file_DIFF% DIFFERENTIAL %connectionstring%
TIMEOUT 1 /NOBREAK
call TMSSQL backupdatabase "" %file_LOG% LOG %connectionstring%
TIMEOUT 1 /NOBREAK

rem Восстановление базы данных
echo ----------------------------------------------
echo restoredatabase:
call TMSSQL restoredatabase %connectionstring%

rem Удаление файлов на сервере
echo ----------------------------------------------
echo deletefile:
call TMSSQL deletefile %file_FULL% %connectionstring%
call TMSSQL deletefile %file_DIFF% %connectionstring%
call TMSSQL deletefile %file_LOG% %connectionstring%

rem Сжатие файлов базы данных
echo ----------------------------------------------
echo shrinkfile:
call TMSSQL shrinkfile LOG %connectionstring%

rem Сжатие базы данных
echo ----------------------------------------------
echo shrinkdatabase:
call TMSSQL shrinkdatabase %connectionstring%

rem Удаление базы данных
echo ----------------------------------------------
echo dropdatabase:
call TMSSQL dropdatabase %connectionstring%

 

Использование в качестве библиотеки

Библиотека подключается как отдельный класс. Экземпляр класса используется для работы с базами на конкретном SQL-Сервере. Может также работать в качестве модуля.

Подключение библиотеки:

#Использовать TMSSQL

Создание класса:

УправлениеMSSQL = Новый УправлениеMSSQL();

Параметры класса:

  • ПараметрыПодключения - Структура параметров подключения. Содержание структуры:
    • АдресСервераSQL - Сетевой адрес MS SQL Server
    • ИмяПользователяSQL - Имя пользователя для подключения к MS SQL Server
    • ПарольПользователяSQL - Пароль пользователя для подключения MS SQL Server
    • ИмяБазыДанныхSQL - Имя базы данных, в которой по умолчанию будут выполняться все запросы
    • ConnectionTimeout - Количество секунд для ожидания подключения, по умолчанию - 30
    • CommandTimeout - Количество секунд для выполнения команды, по умолчанию - 600
  • ТекстОшибки - Переменная для возврата ошибки, если таковая имела место 
  • РежимОтладки - Переменная для включения отладки, по умолчанию - Ложь

Процедуры и функции (описание параметров смотрите к описанию процедур и функций в файле TРаботаСMSSQL.os):

  • ВыполнитьЗапрос() - Выполняет произвольный запрос в указанной базе данных
  • СоздатьБД() - Создает на сервере MS SQL новую базу данных. Если база данных с данным именем уже существует, ничего не происходит
  • УдалитьБД() - Удаляет базу данных с сервера MS SQL с указанным именем. Если база данных не найдена на сервере, ничего не происходит
  • УдалитьФайлНаСервере() - Удаляет файл на сервере MS SQL
  • ПолучитьСтруктуруФайловБД() - Получает данные файлов базы данных из параметров подключения
  • СделатьРезервнуюКопиюБД() - Создает резервную копию базы данных из параметров подключения
  • ПолучитьСписокФайловДляВосстановленияБД() - Получает последовательность файлов для восстановления базы данных из параметров подключения на указанную дату
  • ВосстановитьИзРезервнойКопииБД() - Восстанавливает базу данных из параметров подключения по переданным именам файлов
  • ВосстановитьБД() - Восстанавливает базу данных из параметров подключения на указанную дату
  • ИзменитьМодельВосстановленияБД() - Изменяет модель восстановления базы данных из параметров подключения
  • СжатьБД() - Сжимает базу данных из параметров подключения
  • СжатьФайлыБД() - Сжимает файлы базы данных из параметров подключения

Пример использования (os-файл):

// Подключение библиотеки
#Использовать TMSSQL 

// Создадим объект	
УправлениеMSSQL = Новый УправлениеMSSQL();

// Введем параметры
ПараметрыПодключения = УправлениеMSSQL.ПараметрыПодключения;
ПараметрыПодключения.АдресСервераSQL = "10.1.1.40";
ПараметрыПодключения.ИмяПользователяSQL = "sa";
ПараметрыПодключения.ПарольПользователяSQL = "pass";
ПараметрыПодключения.ИмяБазыДанныхSQL = "Test_OS_TMSSQL";

БылиОшибки = Ложь;

// Создадим базу данных
Если УправлениеMSSQL.СоздатьБД() Тогда
    Сообщить("СоздатьБД: УСПЕШНО");
Иначе
    Сообщить("СоздатьБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Получим список файлов базы данных
ТаблицаФайловБД = УправлениеMSSQL.ПолучитьСтруктуруФайловБД(); 
Если ТаблицаФайловБД <> Неопределено Тогда
    Сообщить("ПолучитьСтруктуруФайловБД: УСПЕШНО");
    Для Каждого ФайлБД Из ТаблицаФайловБД Цикл
        Сообщить("	Имя: " + ФайлБД.ЛогическоеИмя + ", Путь: " + ФайлБД.ФизическоеИмя + ", тип: " + ФайлБД.Тип + ", размер: " + ФайлБД.Размер + " Мб.");
    КонецЦикла;
Иначе
    Сообщить("ПолучитьСтруктуруФайловБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Сменим модель восстановления базы на полную
Если УправлениеMSSQL.ИзменитьМодельВосстановленияБД("FULL") Тогда
    Сообщить("ИзменитьМодельВосстановленияБД: УСПЕШНО");
Иначе
    Сообщить("ИзменитьМодельВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;	

// Сделаем полную резервную копию
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"FULL");
Если ПолноеИмяФайла <> Неопределено Тогда
    Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
    Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
ДатаПолнойКопии = ТекущаяДата();

// Сделаем разностную резервную копию
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"DIFFERENTIAL");
Если ПолноеИмяФайла <> Неопределено Тогда
    Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
    Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);

// Сделем копию журнала транзакций
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"LOG");
Если ПолноеИмяФайла <> Неопределено Тогда
    Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
    Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);

// Сделем копию журнала транзакций
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"LOG");
Если ПолноеИмяФайла <> Неопределено Тогда
    Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
    Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);

// Восстаноим базу на дату создания полной копии
Если УправлениеMSSQL.ВосстановитьБД(ДатаПолнойКопии) Тогда
    Сообщить("ВосстановитьБД: УСПЕШНО на дату " + ДатаПолнойКопии);
Иначе
    Сообщить("ВосстановитьБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Получим список файлов для восстановления на текущую дату
МассивФайлов = УправлениеMSSQL.ПолучитьСписокФайловДляВосстановленияБД(); 
Если МассивФайлов <> Неопределено Тогда
    Сообщить("ПолучитьСписокФайловДляВосстановленияБД: УСПЕШНО");
    Для Сч = 0 По МассивФайлов.Количество()-1 Цикл
        Сообщить("	Файл: " + МассивФайлов.Получить(Сч));
    КонецЦикла;
Иначе
    Сообщить("ПолучитьСписокФайловДляВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Восстановим базу данных по полученнуму ранее массиву файлов
Если УправлениеMSSQL.ВосстановитьИзРезервнойКопииБД(МассивФайлов) Тогда
    Сообщить("ВосстановитьИзРезервнойКопииБД: УСПЕШНО");
Иначе
    Сообщить("ВосстановитьИзРезервнойКопииБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Удалим файлы резервных копий
Для Сч = 0 По МассивФайлов.Количество()-1 Цикл
    ИмяФайлаДляУдаления = МассивФайлов.Получить(Сч);
    Если УправлениеMSSQL.УдалитьФайлНаСервере(ИмяФайлаДляУдаления) Тогда
        Сообщить("УдалитьФайлНаСервере: УСПЕШНО для " + ИмяФайлаДляУдаления);
    Иначе
        Сообщить("УдалитьФайлНаСервере: " + УправлениеMSSQL.ТекстОшибки);
        БылиОшибки = Истина;
    КонецЕсли;
КонецЦикла;

// Переведем базу в простую модель восстановления
Если УправлениеMSSQL.ИзменитьМодельВосстановленияБД("SIMPLE") Тогда
    Сообщить("ИзменитьМодельВосстановленияБД: УСПЕШНО");
Иначе
    Сообщить("ИзменитьМодельВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Запустим сжатие файлов лога
Если УправлениеMSSQL.СжатьФайлыБД("LOG") Тогда
    Сообщить("СжатьФайлыБД: УСПЕШНО");
Иначе
    Сообщить("СжатьФайлыБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Запустим сжатие базы данных
Если УправлениеMSSQL.СжатьБД() Тогда
    Сообщить("СжатьБД: УСПЕШНО");
Иначе
    Сообщить("СжатьБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Удалим базу данных
Если УправлениеMSSQL.УдалитьБД() Тогда
    Сообщить("УдалитьБД: УСПЕШНО");
Иначе
    Сообщить("УдалитьБД: " + УправлениеMSSQL.ТекстОшибки);
    БылиОшибки = Истина;
КонецЕсли;

// Отчет о работе
Сообщить("");
Сообщить("-----------------------------------------------");
Сообщить("Результат работы модуля: " + ?(БылиОшибки,"БЫЛИ ОШИБКИ","УСПЕШНО"));
Сообщить("-----------------------------------------------");
Сообщить("");

 

Пишите, если у вас будут вопросы или пожелания по использованию библиотеки.

 

56

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

Комментарии
Избранное Подписка Сортировка: Древо
1. blackhole321 1040 26.04.18 15:20 Сейчас в теме
В чем преимущества перед штатными средствами администрирования?
2. Tavalik 2098 26.04.18 15:54 Сейчас в теме
(1)
В возможности быстро использовать представленный в библиотеке функционал совместно с другими библиотеками в своих скриптах на OneScript.
Например, с помощью данной библиотеки можно довольно быстро реализовать такой сценарий:

1. Проверка, есть ли захваченные в хранилище и измененные объекты
2. Установка блокировки регламентных заданий и начала сеансов
3. Через указанное количество минут завершение активных сеансов
4. Расчет последовательности файлов резервных копий рабочей базы для восстановления на указанную дату
5. Восстановление тестовой базы данных по найденной последовательности файлов
6. Перевод базы в простую модель восстановления
7. Сжатие файлов журнала транзакций

8. Отключение от рабочего хранилища
9. Подключение к разработочному хранилищу
10. Обновление конфигурации базы данных
11. Снятие блокировки регламентных заданий и начала сеансов
12. Уведомление о результате по электронной почте

Если говорить про использование в качестве консольного приложения, то в видео также есть пример использования программы совместно с деплойкой.
3. blackhole321 1040 26.04.18 16:08 Сейчас в теме
А какова цель приведенного Вами сценария?
Вы проверили изменённые объекты в хранилище конфигураций, а затем начинаете выгонять пользователей из рабочей базы. Затем, если я правильно понимаю, Вы восстанавливаете продуктивную базу в тестовую. Зачем выгонять пользователей?
4. Tavalik 2098 26.04.18 16:23 Сейчас в теме
(3)
Цель сценария - "перезалить" тестовую базу данными из рабочей.
Блокировка сеансов и завершение работы пользователей выполняется, конечно же, на тестовой базе, в той, в которую восстанавливаем данные.
5. blackhole321 1040 26.04.18 16:40 Сейчас в теме
(4)ну тогда по памяти типа:
Alt er database имятестовойбазы
Set single_user with rollback imediate,
А затем restore database
Наверное с десяток строк.
Выполнить можно множеством способов. В том числе и через powershell, osql etc.
Вот и пытаюсь понять, в чем изюм.

Также в ванскрипте есть библиотека
https://infostart.ru/public/672461/
Там вроде есть выполнить команду и можно писать произвольный sql запрос.
7. Tavalik 2098 26.04.18 17:16 Сейчас в теме
(5)

Ну, тут есть что пообсуждать.

Set single_user, не завершит работу пользователей "мягко", с уведомлением. Как вы с хранилищем будете работать, если сервер БД - это отдельный сервер и 1С там нет? Да даже обновление конфигурации базы данных как реализовать? Восстановление баз данных в случае, если рабочий и тестовый серверы БД на разных машинах, тоже та еще задача. Ну и т. д.

Кроме того, все это надо запускать в какой-то определенной среде, а у нас консультанты базы перезаливают без участия разработчика:



Также предлагаю посмотреть вам вот это видео: https://youtu.be/rmpcQFZSDnQ

В общем, приходите на Хакатон, расскажу подробнее.
8. blackhole321 1040 26.04.18 17:25 Сейчас в теме
(7)чёт я наверное недопонимаю :)
Если мы перезаливаем базу полностью, то нам должно быть все равно как там эти сеансы завершились т.к. на выходе мы получаем консистентную бд из бэкапа.
Обновление конфигурации штатными средствами.
Относительно хранилища и проблем не понял. Если Вы имеете ввиду хранилище конфигураций то если я не путаю - это отдельная файловая структура не относящаяся к mssql
9. blackhole321 1040 26.04.18 17:31 Сейчас в теме
(7)Относительно нахождения рабочего и тестового сервера СУБД также не понял, вроде как это не является нештатной конфигурацией для mssql
11. Tavalik 2098 27.04.18 10:25 Сейчас в теме
(9)
Хорошо, убедили. Сдаюсь.
Приведите ваш вариант реализации такого сценария.
12. blackhole321 1040 27.04.18 11:18 Сейчас в теме
(11)
Если Вы про:

4. Расчет последовательности файлов резервных копий рабочей базы для восстановления на указанную дату
5. Восстановление тестовой базы данных по найденной последовательности файлов
6. Перевод базы в простую модель восстановления
7. Сжатие файлов журнала транзакций

То это решается одним SQL скриптом, который я думаю, Вы и сами можете создать самостоятельно :) или попросить вашего dba.
Если Вам необходимо вот по каким-то причинам выполнить из OneScript - используйте соответствующую библиотеку, ссылку на которую я привел выше.

Посмотрел Ваше видео. Я так понял, что у вас в компании есть некие консультанты, которые в силу сферы своей деятельности не имеют знаний и навыков работы с MSSQL etc. и которым достаточно часто надо восстанавливать базы MSSQL из продуктива в тестовые базы. В то же время вы оказываете услуги по доработке конфигураций на платформе 1С:Предприятие и имеете отдел разработки.
В этом случае, по моему скромному мнению, вам сам бог велел сделать конфигурацию на 1С :) по управлению базами, чтобы консультант входил в эту базу, выбирал базу, которую ему нужно восстановить и нажимал одну кнопку.
Соответственно по результатам получал e-mail или сообщение в телеграмм или что-то еще. Все остальное решается выполнением соответствующих скриптов etc. сервером 1С:Предприятие.
В этом случае, 1С:Предприятие будет выступать некоей управляющей системой, обеспечивающей пользовательский интерфейс, хранение служебной информации (расположение БД, сами скрипты etc.), а также информацию о консультантах, список клиетов и баз, к котоым они имеют доступ и пр.

Ну вот на мой взгляд как-то так.

P.S.
Просто честно говоря так и не понял целевую аудиторию этой тулзы.
Для dba и сисадминов - оно не надо т.к. полно эффективных средств для выполнения таких задач.
Для консультантов - слишком сложно и непонятно, т.к. какой-то консольный вариант с какими-то параметрами.
Для разработчика 1С - зачем оно ему, если можно сделать конфигурацию 1С, попросить админа написать нужные скрипты и вставить их в конфигурацию?
В качестве учебного примера создания библиотеки на OneScript - да, но тогда это надо как-то явно указать в статье.
13. Infactum 281 27.04.18 11:35 Сейчас в теме
Oscript штука, в целом, не плохая.
Но среди "фанатов" уж очень часто проскакивает тренд переписывать и делать обертки для всего и вся. Думают, что таким образом бестолковые коллеги, которые ничего не могут изучить кроме синтаксиса 1С, смогут работать эффективнее.
Путь в никуда, имхо. Надо общую квалификацию поднимать.
komradz; Brawler; +2 Ответить
15. Gureev 28.04.18 13:51 Сейчас в теме
Я чот не понял в чем прикол библиотеки.

Может кто-нибудь объяснить?
18. nicxxx 235 28.08.18 12:05 Сейчас в теме
(15) В Jenkins-e удобно использовать
16. Semyonat 05.05.18 13:23 Сейчас в теме
Подскажите если у меня SQL сервер ругается что нет доступа, в какую сторону копать? Сервер по этому имени существует логин пароль корректные. Может нужно что то настроить на самом сервере? [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied
17. Semyonat 05.05.18 13:42 Сейчас в теме
Разобрался нужно было в настройках сервера включить TCP/IP и в брандмауэре порт 1433 пробросить.
Прикрепленные файлы:
19. Sergafan10 12.03.19 16:54 Сейчас в теме
Функция ПолучитьСписокФайловДляВосстановленияБД() получает почему-то только последний по дате файл. Это баг или фича?
20. Tavalik 2098 12.03.19 20:10 Сейчас в теме
(19)
Нет, функция должна получить весь список файлов, которые нужны для восстановления на указанную дату. Если у вас функция возвращает последний файл, значит по идее его и достаточно (например единственный полный бэкап в отсутствии бэкапа журналов транзакций).

А мастер восстановления в MS вам другую цепочку строит?
21. Sergafan10 13.03.19 08:12 Сейчас в теме
(20) ах она смотрит на бакап транзакций... У меня делаются полные бакапы в пределах недели. И в консоли, в наборах данных, тоже подсовывает крайний. Можно это обойти? Мне нужно получить список файлов бакапа из папки с дальнейшим их удалением. Это делается и стандартными средствами чудесно, но интересует через OneScript.
23. Tavalik 2098 14.03.19 06:01 Сейчас в теме
(21)

Не совсем понятна задача.
Список файлов для восстановления возвращает MS SQL исходя из имеющиеся у него информации.

Библиотека в плане восстановления делает следующее:
- Запрашивает цепочку файлов для восстановления у MS SQL
- Формирует текст запроса для восстановления указанной базы
- Отправляет итоговый запрос в MS SQL на выполнение

А у вас есть еще какие-то файлы, отличные от полного бэкапа? Что это за файлы, и почему MS SQL о них не знает?
24. Sergafan10 14.03.19 08:51 Сейчас в теме
(23) Есть файлы полных бакапов, которые СКЛ создаёт по расписанию. При восстановлении через консоль он предлагает развернуть
последний по времени бакап. Тот же самый бакап возвращает метод ПолучитьСписокФайловДляВосстановленияБД()
В таком случае, я полагаю, дело в возврате цепочки скулем.
25. Sergafan10 01.04.19 16:18 Сейчас в теме
(23) Разобрался, скорректировав запрос в функции ПолучитьСписокФайловДляВосстановленияБД(). Всего-то убрать условие выборки TOP 1. Не думал, что всё так просто)
22. Sergafan10 13.03.19 09:21 Сейчас в теме
(20) upd.21
Да, это можно сделать через Новый Файл(.....), но это работает только со стороны клиента, а как бы на сервер залезть? :)
Оставьте свое сообщение

См. также

Автоматическое сравнение-объединение баз данных с мини-конфигурацией 2

Статья Программист Компонента, плагин (dll, vbs,..) v8 Windows Бесплатно (free) OneScript

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

14.10.2019    341    artkor    2       

АИТП. Подсистема взаимодействия с рабочими серверами OneScript 20

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) OneScript

В статье описан механизм взаимодействия конфигурации АИТП с рабочими серверами OneScript.

22.05.2019    2922    blackhole321    33       

1Script.Web. Интернет-приложения на языке 1С 119

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    11632    Evil Beaver    32       

Разворачиваем рабочий сервер OneScript для конфигурации АИТП 26

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) OneScript

В статье описана методика развертывания рабочего сервера OneScript для конфигурации АИТП, на ОС CentOS 7.

09.05.2019    3638    blackhole321    0       

"Перезаливатор" - приложение для автоматизации "перезаливки" баз 64

Инструменты и обработки Системный администратор Программист Архив с данными Windows Абонемент ($m) Архивирование (backup)

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

1 стартмани

05.07.2018    10357    16    Tavalik    24       

Автоматизируй это! 148

Статья Системный администратор Программист Нет файла Бесплатно (free) Практика программирования

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

02.07.2018    16082    Tavalik    12       

Добавляем онлайн-чат в web-приложение OneScript 16

Статья Программист Нет файла v8 Бесплатно (free) OneScript

В статье рассмотрено подключение онлайн-чата к web-приложению на основе http-сервисов OneScript

24.06.2018    5346    blackhole321    1       

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins) 112

Статья Системный администратор Программист Нет файла v8 1cv8.cf ИТ-компания Бесплатно (free) OneScript DevOps Jenkins

Решаем задачу: автоматизировать обновление тестовых баз 1С из хранилища конфигурации при появлении в нём новых изменений. Данная статья родилась в муках хождения по граблям и поиска безопасного форватора среди подводных камней. Изложение постарался представить в виде инструкции для новичка, в которой собрал всё, с чем пришлось столкнуться. Сам я не DevOps-ер, ни на что не претендую, просто делюсь опытом :)

17.06.2018    14891    stas_ganiev    33       

Макеты в http-сервисах OneScript 10

Статья Программист Нет файла v8 Бесплатно (free) OneScript

В статье описана библиотека, реализующая механизм макетов в http-сервисах OneScript, аналогично платформе 1С:Предприятие.

03.06.2018    5800    blackhole321    1       

Перечисления в http-сервисах OneScript 7

Статья Программист Нет файла v8 Бесплатно (free) OneScript

В статье описывается библиотека, реализующая механизм перечислений в http-сервиах OneScript, аналогичный механизму платформы 1С:Предприятие

03.06.2018    5432    blackhole321    13       

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci 33

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) OneScript

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci на примере портирования на onescript функции daСклонение.

14.05.2018    9480    pallid    3       

Создаем свою библиотеку для OneScript 147

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) OneScript

Как упаковать свою библиотеку в пакет? Что такое загрузчик и зачем он нужен? Как вообще создать свою библиотеку? Разбираемся на примере.

06.03.2018    16783    nixel    35       

Обзор имеющихся библиотек OneScript 299

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) OneScript

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

14.11.2017    30718    nixel    85       

Вебинтерфейс для OneScript и 1С 27

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) OneScript

Пример создания вебинтерфейса для OneScript с использованием библиотеки UfaScript.osb

30.06.2017    11170    andreosh    7       

OneScript и Ajax. POST-запрос и мои дальнейшие планы с фантазиями о будущем 11

Статья Программист Нет файла v8 Россия Бесплатно (free) OneScript

Моя библиотека для OneScript (версия 3.0 от 09.06.2017 см.GitHab UfaScript) https://github.com/andreosh/UfaScript теперь позволяет посылать POST-запросы на сервер без использования сторонних библиотек типа jquery.

09.06.2017    15785    andreosh    3