bdd2

Яндекс (Yandex) Диск. Обновляйте свои внешние обработки, обработки заполнения, печатные формы и отчеты.

Опубликовал Матвей Кудашкин (Patriot1S) в раздел Обработки - Универсальные обработки

Хранить свои внешние обработки на внешнем носителе типа Yandex диска удобно, а обновлять в базах 1С еще удобней.

Всем привет!

Тем, кто постоянно дорабатывает внешние отчеты и обработки, удобно использовать внешнее хранилище этих данных. И если раньше это были переносные диски, то теперь очень удобно пользоваться сервисами типа Google Drive, Dropbox, Yandex Disk. Хранение актуальных версий своих наработок в интернете и использование синхронизации с папкой на локальном диске делает этот инструмент очень удобным.

Так чего нам не хватает в 1С? Правильно, сихронизации наработок с базой 1С. Ведь хранение отчетов и обработок в самой базе - это просто еще один способ хранения. И это то хранилище данных, которое актуально для этой базы.

Хранение своих наработок для для разных баз 1С очень удобно для с Yandex disk. Но как быстро обновить все свои наработки в конкретной базе? Идея: Зашел в дополнительную обработку, нажал кнопку и все готово.

Итак, с самого начала. По патриотическим соображениям выбирем Yandex Disk.

1. Сначала немного напрячься и получить  токен или ключ. (https://tech.yandex.ru/oauth).

В некоторых обработках (http://infostart.ru/public/304373/) на infostart предлагают внутренную регистрацию, но мы не будем усложнять ситуацию. Мы делаем простое десктопное приложение.

Сначала зарегистрируйте свое приложение https://oauth.yandex.ru/client/new. Наименование любое, в правах для Yandex disk REST API укажите доступ на запись всего диска и доступ на чтение всего диска. И обязательно нажмите на ссылку Подставить URL для разработки, чтобы получить ответ в браузере.

Вам Выдадут ID и пароль. Заходите по ссылке типа https://oauth.yandex.ru/authorize?response_type=token&client_id=ID&display=popup, ID это ваш ID.

Вас просят подтвердить доступ.

И показывают пустое окошко с Вашим ключом (token). Он действителен в течение года.

2. Скачать обработку и заполнить поля настроек. Удаленный каталог создайте через вэб интерфейс или оставьте поле пустым для записи в корень.

Работа с обработкой

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. Там где внешние доработки храняться в справочнике "Внешние обработки". Но старые версии платформы не могут сделать нам все необходимое.

Пройдемся по тем усилиям, которые необходимо предпринимать:

1. JSON. Возьмем отсюда (http://infostart.ru/public/61194/). Спасибо разработчику за реализацию простого алгоритма.

2. SSL. Так как платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1.

Придется использовать ActiveX: ADODB.Stream, WinHttp.WinHttpRequest.5.1 и ограничиться только Windows решением. Решение получается тяжеловатым. Требует MDAC 2.5 и выше.

3. Контрольная сумма md5. Пока уберем. Будем использовать дату изменения файла записываемую в поле "комментарий  к файлу источнику" справочника "внешние обработки", хотя она там записывется на час больше.

Алгоритм достаточно простой:

1. Смотрим все наработки в справочнике "внешние обработки" и ищем их аналоги на Yandex диске.

2. Сравниваем даты изменения. Если равны - выбираем "Не трогать", если нет, то по дате изменения выбираем "Загрузить или Выгрузить".

3. Проверяем правильность колонки "действия".

4. Нажимаем кнопку "Cинхронизировать".

 

И третья обработка обработка - простой яндекс диск, если Вам на работе запрещают ставить Yandex Диск для Windows компьютер.


Р.S.

C Вэб-клиентом не заморачивался, там надо переделывать вызовы http через сервер.

 

А все началось с санкций. Как я тонко политически подошел... Точнее с запрещений. На работе запретили ставить себе на компьютер Yandex Disk. Использование подключения через WebDav http://help.yandex.ru/disk/webdav.xml не подходило по интенсивности обновлений и скорости работы. Поэтому сказал: Пора изучить Yandex Disk Rest API (https://tech.yandex.ru/disk/rest).

Документация удовлетворила, но особо понравился экспериментариум Полигон https://tech.yandex.ru/disk/poligon/. Он позволяет потестировать ваши запросы еще до момента написания кода.

Разобрался во всем этом и написал обработки.

Скачать файлы

Наименование Файл Версия Размер
YandexDiskExReports83.epf
.epf 13,47Kb
18.01.16
36
.epf 13,47Kb 36 Скачать
YandexDiskExReports82.epf
.epf 15,70Kb
18.01.16
17
.epf 15,70Kb 17 Скачать
YandexDisk.epf
.epf 12,12Kb
18.01.16
24
.epf 12,12Kb 24 Скачать
Версия для Вэб-клиента.
.epf 13,38Kb
26.10.15
2
.epf 13,38Kb 2 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Allexey (alex_4x) 72 15.04.15 08:50 Сейчас в теме
А под 8.2 возможно запилить такое ? под жирненького клиента ?
2. Канат Джумадылов (Fox-trot) 50 15.04.15 09:18 Сейчас в теме
3. Матвей Кудашкин (Patriot1S) 53 15.04.15 10:29 Сейчас в теме
(1) alex_4x, Работаю на этим. Но платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1. А по моим данным в корпоративном секторе мало кто еще перешел.
Для JSON в 8.2 есть обработки.
4. Александр Крынецкий (echo77) 666 15.04.15 21:00 Сейчас в теме
Совсем не понял на кой черт эта обработка?
Приложение дли виндовс Яндекс.Диск не решает ли те же задачи?
5. eugenie zheludkov (eugeniezheludkov) 29 16.04.15 03:14 Сейчас в теме
чет я совсем не вижу преимуществ такой разработки, читаю статью и чувствую, что автор не слышал про ГИТ и множество других систем контроля версий.
GIT позволяет делать тоже самое плюс версионирование плюс командная разработка плюс история изменений видны сразу, версии можно откатывать и плюшка от гитхаба это issues считай трекер задач. Вот к примеру мой тестовый репо: https://github.com/znsoft/external1CProgs/tree/master/src

, а закрытая разработка ведется на bitbucket.

там уже реальные вещи делаем
при помощи вот этой утилиты https://github.com/xDrivenDevelopment/precommit1c

ПС: хотя любая программа имеет право на жизнь :) извиняюсь если кого задел своим сообщением
PrinzOfMunchen; Yashazz; +2 Ответить 1
6. Матвей Кудашкин (Patriot1S) 53 16.04.15 09:31 Сейчас в теме
(4) echo77, (5) eugeniezheludkov Предполагается что сама разработка, тестирование, контроль версий осуществляется на другом компьютере с локальной копией Яндекс.Диск.
А Обработка предназначена для быстрого обновления своих наработок у Клиента!!! Не по одной, запоминая в уме что надо обновить а сразу все вместе по нажатию одной кнопки.
m.s.moiseev; baton_pk; +2 Ответить
7. Дмитрий Котельников (kotlovD) 46 16.04.15 09:48 Сейчас в теме
Связку с ЯД можно подсмотреть в 1С:Деньги, там доступ по логину и паролю, без токенов и ограничений по периоду их использования. Кстати, и в веб клиенте работает.
8. Яков Коган (Yashazz) 1940 16.04.15 12:46 Сейчас в теме
Меня всегда забавляла наивная уверенность некоторых специалистов в двух вещах - наличии устойчивого 4G в масштабах всея Земли, и сохранности-безопасности данных, хранимых где-то в сети. Эта уверенность обычно резко проходит после двух-трёх встреч с рукояткой жизненных граблей)
SunShinne; moolex; Ali1976; PrinzOfMunchen; gutentag; Sitex; qwinter; nihfalck; +8 Ответить 3
9. Матвей Кудашкин (Patriot1S) 53 17.04.15 09:48 Сейчас в теме
(7) kotlovD, Из статьи на Инфостарте http://infostart.ru/public/304373/
"Чтобы получить access_token мы должны предварительно настроить веб-сервер и опубликовать на нем http-сервис ЯндексДеньги."
10. Матвей Кудашкин (Patriot1S) 53 17.04.15 14:22 Сейчас в теме
(8) Yashazz,
Ну по поводу безопасности в 1С я удержусь высказываться.
А вот проверить работу обработки на 3G сети по телефона - проведу тест. И другим предлагаю предоставлять информацию.
11. Матвей Кудашкин (Patriot1S) 53 20.04.15 21:38 Сейчас в теме
(8) Yashazz, Не знаю, что Вы имеете ввиду,но по 3G телефону с задержкой все работает
12. artem Петров (gonzo111) 21.04.15 11:36 Сейчас в теме
не понял какие проблемы с синхронизации через WebDav ,подождать в обработке на 5 сек дольше уже стало проблемой?
заводим ящик расшариваем папку ему с доступом на чтение, сетевой диск подключаем и отключаем в обработке и без всяких страданий с токенами
net use U: https:\\webdav.yandex.ru /User:help@sss.net password /persistent:no
13. Матвей Кудашкин (Patriot1S) 53 23.04.15 23:29 Сейчас в теме
(12) gonzo111, Так первоначальная идея сделать аналог Yandex disk, переродилась в идею обновления в отдельной базе 1C своих внешних доработок.
14. Матвей Кудашкин (Patriot1S) 53 28.04.15 18:51 Сейчас в теме
Исправил ошибку если есть поддиректории в Yandex Disk. Их не берем в таблицу.
15. Матвей Кудашкин (Patriot1S) 53 22.10.15 22:17 Сейчас в теме
Заметил что одним запросом Yandex получает только 20 элементов. Это значение по умолчанию. Если у Вас больше файлов в директории это введет к ошибкам. Поставил 100. Думаю хватить. Или лучше сделать параметром?
16. Матвей Кудашкин (Patriot1S) 53 23.10.15 17:39 Сейчас в теме
Иногда для скачивания Yandex выдает 302 и перенаправляет на другой ресурс. Доделываем.
17. Ийон Тихий (cool.vlad4) 41 23.10.15 18:07 Сейчас в теме
(8) Yashazz, ты слишком критичен. для любой разработки можно найти условия , где она либо бессмысленна, либо не будет работать. автор же не писал, что она будет работать везде. если не будет интернета, она точно работать не будет, например.
и что там с безопасностью хранения обработок в яндекс диске? (я подозреваю насколько мне позволяют мои скромные знания, что в яндекс в плане безопасности куда лучше чем в 1с и тем не менее в конфах предусмотрен обмен по почте, которая кстати на том же яндекс может быть, и ничего)
18. Александр Шакмаев (shakmaev) 322 26.10.15 17:25 Сейчас в теме
А что мешает делать вот так? Это ж WebDAV, 1С успешно справляется с этим.

Путь1 = "https://login:pass@webdav.yandex.ru/path/to/file.txt";
Путь2 = "c:\file.txt";
КопироватьФайл(Путь1, Путь2);
УдалитьФайлы(Путь1);
КопироватьФайл(Путь2, Путь1);
...Показать Скрыть

19. Александр Журавлев (apostal86) 171 28.10.15 09:11 Сейчас в теме
С самого начала не доверял облачным сервисам и не доверяю. Главным образом по тому, что пока есть Интернет, или они работают - все ОК. А как только нет сети или облако "полетело", так все, приехали. В этом плане нет ничего надежнее личной флешки или жесткого диска. Поэтому логичнее настроит обновление и проверку с них. К тому же об уровне безопасности всех этих облаков тоже пока не все известно. Крадут же фотки знаменитостей.
20. Игорь Фелькер (Brawler) 273 30.11.15 15:45 Сейчас в теме
ЦЕННИКИ НЕ ГУМАННЫЕ!!!
Нужно было бы мне лично, не качал бы вовсе!
21. Влад Влад (surikateg) 04.12.15 12:44 Сейчас в теме
(19) apostal86, облачные клиенты в папку на жестком диске файлы кладут. Отсутствие интернета повлияет только на оперативную синхронизацию.
22. Hromov Anton (hromovanton) 1 10.12.15 13:49 Сейчас в теме
(19) apostal86, НЕ согласен. Если нет интернета, то все данные и так у вас на флешке. А вот если ваша флешка сгорит, то вот тут облачные данные спасут вас от "расстрела". Проверенно на личном опыте, правда на dropbox. День работы был спасен только благодаря облачному сервис !!!
23. Матвей Кудашкин (Patriot1S) 53 21.01.16 14:31 Сейчас в теме
Уменьшил стоимость скачивания.
24. Павел С (pavel_pss) 158 26.09.16 18:07 Сейчас в теме
Спасибо за статью, очень полезно.
25. Павел С (pavel_pss) 158 26.09.16 18:10 Сейчас в теме
Может подскажешь, я сделал все до твоей строки "И показывают пустое окошко с Вашим ключом (token). Он действителен в течение года." и получил этот длинный токен, Но при вставке его в обработку пишет что не авторизован. Что я не сделал.
26. Матвей Кудашкин (Patriot1S) 53 11.10.16 11:43 Сейчас в теме
(25) pavel_pss, Сложно сказать удаленно, попробуй точно скопировать все знаки ключа и нажми кнопку обновить.