Как разместить базу 1с на яндекс диске
Обновлено: 06.07.2024
1С умеет удивлять. Например, чтобы работать с Яндекс.Диском, не требуется никакого шаманства, все из коробки:
Данный код копирует файл из облака Яндекса на локальный диск, удаляет из облака и заливает обратно. Вместо login и pass подставляем логин и пароль Яндекса.
Это дико удобно, потому что, в отличии от Дропбокса, Яндекс поддерживает Вебдав. Диск от Яндекса раскачивается до 10 Гб в полпинка. Таким образом, все прайсы, фотки и прочую статику можно хранить в диске от Яндекса.
Комментарии из старого блога
04/17/13 Руслан: Приветствую, ну а что удивительного. Я так понимаю яндекс диск резервирует служебную папку. КопироватьФайл - просто копирует в эту папку файл, а яндекс приблуда висячая в трее, сама синхранизирует данные.
Пробовали сделать данный не шаманский код, без установленного яндекс диск по?
04/18/13 Иван Гришаев: Код работает без установленного Я.Диска. В 1С где-то зашита поддержка протокола Вебдав, по которому работает Я.Диск. ФТП тоже поддерживается. В том и прикол, что для работы с файлами из облака устанавливать клиент не нужно.
04/18/13 Руслан: Ну тогда действительно прикольная штука. Надо по экспериментировать ;)
08/03/13 Илья: А уверены, что именно 1С поддерживает webDAV а не ОС? Попробуйте под ХР запустить этот код
08/03/13 Иван Гришаев: Уверен, так написано в доках. А что, под Икс-пи не работает?
01/16/14 Иван Гришаев: У мейл.ру подвох в том, что все залитые данные становятся их собственностью, они могут делать с ними все, что хотят. Например, слить бекапы ваших баз конкурентам. Разве что на архив выставлять пароль.
01/16/14 Иван Гришаев: Снимите розовые очки. Номера телефонов продают спамерам все. Мейл ру могут слить ваши данные, потому что вы не сможете явно доказать, что слили именно они. Вручную они не буду рыться в ваших данных, скорее, это делает программа, которая ищет во всей этой помойке что-то интересное. Базы от 1С интересны, их можно тайком продавать.
01/16/14 Александр Маляев: Да, кстати в 1С 7.7 такой поддержки WebDAV нет.
02/27/14 Виталий: А есть ли возможность из 1С8 получить публичную ссылку на скопированный файл.
02/27/14 Иван Гришаев: Нет, только средствами Я.Диска.
03/16/15 Андрей: А куда этот код надо прописать? и как без ПО яндекс.Диска настраивать путь к базе из самой 1с?
03/16/15 Иван Гришаев: Этот код вы помещаете в любое место, например, в тело формы, модуля. Вторую часть вопроса не понял.
03/16/15 Иван Гришаев: Андрей, мне кажется, вы не так поняли. БД тут ни при чем. Предположим, что в Я-диске у вас есть папка documents, а в ней файл price.xls. И предположим, что ваш Я-логин andrey , a пароль Super123 Тогда вы можете выкачать файл из Я-диска прямо из кода 1с таким образом
или наоборот, загрузить файл с локального диска в Я-диск
Проблема только в том, что в последних билдах 1С стал глючить SSL
03/16/15 Александр Маляев: Андрей, теоретически это возможно, так как удаленную Webdav-папку можно смонтировать как локальный диск и работать с ней как с обычным диском. Но фактически вы работать не сможете, т.к. скорость будет примерно такая как если бы вы умудрились запустить 1С на каком-нибудь древнем 286-ом.
Если хотите удаленную а не локальную 1С - то смотрите в сторону “облаков”, в случае этого решения и данные и их обработка происходят на одном удаленном сервере, клиенту “гонится” либо картинка (в случае удаленного рабочего стола), либо небольшие куски данных, отобранные и обработанные сервером (в случае тонкого клиента).
Но, "PROPFIND / HTTP/1.1 " - это ведь не атрибут, это команда. И как тогда её выполнить штатными средствами 1С?
Проверьте, можно ли передать урл Яндекс-диска в функцию НайтиФайлы() Если тоже нет, установите cURL из запускайте его из 1С как процесс. Текст ответа распарсите силами 1с
11/20/15 Сергей Лиманчук: Иван, всё прекрасно работало где-то полгода, но с середины вчерашнего дня не копирует никакие файлы, 1С возвращает ошибку “Удаленный узел не прошел проверку”. Любопытно, что мобильное приложение 1С для iOS продолжает работать, ошибка вылезает только на ПК.
Внимание!
В этой инструкции я расскажу как можно очень просто настроить архивацию наших баз 1с (а также документов) в облако Яндекс-диска.
При этом мы не будем рассматривать вариант установки приложения "Диск для Windows". Этот вариант плох тем, что если мы всё-таки "словим" вирус-шифровальщик и он зашифрует данные нашего компьютера - эти зашифрованные файлы автоматически "улетят" в облако Яндекс-диска.
Итак, какие плюсы есть у Яндекс-диска для архивации наших баз 1С:
- высокая скорость доступа - в целом по России это действительно так, Яндекс обеспечивает хороший канал для доступа к своим серверам;
- бесплатные 10 гигабайт на старте - если у вас несколько баз, этого вполне хватит, с учётом того, что мы настроим циклическое удаление старых архивов;
- самый дешёвый тариф при платном расширении диска - так расширить диск до 100 гигабайт будет стоить 80 рублей в месяц, до 1 терабайта - 200 рублей в месяц плюс 17% экономии при оплате за год.
Для доступа к Яндекс-диску вам потребуется учётная запись на Яндексе (логин и пароль). Если у вас её ещё нет (или хотите завести отдельную для диска) вам сюда.
Установка программы обновлятор
Мы будем использовать программу Обновлятор для архивации наших баз и документов с последующей (однократной) заливкой на Яндекс-диск и очисткой старых архивов в облаке.
Подключаем Яндекс-диск в обновлятор
Для этого сразу после запуска программы переходим на закладку Настройки программы и нажимаем кнопку Облака:
Изначально список облаков у нас пустой - нажимаем кнопку Добавить (плюсик):
Открылось окно настройки облака, для моей учётной записи я настроил его вот так:
Нажимаем Ок и видим, что в список облаков добавился наш диск:
Чтобы убедиться, что мы всё сделали правильно - нажимаем кнопку "Протестировать облако":
Тестирование облака прошло успешно.
Нажимаем кнопку Сохранить и закрыть:
Выбираем Яндекс-диск в настройках архивации
Всё на той же закладке "Настройки программы" нажимаем кнопку "Дополнительные настройки":
Далее переходим на закладку "Архивация баз" указываем количество архивов, которое нужно хранить в локальной папке на этом компьютере (или сети):
А затем нажимаем на ссылку ". и ещё 0 облаков":
Здесь мы выбираем наше облако и если нужно меняем количество и периодичность хранимых в облаке архивов:
На этом с настройкой всё.
Кстати, сейчас мы задали параметры архивации в целом для всех наших баз и документов, но при желании мы можем переопределить их на уровне свойств конкретных баз и файлов.
Пробуем сделать архив с заливкой в яндекс-диск
Выделяем какую-нибудь базу (это могут быть не только базы, но и документы и другие произвольные файлы), добавленныю в список обновлятора и нажимаем кнопку "Архивировать":
База успешно заархивировалась:
И если мы тут же зайдём в кнопку "Облака", то увидим что созданный архив встал в очередь на заливку в Яндекс-диск:
Спустя какое-то время этот файл из очереди уйдёт (при этом обновлятор мы можем сразу закрыть, заливка идёт в фоне) и мы обнаружим его в нашем облачном Яндекс-диске:
При этом даже если в будущем архив на нашем компьютере окажется зашифрован или вообще удалён вирусом - с облачной копией ничего не случится, потому что:
Более тонкая настройка
Мы рассмотрели лишь простейший сценарий архивации наших баз и документов в облако Яндекс-диск.
Программа обновлятор позволяет также:
- настроить такую архивацию по расписанию
- настроить уведомления на почту в случае ошибок скорость и количество потоков для передачи архивов в облака
- использовать и другие облачные сервисы, например, google-диск и mega.nz
- использовать протоколы ftp, ssh, webdav
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Тем, кто постоянно дорабатывает внешние отчеты и обработки, удобно использовать внешнее хранилище этих данных. И если раньше это были переносные диски, то теперь очень удобно пользоваться сервисами типа Google Drive, Dropbox, Yandex Disk. Хранение актуальных версий своих наработок в интернете и использование синхронизации с папкой на локальном диске делает этот инструмент очень удобным.
Так чего нам не хватает в 1С? Правильно, сихронизации наработок с базой 1С. Ведь хранение отчетов и обработок в самой базе - это просто еще один способ хранения. И это то хранилище данных, которое актуально для этой базы.
Хранение своих наработок для для разных баз 1С очень удобно для с Yandex disk. Но как быстро обновить все свои наработки в конкретной базе? Идея: Зашел в дополнительную обработку, нажал кнопку и все готово.
Итак, с самого начала. По патриотическим соображениям выбирем Yandex Disk.
Вам Выдадут ID и пароль. Заходите по ссылке типа
И показывают пустое окошко с Вашим ключом (token). Он действителен в течение года.
3. Пользоваться YandexDiskExReports83. Первая обработка работает только на 8.3 для новых типах баз типа бухгалтерии 3.0 и БСП
Вводите свой Я сделал поле token в режиме пароль, но с функцией автосохранения значения. Если кто-то будет запускать обработку вместо Вас, он Вам легко перепишет файлы. Это сделано специально, по следующей логике:
1. Разработчик подготавливает внешний отчет или обработку
2. Выкладывает ее на Yandex-disk
3. В рабочей базе любой сотрудник запускает обработку YandexDiskExReports83 и нажимает кнопку "Синхронизовать"
В последней колонке можно подредактировать свои действия:
<Выгрузить> - выгрузить на yandex-disk. <Загрузить> - загрузить с yandex-disk.
Не совпадение версий определяется по контрольной сумме CRC. Приоритет в загрузке из Yandex disk.
И, конечно, лучше добавить данную обработку внуть базы и работать с ней как с дополнительной обработкой! (см. картинку)
Теперь перейдем к базам на версиях на 8.2 Бухгалтерия 2.0 или Управление Торговлей 10.3. Там где внешние доработки храняться в справочнике "Внешние обработки". Но старые версии платформы не могут сделать нам все необходимое.
Пройдемся по тем усилиям, которые необходимо предпринимать:
2. SSL. Так как платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1.
3. Контрольная сумма md5. Пока уберем. Будем использовать дату изменения файла записываемую в поле "комментарий к файлу источнику" справочника "внешние обработки", хотя она там записывется на час больше.
Алгоритм достаточно простой:
1. Смотрим все наработки в справочнике "внешние обработки" и ищем их аналоги на Yandex диске.
2. Сравниваем даты изменения. Если равны - выбираем "Не трогать", если нет, то по дате изменения выбираем "Загрузить или Выгрузить".
3. Проверяем правильность колонки "действия".
4. Нажимаем кнопку "Cинхронизировать".
И третья обработка обработка - простой яндекс диск, если Вам на работе запрещают ставить Yandex Диск для Windows компьютер.
Р.S.
Разобрался во всем этом и написал обработки.
Последнее время использую обработку только для быстрого обновления отчетов и обработок в реальных базах. Именно такой режим оказался самым востребованным.
Оказывается, если иметь публичную ссылку на директорию, то не обязательно получать токен для доступа к файлам.
В каждом запросе к чужим опубликованным ресурсам необходимо указывать публичный ключ, который возвращается Яндекс.Диском при публикации файла. OAuth-токен (и, соответственно, заголовок Authorization ) в таких запросах указывать не нужно.
Имеем: публичную ссылку на общую папку, куда сохраняются нужные нам документы для загрузки.
Чтобы получить конкретный файл или все файлы можно пойти двумя путями:
(В силу того, что описание получения файла по прямой ссылке было неверное (теперь исправили))
Get запросом получаем ответ сервера в формате JSON
Получим Метаинформацию об опубликованном ресурсе
Свойство Type указывает на тип файла, в нашем случае это расшаренная папка.
в public_url находится переданный нам публичный ключ для доступа к файлам.
А вот содержимое папки находится в Структуре _embedded. Там как раз и находится массив наших документов
Обходя массив элементов можно посмотреть всю информацию о каждом его элементе.
Нас же интересует свойство path - которое содержит имя файла и file - ссылка на скачивание файла. Зная эти значения можно скопировать нужные нам файлы на диск.
Здесь, как и везде, наверное, присутствует ограничение на файлы размером не более 2 Гб. Сам не пробовал.
и в самом соединении указать заголовок, как параметр
(4) Заголовок-сущность Content-Type используется для того, чтобы определить MIME тип ресурса.
В ответах сервера заголовок Content-Type сообщает клиенту, какой будет тип передаваемого контента. В некоторых случаях браузеры пытаются сами определить MIME тип передаваемого контента, но их реакция может быть неадекватной.
Здравствуйте, спасибо за статью, очень пригодилась. Подскажите еще, если в публичной папке есть еще папки, как извлечь из них файлы? Спасибо(7) Спускаться дальше по структуре вложения, и перед скачиванием указывать полный путь до элемента.
У (4) возникла проблема, что не получалось при большой вложенности скопировать файл, копировался пустой файл, однако путь на копирование был верный, если скопировать в строку браузера полученный путь, то файл успешно копировался на диск.
Копировался медиа контент (картинки), возможно, с документами такой проблемы нет.
Я тогда так и не понял, причину такого поведения.
Читайте также: