gifts2017

Яндекс (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 35
.epf 13,47Kb
18.01.16
35
.epf 13,47Kb Скачать
YandexDiskExReports82.epf 16
.epf 15,70Kb
18.01.16
16
.epf 15,70Kb Скачать
YandexDisk.epf 23
.epf 12,12Kb
18.01.16
23
.epf 12,12Kb Скачать
Версия для Вэб-клиента. 2
.epf 13,38Kb
26.10.15
2
.epf 13,38Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Allexey (alex_4x) 15.04.15 08:50
А под 8.2 возможно запилить такое ? под жирненького клиента ?
2. Канат Джумадылов (Fox-trot) 15.04.15 09:18
3. Матвей Кудашкин (Patriot1S) 15.04.15 10:29
(1) alex_4x, Работаю на этим. Но платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1. А по моим данным в корпоративном секторе мало кто еще перешел.
Для JSON в 8.2 есть обработки.
4. Александр Крынецкий (echo77) 15.04.15 21:00
Совсем не понял на кой черт эта обработка?
Приложение дли виндовс Яндекс.Диск не решает ли те же задачи?
5. eugenie zheludkov (eugeniezheludkov) 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) 16.04.15 09:31
(4) echo77, (5) eugeniezheludkov Предполагается что сама разработка, тестирование, контроль версий осуществляется на другом компьютере с локальной копией Яндекс.Диск.
А Обработка предназначена для быстрого обновления своих наработок у Клиента!!! Не по одной, запоминая в уме что надо обновить а сразу все вместе по нажатию одной кнопки.
m.s.moiseev; baton_pk; +2 Ответить
7. Дмитрий Котельников (kotlovD) 16.04.15 09:48
Связку с ЯД можно подсмотреть в 1С:Деньги, там доступ по логину и паролю, без токенов и ограничений по периоду их использования. Кстати, и в веб клиенте работает.
8. Яков Коган (Yashazz) 16.04.15 12:46
Меня всегда забавляла наивная уверенность некоторых специалистов в двух вещах - наличии устойчивого 4G в масштабах всея Земли, и сохранности-безопасности данных, хранимых где-то в сети. Эта уверенность обычно резко проходит после двух-трёх встреч с рукояткой жизненных граблей)
SunShinne; moolex; Ali1976; PrinzOfMunchen; gutentag; Sitex; qwinter; nihfalck; +8 Ответить 3
9. Матвей Кудашкин (Patriot1S) 17.04.15 09:48
(7) kotlovD, Из статьи на Инфостарте http://infostart.ru/public/304373/
"Чтобы получить access_token мы должны предварительно настроить веб-сервер и опубликовать на нем http-сервис ЯндексДеньги."
10. Матвей Кудашкин (Patriot1S) 17.04.15 14:22
(8) Yashazz,
Ну по поводу безопасности в 1С я удержусь высказываться.
А вот проверить работу обработки на 3G сети по телефона - проведу тест. И другим предлагаю предоставлять информацию.
11. Матвей Кудашкин (Patriot1S) 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) 23.04.15 23:29
(12) gonzo111, Так первоначальная идея сделать аналог Yandex disk, переродилась в идею обновления в отдельной базе 1C своих внешних доработок.
14. Матвей Кудашкин (Patriot1S) 28.04.15 18:51
Исправил ошибку если есть поддиректории в Yandex Disk. Их не берем в таблицу.
15. Матвей Кудашкин (Patriot1S) 22.10.15 22:17
Заметил что одним запросом Yandex получает только 20 элементов. Это значение по умолчанию. Если у Вас больше файлов в директории это введет к ошибкам. Поставил 100. Думаю хватить. Или лучше сделать параметром?
16. Матвей Кудашкин (Patriot1S) 23.10.15 17:39
Иногда для скачивания Yandex выдает 302 и перенаправляет на другой ресурс. Доделываем.
17. Ийон Тихий (cool.vlad4) 23.10.15 18:07
(8) Yashazz, ты слишком критичен. для любой разработки можно найти условия , где она либо бессмысленна, либо не будет работать. автор же не писал, что она будет работать везде. если не будет интернета, она точно работать не будет, например.
и что там с безопасностью хранения обработок в яндекс диске? (я подозреваю насколько мне позволяют мои скромные знания, что в яндекс в плане безопасности куда лучше чем в 1с и тем не менее в конфах предусмотрен обмен по почте, которая кстати на том же яндекс может быть, и ничего)
18. Александр Шакмаев (shakmaev) 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) 28.10.15 09:11
С самого начала не доверял облачным сервисам и не доверяю. Главным образом по тому, что пока есть Интернет, или они работают - все ОК. А как только нет сети или облако "полетело", так все, приехали. В этом плане нет ничего надежнее личной флешки или жесткого диска. Поэтому логичнее настроит обновление и проверку с них. К тому же об уровне безопасности всех этих облаков тоже пока не все известно. Крадут же фотки знаменитостей.
20. Игорь Фелькер (Brawler) 30.11.15 15:45
ЦЕННИКИ НЕ ГУМАННЫЕ!!!
Нужно было бы мне лично, не качал бы вовсе!
21. Влад Влад (surikateg) 04.12.15 12:44
(19) apostal86, облачные клиенты в папку на жестком диске файлы кладут. Отсутствие интернета повлияет только на оперативную синхронизацию.
22. Hromov Anton (hromovanton) 10.12.15 13:49
(19) apostal86, НЕ согласен. Если нет интернета, то все данные и так у вас на флешке. А вот если ваша флешка сгорит, то вот тут облачные данные спасут вас от "расстрела". Проверенно на личном опыте, правда на dropbox. День работы был спасен только благодаря облачному сервис !!!
23. Матвей Кудашкин (Patriot1S) 21.01.16 14:31
Уменьшил стоимость скачивания.
24. Павел С (pavel_pss) 26.09.16 18:07
Спасибо за статью, очень полезно.
25. Павел С (pavel_pss) 26.09.16 18:10
Может подскажешь, я сделал все до твоей строки "И показывают пустое окошко с Вашим ключом (token). Он действителен в течение года." и получил этот длинный токен, Но при вставке его в обработку пишет что не авторизован. Что я не сделал.
26. Матвей Кудашкин (Patriot1S) 11.10.16 11:43
(25) pavel_pss, Сложно сказать удаленно, попробуй точно скопировать все знаки ключа и нажми кнопку обновить.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа