Всем привет!
Тем, кто постоянно дорабатывает внешние отчеты и обработки, удобно использовать внешнее хранилище этих данных. И если раньше это были переносные диски, то теперь очень удобно пользоваться сервисами типа 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/. Он позволяет потестировать ваши запросы еще до момента написания кода.
Разобрался во всем этом и написал обработки.
Последнее время использую обработку только для быстрого обновления отчетов и обработок в реальных базах. Именно такой режим оказался самым востребованным.