Как разместить базу 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 Гб. Сам не пробовал.

и в самом соединении указать заголовок, как параметр

(3) а мне вот не помогли никакие Заголовки. Что по первому методу, что по второму скачиваются пустые файлы, хотя если полученную ссылку вставить в браузер все скачивается нормально. Тоже не могу понять в чем дело У меня ошибки не выдавал. Но и скачивая записывал пустой файл, как если просто использовать метод КопироватьФайл();

(4) Заголовок-сущность Content-Type используется для того, чтобы определить MIME тип ресурса.

В ответах сервера заголовок Content-Type сообщает клиенту, какой будет тип передаваемого контента. В некоторых случаях браузеры пытаются сами определить MIME тип передаваемого контента, но их реакция может быть неадекватной.

Здравствуйте, спасибо за статью, очень пригодилась. Подскажите еще, если в публичной папке есть еще папки, как извлечь из них файлы? Спасибо

(7) Спускаться дальше по структуре вложения, и перед скачиванием указывать полный путь до элемента.
У (4) возникла проблема, что не получалось при большой вложенности скопировать файл, копировался пустой файл, однако путь на копирование был верный, если скопировать в строку браузера полученный путь, то файл успешно копировался на диск.
Копировался медиа контент (картинки), возможно, с документами такой проблемы нет.
Я тогда так и не понял, причину такого поведения.

Читайте также: