Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Выгрузка информационной базы          
imaddy Подменю пользователя
сообщение 20.04.21, 15:34
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

На данный момент как происходит выгрузка информационной базы (бэкап) - я захожу в управление серверами 1С предприятия, далее завершаю сеансы всех пользователей и далее запускаю батник, по типу:
"C:\Program Files (x86)\1cv8\common\1cestart.exe" CONFIG /S "192.168.11.12\BUHGAL_TV_83_2021" /N "Admin" /P "'njgfhjkm" /DumpIB "E:\TRANSFER_BACKUP_dt_1C\BUHGAL\BUHGAL_TV_83_2021-%date%.dt"

Далее, собственно, происходит выгрузка информационной базы. Все, вроде бы, нормально. Но мне хочется как-то автоматизировать этот процесс, чтобы я в нем не участвовал. Проблема в том, что выгрузка не происходит, если хотя бы один пользователь завис в системе. Поэтому я и захожу в управление серверами и вручную завершаю все сеансы. Собственно вопрос, как можно автоматизировать процесс завершения сеансов? Сервер 1С работает на Linux, если что. Перерыл весь интернет, ничего не нашел что реально работало бы. Заранее благодарю за помощь!

Petre Подменю пользователя
сообщение 20.04.21, 16:37
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Вам нужна выгрузка или бекап?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

imaddy Подменю пользователя
сообщение 20.04.21, 16:55
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Petre @ Сегодня, 16:37 * ,
Выгрузка. Вообще, для меня выгрузка и является в какой-то мере бекапом.

logist Подменю пользователя
сообщение 20.04.21, 18:16
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Посмотрите свою конфигурацию, если она из типовых там должно быть что-то типа "Блокировка работы пользователей" и/или "Завершение работы пользователей", настройте на какое-то время, и сделайте скрипт который средствами sql будет делать бекап, и добавьте его в cron. Как по мне это лучшее решение для бекапа, единственный его минус это то, что развернуть его можно будет в такой же среде.
Вариант второй - из винды, у 1С есть com-объект который работает с консолью серверов, можете создать в 1с функцию которая будет отключать все сеансы (кроме текущего), блокировать базу и собственно запускать какой-то bat-файл в котором будет выполнятся выгрузка, затем разблокировка базы. И потом это всё запускать в планировщике. Но как показывает практика какая-то часть такой цепочки может иногда сбоить, по разным причинам.
Вариант третий, он же по сути первый, который используют чаще всего - обычный sql бэкап, без всяких отключений и т.п., в то время когда база в простое, и нет регл. заданий.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: imaddy,

imaddy Подменю пользователя
сообщение 20.04.21, 21:44
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

logist @ Сегодня, 18:16 * ,
Благодарю за ответ. В этом то и проблема, что бекап в Linux я без проблем могу сделать и настроить, но нашим бухгалтерам иногда нужен бекап, который можно развернуть в винде, они что-то там шаманят потом. А так можно сделать только делая выгрузку из-под винды. Не нужна была бы им выгрузка, которая в винде разворачивается - я бы вообще не задавался этим вопросом.
Буду пробовать второй вариант, правда я в 1С не силен (если быть точнее, то у меня практически нет опыта в администрировании 1С). До меня сисадмины пытались как-то настроить и сделать автоматический бекап, так и не смогли ничего сделать и забивали. Был бы очень благодарен, если бы вы подсказали как вообще выглядит этот com-объект и как создается функция по отключению сеансов.
На одном сайте нашел решение
Скрипт позволяет произвести выгрузку информационной базы 1С клиент-серверного варианта.
1. Открываем блокнот, вписываем туда следующий код:

chcp 1251
start /wait /d"C:\Program Files\1cv82\8.2.19.83\bin\" 1cv8.exe ENTERPRISE /S ИмяСервера\ИмяБазы /N Логин /P Пароль /DisableStartupMessages /C ЗавершитьРаботуПользователей
start /wait /d"C:\Program Files\1cv82\8.2.19.83\bin\" 1cv8.exe DESIGNER /S ИмяСервера\ИмяБазы /N Логин /P Пароль /UCКодРазрешения /DumpIB "D:\BuhCopy_%date:~-10%.dt" /DumpResult "D:\Read_%date:~-10%.txt"
start /wait /d"C:\Program Files\1cv82\8.2.19.83\bin\" 1cv8.exe ENTERPRISE /S ИмяСервера\ИмяБазы /N Логин /P Пароль /C РазрешитьРаботуПользователей /UCКодРазрешения
exit

2. Заменяем, что выделено жирным шрифтом - у каждого это свои параметры. Сохраняем файл.

3. Меняем расширение файла с *txt на *bat и сохраняем.

После чего можно протестировать данный батник на работоспособность, открыв его.

Скрипт должен выполнить следующие действия:

- заходит в базу под пользователем (пользователь должен иметь полные права), блокирует базу и завершает работу пользователей, выходит;

- заходит в заблокированную базу под пользователем, введя код (пользователь должен иметь полные права), делает файл *dt, пишет результат выполнения выгрузки в файл *txt и сохраняет его, выходит;

- заходит в базу под пользователем (пользователь должен иметь полные права), снимает блокировку базы, выходит;

4. После успешного тестирования можно повесить данный файлик на планировщика заданий по расписанию.

Правда мне тут не совсем понятно где там указан параметр, который как раз таки отвечает за завершение сеансов, неужели "/C ЗавершитьРаботуПользователей"?

Сообщение отредактировал Vofka - 21.04.21, 15:18

logist Подменю пользователя
сообщение 20.04.21, 22:34
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(imaddy @ 20.04.21, 22:44) *
подсказали как вообще выглядит этот com-объект и как создается функция по отключению сеансов.

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

Цитата(imaddy @ 20.04.21, 22:44) *
Правда мне тут не совсем понятно где там указан параметр, который как раз таки отвечает за завершение сеансов, неужели "/C ЗавершитьРаботуПользователей"?

Опять же, всё зависит от конфигурации, если в ней есть поддержка ключа "ЗавершитьРаботуПользователей", но этот механизм не гарантирует что сеансы на сервере будут безоговорочно завершены, в разных конфигурациях могут быть разные косяки которые не дадут нормально завершиться сеансу, некоторые конфигурации управляемых форм с поддержкой модальности могут препятствовать нормальному завершению сеансов.
Но для вас это может быть самым простым вариантом, настройте его, понаблюдайте, если выгрузки нормально делаются - пользуйтесь, если таки будут постоянные проблемы - надо будет выбирать другой вариант. Вообще, чтобы уже наверняка, если бекап делается ночью, можете сделать такой подход (разделите скрипт на части) - запустите блокировку работы пользователей в 2 ночи, в 2:30 перезапустите сервер 1с (systemctl stop srv1cv83.service && systemctl start srv1cv83.service или как-то так, смотрите как у вас называется), в 3 ночи запустите собственно саму выгрузку, посмотрите сколько длиться, например час и в 4 запустите разблокировку. Это всё даст 30 минут на штатное завершение работы, перезапуск сервера по идее должен отвалить зависшие сеансы, а отдельный запуск разблокировки позволит разблокировать базу однозначно если что-то пошло не так.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: imaddy,

zay Подменю пользователя
сообщение 21.04.21, 7:47
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 162
Из: Киев
Спасибо сказали: 130 раз
Рейтинг: 135.8

Поставьте в начале скрипта
rem -- Убивам процесс 1С если он такой есть
taskkill /f /im 1cv8c.exe
taskkill /f /im 1cv8.exe

Скрипт должен запускаться под пользователем с правами администратора

Vofka Подменю пользователя
сообщение 21.04.21, 15:19
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

zay, процесс ведь может быть не на этом компьютере.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!