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

15.05.17

Интеграция - WEB-интеграция

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
YandexDiskExReports83.epf
.epf 13,47Kb
64
64 Скачать (1 SM) Купить за 1 850 руб.
YandexDiskExReports82.epf
.epf 15,70Kb
25
25 Скачать (3 SM) Купить за 2 450 руб.
YandexDisk.epf
.epf 12,12Kb
42
42 Скачать (2 SM) Купить за 2 150 руб.
Версия для Вэб-клиента.
.epf 13,38Kb
10
10 Скачать (1 SM) Купить за 1 850 руб.

Всем привет!

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

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

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

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

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

В некоторых обработках (//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. Возьмем отсюда (//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/. Он позволяет потестировать ваши запросы еще до момента написания кода.

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

Последнее время использую обработку только для быстрого обновления отчетов и обработок в реальных базах. Именно такой режим оказался самым востребованным.

yandex disk яндекс диск yandex-disk

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17888    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20017    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14493    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1530    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex_4x 87 15.04.15 08:50 Сейчас в теме
А под 8.2 возможно запилить такое ? под жирненького клиента ?
2. Fox-trot 163 15.04.15 09:18 Сейчас в теме
3. Patriot1S 101 15.04.15 10:29 Сейчас в теме
(1) alex_4x, Работаю на этим. Но платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1. А по моим данным в корпоративном секторе мало кто еще перешел.
Для JSON в 8.2 есть обработки.
4. echo77 1907 15.04.15 21:00 Сейчас в теме
Совсем не понял на кой черт эта обработка?
Приложение дли виндовс Яндекс.Диск не решает ли те же задачи?
6. Patriot1S 101 16.04.15 09:31 Сейчас в теме
(4) echo77, (5) eugeniezheludkov Предполагается что сама разработка, тестирование, контроль версий осуществляется на другом компьютере с локальной копией Яндекс.Диск.
А Обработка предназначена для быстрого обновления своих наработок у Клиента!!! Не по одной, запоминая в уме что надо обновить а сразу все вместе по нажатию одной кнопки.
Devi; m.s.moiseev; dmpas; +3 Ответить
5. eugeniezheludkov 45 16.04.15 03:14 Сейчас в теме
чет я совсем не вижу преимуществ такой разработки, читаю статью и чувствую, что автор не слышал про ГИТ и множество других систем контроля версий.
GIT позволяет делать тоже самое плюс версионирование плюс командная разработка плюс история изменений видны сразу, версии можно откатывать и плюшка от гитхаба это issues считай трекер задач. Вот к примеру мой тестовый репо: https://github.com/znsoft/external1CProgs/tree/master/src

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

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

ПС: хотя любая программа имеет право на жизнь :) извиняюсь если кого задел своим сообщением
Korolev; Quasar; EMelihoff; YPermitin; 1cWin; PrinzOfMunchen; Yashazz; +7 Ответить
7. kotlovD 88 16.04.15 09:48 Сейчас в теме
Связку с ЯД можно подсмотреть в 1С:Деньги, там доступ по логину и паролю, без токенов и ограничений по периоду их использования. Кстати, и в веб клиенте работает.
9. Patriot1S 101 17.04.15 09:48 Сейчас в теме
(7) kotlovD, Из статьи на Инфостарте http://infostart.ru/public/304373/
"Чтобы получить access_token мы должны предварительно настроить веб-сервер и опубликовать на нем http-сервис ЯндексДеньги."
8. Yashazz 4794 16.04.15 12:46 Сейчас в теме
Меня всегда забавляла наивная уверенность некоторых специалистов в двух вещах - наличии устойчивого 4G в масштабах всея Земли, и сохранности-безопасности данных, хранимых где-то в сети. Эта уверенность обычно резко проходит после двух-трёх встреч с рукояткой жизненных граблей)
SunShinne; moolex; Ali1976; PrinzOfMunchen; gutentag; Sitex; qwinter; nihfalck; +8 Ответить
10. Patriot1S 101 17.04.15 14:22 Сейчас в теме
(8) Yashazz,
Ну по поводу безопасности в 1С я удержусь высказываться.
А вот проверить работу обработки на 3G сети по телефона - проведу тест. И другим предлагаю предоставлять информацию.
11. Patriot1S 101 20.04.15 21:38 Сейчас в теме
(8) Yashazz, Не знаю, что Вы имеете ввиду,но по 3G телефону с задержкой все работает
17. cool.vlad4 2 23.10.15 18:07 Сейчас в теме
(8) Yashazz, ты слишком критичен. для любой разработки можно найти условия , где она либо бессмысленна, либо не будет работать. автор же не писал, что она будет работать везде. если не будет интернета, она точно работать не будет, например.
и что там с безопасностью хранения обработок в яндекс диске? (я подозреваю насколько мне позволяют мои скромные знания, что в яндекс в плане безопасности куда лучше чем в 1с и тем не менее в конфах предусмотрен обмен по почте, которая кстати на том же яндекс может быть, и ничего)
12. gonzo111 21.04.15 11:36 Сейчас в теме
не понял какие проблемы с синхронизации через WebDav ,подождать в обработке на 5 сек дольше уже стало проблемой?
заводим ящик расшариваем папку ему с доступом на чтение, сетевой диск подключаем и отключаем в обработке и без всяких страданий с токенами
net use U: https:\\webdav.yandex.ru /User:help@sss.net password /persistent:no
13. Patriot1S 101 23.04.15 23:29 Сейчас в теме
(12) gonzo111, Так первоначальная идея сделать аналог Yandex disk, переродилась в идею обновления в отдельной базе 1C своих внешних доработок.
14. Patriot1S 101 28.04.15 18:51 Сейчас в теме
Исправил ошибку если есть поддиректории в Yandex Disk. Их не берем в таблицу.
15. Patriot1S 101 22.10.15 22:17 Сейчас в теме
Заметил что одним запросом Yandex получает только 20 элементов. Это значение по умолчанию. Если у Вас больше файлов в директории это введет к ошибкам. Поставил 100. Думаю хватить. Или лучше сделать параметром?
16. Patriot1S 101 23.10.15 17:39 Сейчас в теме
Иногда для скачивания Yandex выдает 302 и перенаправляет на другой ресурс. Доделываем.
18. shakmaev 347 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. zhuravlev_as 437 28.10.15 09:11 Сейчас в теме
С самого начала не доверял облачным сервисам и не доверяю. Главным образом по тому, что пока есть Интернет, или они работают - все ОК. А как только нет сети или облако "полетело", так все, приехали. В этом плане нет ничего надежнее личной флешки или жесткого диска. Поэтому логичнее настроит обновление и проверку с них. К тому же об уровне безопасности всех этих облаков тоже пока не все известно. Крадут же фотки знаменитостей.
21. surikateg 04.12.15 12:44 Сейчас в теме
(19) apostal86, облачные клиенты в папку на жестком диске файлы кладут. Отсутствие интернета повлияет только на оперативную синхронизацию.
22. hromovanton 7 10.12.15 13:49 Сейчас в теме
(19) apostal86, НЕ согласен. Если нет интернета, то все данные и так у вас на флешке. А вот если ваша флешка сгорит, то вот тут облачные данные спасут вас от "расстрела". Проверенно на личном опыте, правда на dropbox. День работы был спасен только благодаря облачному сервис !!!
20. Brawler 458 30.11.15 15:45 Сейчас в теме
ЦЕННИКИ НЕ ГУМАННЫЕ!!!
Нужно было бы мне лично, не качал бы вовсе!
23. Patriot1S 101 21.01.16 14:31 Сейчас в теме
Уменьшил стоимость скачивания.
24. pavel_pss 290 26.09.16 18:07 Сейчас в теме
Спасибо за статью, очень полезно.
25. pavel_pss 290 26.09.16 18:10 Сейчас в теме
Может подскажешь, я сделал все до твоей строки "И показывают пустое окошко с Вашим ключом (token). Он действителен в течение года." и получил этот длинный токен, Но при вставке его в обработку пишет что не авторизован. Что я не сделал.
26. Patriot1S 101 11.10.16 11:43 Сейчас в теме
(25) pavel_pss, Сложно сказать удаленно, попробуй точно скопировать все знаки ключа и нажми кнопку обновить.
27. webester 26 16.05.17 10:38 Сейчас в теме
(0)Нет возможности хранить код, на гитхабе. Приходится страдать такой ерундой(вообще мысль хорошая, я уже думал в этом направлении, но как то не додумал).
28. AlX0id 16.05.17 15:45 Сейчас в теме
29. Patriot1S 101 16.05.17 16:24 Сейчас в теме
(27) Еще раз по порядку - хранить разработку и версии большого пути можете где угодно. Github, SVN или все что Вам нравиться. Тем более что устанавливая Yandex диск на компьютере работает с ней как с локальным файлом.

Но если Вам нужно постоянно обновлять свои обработки в рабочей базе, один раз настраиваем и обновляем одним нажатием все обработки.
Теперь понятно?
30. webester 26 16.05.17 19:22 Сейчас в теме
(29)Просто синхронизация. Я понял. Я просто сейчас постоянно чешу репу на тему "где свежая версия обработки? у меня или у клиента? И если у клиента, то у какого?" Уже стали возникать всякие неприятные моменты. Для синхронизации есть целая куча решений и ваша проблема началась с того, что ваш любимый инструмент стал недоступен на работе. Повторюсь, сама по себе мысль отличная. Но чего то не хватает... пока не могу понять чего. Обработку скачаю на досуге обязательно, может придумаю чего нить. У нас с вами разные цели. Вы сидите на одном месте, у меня везде разные рабочие места, разное окружение, все и всегда разное. Гит отличная штука, и решил бы все вопросы, но не таскать же его на флешке... Или таскать?
31. azhilichev 214 18.05.17 11:41 Сейчас в теме
Зачем WinHttpRequest.5.1, если есть HTTPЗапрос и HTTPСоединение?
32. webester 26 19.05.17 21:04 Сейчас в теме
(31)Он же пишет:
2. SSL. Так как платформа 8.2 не поддерживает шифрование SSL, а поддержка включена с платформы 8.3.1, то для работы с SSL необходимо исользование платфомы не ниже 8.3.1.

Придется использовать ActiveX: ADODB.Stream, WinHttp.WinHttpRequest.5.1 и ограничиться только Windows решением. Решение получается тяжеловатым. Требует MDAC 2.5 и выше.
33. webester 26 24.05.17 07:36 Сейчас в теме
(0)Скачал обработку, получил токен, нажимаю "Синхронизировать", сервер отвечает 401, в чем может быть проблема? В отладчике видно, что в запросе передается указанный мной токен.
34. webester 26 24.05.17 08:27 Сейчас в теме
Нашел проблему, поле слишком короткое, токен не влазил целиком из-за того, что поле оформлено как пароль сразу не бросилось в глаза, что не хватает 4х символов.
35. webester 26 26.05.17 09:18 Сейчас в теме
Допинал обработку. Она практически нерабочая была. Какие отметил моменты:
1. Надо поправить длину реквизита. Так как видимо токены бывают разной длины и мой не влезал.
2. Непонятно, зачем вы используете реквизиты объекта а не формы это же неудобно?
3. Почему реквизиты на английском языке? Очень неудобно постоянно переключаться.
4. Нет смысла использовать конструкцию "Попытка" для того, что бы убедиться в наличии\отсутствии ключа у структуры. Гораздо проще и оптимальнее использовать метод "Свойство".
5. Лучше вынести механизм создания запроса в отдельную функцию, чем копипастить код по всей обработке. У меня получилось вот так:
&НаКлиенте
Функция ПолучитьОтветЯД(Урл, ИмяСайта = "cloud-api.yandex.net", НеФормироватьОтвет = Ложь)
	ssl1 = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
	HttpСоединение = Новый HTTPСоединение(ИмяСайта, 443,,,,,ssl1);
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	Заголовки.Вставить("Authorization", "OAuth "+объект.token);
	HttpЗапрос = Новый HTTPЗапрос(Урл, Заголовки);
	Если НеФормироватьОтвет Тогда
		Возврат Новый Структура("Соединение,Запрос", HttpСоединение, HttpЗапрос);
	Иначе	
		Возврат HttpСоединение.Получить(HttpЗапрос);
	КонецЕсли; 
	
КонецФункции
Показать

6. Из-за ошибки распарсивания строки с ссылкой, файл не скачивался. Переписал теперь функция выглядит вот так:
	Сайт = СтрЗаменить(Ссылка, "https://", ""); // убираем https://
	Поз = СтрНайти(Ссылка, "yandex.ru") + 1;
	Ресурс = Прав(Сайт, СтрДлина(Сайт)-Поз);
	Сайт = Лев(Сайт, Поз-1);
	мОтвет = ПолучитьОтветЯД(Ресурс, Сайт);
	Если мОтвет.КодСостояния = 200 Тогда
		Данные = мОтвет.ПолучитьТелоКакДвоичныеДанные(); 
		Данные.Записать(ЛокальныйКаталог+"\"+ИмяФайла);
	ИначеЕсли мОтвет.КодСостояния = 302 Тогда //Если перенаправляют - получаем оттуда	
		ПолучитьФайлПоССылке( мОтвет.Заголовки.получить("Location"), ИмяФайла);	
	КонецЕсли;
Показать

7. После того, как файл скачался, все равно у системы не получалось его сохранить, так как она пыталась его сохранить по пути который указан в реквизите объекта "ЛокальныйКаталог" которого не было.
8. Процедура "ИспользуемМодальность" нигде не используется.
Скорее всего она у вас была зашита куда то, вы ее вырезали сделали, что бы она стала запускаться, но почему то как работает проверять не стали. В целом я подумал, что она будет использоваться практически в таком виде. То есть прям именно в таком виде я ее и встрою в конфигурацию и буду оттуда открывать обработки. То есть обработки будут храниться локально на диске у каждого пользователя. Поправил переменную локальный каталог, добавил открытие формы обработки двойным щелчком по ней. В целом как заготовка подошло идеально. Спасибо :)
Вопрос: если я исправленную версию с указанием ссылки на эту публикацию выложу, вы будете против?
ybatiaev; sikuda; vikad; +3 Ответить
36. Patriot1S 101 14.08.20 09:33 Сейчас в теме
(35) Спасибо большое, просто у нас после того как написал по безопасности отрубили Yandex.disk полностью и все наработки пришлось остановить.
На не нашел у Вас новую версию обработки с удовольствием поддержал бы!
37. webester 26 03.09.20 08:31 Сейчас в теме
(36)Проект закрыл обработку выкинул :) не могу найти где она. Если бы вы ответили хотя бы на полгода раньше... Если найду, выложу)
Оставьте свое сообщение