1С
про нашего любимого желто-красно-синего друга
Резервное копирование баз 1С в облако cloud.mail.ru средствами системы .bat-файлом
Автор KuzevichСуществует множество способов резервного копирования серверов и баз данных, но нигде не нашел описания автоматизации резервного копирования баз 1С в облако cloud.mail.ru
Почему cloud.mail.ru? Потому что в 2013 году были получены халявные 100Гб и грех ими не воспользоваться. Так же в данной статье я опишу несколько полезных команд windows, которые пригодятся и для других задач (например очистка файлов старше определенного срока, как убить сеансы 1С, что делать чтобы bat-файл дожидался выгрузки dt, не переходя на следующую команду, архивация dt с разбивкой на архивы не более 2Гб (mail.ru файлы большего размера не пропускает) )
Итак, для начала, например, на диске D: создаем папку backup. В ней папку SQL, в которую у нас будут складываться ежедневные backup'ы sql сервера. Настроить их можно следующим образом: https://infostart.ru/public/199760/
Затем нам нужно позаботиться чтобы на сервере был установлен архиватор, в моем примере WinRar
И настроить WebDAVCloudMailRu для подключения хранилища cloud.mail.ru в качестве сетевого диска, подробнее здесь: https://glashkoff.com/webdav-cloudmailru/
Теперь все готово для запуска нашего .bat файла, которые последовательно выполняет операции:
1) Удаляем бэкапы базы SQL средствами сервера старше 7 дней
Forfiles -p "D:\backup\SQL" -s -m *.* -d -7 -c "cmd /c del /q @path"
2) Удаляем временные файлы, остающиеся от службы WebDAV (иначе они переполнят диск C:)
del /F/S/Q C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\*
3) Убиваем открытые сеансы 1С на сервере (можно перед запуском нашего bat-файла в планировщике поставить перезагрузку сервера, чтобы наверняка)
taskkill /IM 1cv8.exe /f
taskkill /IM 1cv8c.exe /f
taskkill /IM 1cv8s.exe /f
4) Выгружаем базы. В командной строке выгрузки .dt нужно указывать именно 1cv8.exe, иначе 1С вернет управление командному файлу и он пойдет дальше не дождавшись выгрузки.
командная строка выгрузки SQL базы
call "C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" CONFIG /M /S"Server1c\ut" /N"ИмяПользователя" /P"ПарольПользователя" /Out"D:\backup\1c_ut.log" /DumpIB"D:\backup\bak\ut.dt"
командная строка выгрузки файловой базы
call "C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" CONFIG /M /F"C:\1С\Бухгалтерия" /N"ИмяПользователя" /P"ПарольПользователя" /Out"D:\backup\1c_buh.log" /DumpIB"D:\backup\bak\buh.dt"
5) Архивируем выгруженные базы, с размером не более 2000000 кбайт (2Гб), иначе сервис их не пропустит
"C:\Program Files (x86)\WinRAR\rar.exe" a -o+ -dh -r -m5 -v2000000 D:\backup\bak\backup1Cut_0.rar D:\backup\bak\ut.dt
"C:\Program Files (x86)\WinRAR\rar.exe" a -o+ -dh -r -m5 -v2000000 D:\backup\bak\backup1Cbuh_0.rar D:\backup\bak\buh.dt
6) подключаем облако mail.ru как сетевой диск через службу WebDAVCloudMailRu
net use M: /DELETE
net use M: http://127.0.0.1:801 "ПарольОблакаMailRu" /USER:ЛогинОблакаMailRu
7) Копируем архивы в облако Mail.ru
xcopy "D:\backup\bak\backup1Cbuh_0.rar" M:\ /Y
xcopy "D:\backup\bak\backup1Cut_0.*" M:\ /Y
На этом все. Готовый .bat-ник можете скачать из вложения к статье.
В сообществах программистов часто кипят споры о том, что 1С-ники не программисты, 1С не язык программирования и т.п.
Подолью масла в огонь :)
Сразу хочу сказать, что я считаю, что для каждого решения нужен индивидуальный подход и выбор подходящей среды разработки, но решающим фактором для бизнеса становятся деньги.
И конкретный пример:
Выгрузка товаров и цен из 1C Управление Торговлей (УТ) 11.3 на сайт Bitrix
Автор KuzevichСтолкнулся на прошлой неделе еще с одной неординарной проблемой: внезапно перестала работать синхронизация товаров и цен в программе 1С Управление Торговлей 11 с сайтом на Bitrix.
Как выяснилось, в 11 Торговле цены выгружаются исходя из соглашений.
Что нужно проверить в соглашениях:
1. Должно быть типовым (не индивидуальным)
2. Должно быть действующим. т.е. статус соглашения должно быть "Действует"
3. Должно быть с пустым сегментом партнеров, т.е. не заполнено поле "Сегмент партнеров"
4. Должно быть доступно внешним пользователям, т.е. установлен флаг "Доступно внешним пользователям".
4.1 Если флаг "Доступно внешним пользователям" не виден, то нужно включить использование внешних пользователей (в администрировании флаг "Разрешить доступ внешним пользователям")
Затем в соглашении нужно указать вид цены, по которому мы хотим, чтобы выгружались цены.
Убедиться, что по выбранному виду цены имеются цены заполненные на товары и/или характеристики.
Это я все проверил - проблем не было.
Тогда я выгрузил данные в файл обмена и проанализировал его.
В файле offers0_1.xml обнаружил дублирующую строку ТипЦены (с одним id, но разными валютами)
Разбираемся, откуда взялась цена в Евро.
С помощью консоли запросов выбираем регистраторы цен в евро из регистра сведений Цены Номенклатуры:
1С Альфа-Авто загрузка в бухгалтерию ошибка отображения типов: отсутствует отображение для типа 'ОбщийМодуль'
Автор KuzevichНа свежих версиях 1С Бухгалтерии (с 2016 года (в частности релиз 3.0.43.50)) появилась ошибка при загрузке данных из Альфа-Авто обработкой Загрузка_в_БП_3.0(8.3).epf
Ошибка отображения типов: отсутствует отображение для типа 'ОбщийМодуль'
Причина в появившемся в новых релизах бухгалтерии общего модуля "НачалоРаботы"
В обработке загрузки используется переменная с тем же названием.
Глобальным поиском и заменой значений пробежался по обработке загрузки и заменил все вхождения переменной "НачалоРаботы" на "НачалоРаботыАльфа"
P.S. удивительно, но на данный момент (18.01.2016) на форуме Раруса не увидел обращений, видимо не все еще обновились.