gifts2017

"Синхронизатор" для обновления внешних обработок в базах 1С 8

Опубликовал Сергей Большаков (axae) в раздел Обработки - Менеджеры внешних отчетов

Обработка предназначена для сравнения файлов, хранимых в базе и внешних файлов с целью визуализации необходимости обновления.

Решил тоже что-нибудь анонсировать.

Краткое описание:

Обработка предназначения для визуализации необходимости обновления данных приемника на основании данных источника. Это например если на FTP регулярно появляется новый файл внешней печатной формы для бухгалтерии (у нас чаще всего для Альфа-Авто появляется новая версия загрузки в бух...) и нужно регулярно заходить на FTP и проверять актуальность того, что сейчас в базе 1С. Либо (для меня например, как разработчика) видеть необходимость обновления файла общедоступной внешней печатной формы на FTP, так как изменяю ВПФ только локально и иногда забываю выложить его в доступ.

Обработка позволяет создать список таких "связей", что с чем сравнивать. Сравнивать между собой в обработке можно файлы на FTP, файлы на дисках и двоичные данные в некотором реквизите некоторого элемента справочника (справочника внешних обработок и печатных форм).

Проверка осуществляется двоичным сравнением, либо по размеру (с FTP иногда долго скачивать и проверять двоично большие файлы). Проверка выводит результаты доступности и сравнения файлов, подкрашиванием своих строк.

 

Дальнейшее развитие:

1. Кнопка Применить должна синхронизировать приемник с источником. Опасно, но надо.

2. Сохранение/загрузка данных обработки в файл.

3. Возможность синхронизации данных элемента справочника даже удаленной базы по внешнему соединению

4. Возможность суффиксации и префиксации файлов.

P.S.  Спасибо  sbv2005 за последние две идеи!

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

Наименование Файл Версия Размер Кол. Скачив.
Обработка
.epf 28,38Kb
20.01.10
71
.epf 28,38Kb 71 Скачать

См. также

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

Комментарии

1. Сергей Большаков (axae) 20.01.10 14:40
Не могу, не добавляются картинки на закладке Изображения :cry:
2. Артур Аюханов (artbear) 22.01.10 09:25
Кроме основного анонса (одно предложение) больше ничего не понятно :(
3. Сергей Большаков (axae) 22.01.10 15:49
4. Евгений Люлюк (Evg-Lylyk) 22.01.10 16:22
Интересная тема обновление обработки через FTP как пример очень даже ничего, а как инструмент не очень, все будут тупо заливать ВСЕ. Версия = ДатаВремя так что можно не делать БинарноеСравнение было бы здорово если бы выпрос ставился как "Автоматическое обновление внешней обработки (самой себя)" с решением важных проблем: подмена самой себя и сопутствующих файлов + вывод окна прогресса обновления
5. Сергей Большаков (axae) 23.01.10 16:00
Evg-Lylyk, поясните пожалуйста, что значит "все будут тупо заливать ВСЕ"?

А "Автоматическое обновление внешней обработки (самой себя)" - это т.е. обработка, которая может это делать (моя пока не может), будучи запущенной заменит двоичные данные, хранящиеся в некотором своем реквизите на двоичные данные из файла? При этом внешней обработкой мы называем элемент некого справочника ВнешниеОбработки, так?

"Версия = ДатаВремя" - что означает, приведите пример пожалуйста. Версия = ДатаВремя означает, что необходимо где-то хранить информацию, какая ДатаВремя у двоичных данных, хранящихся в реквизите с типом ХранилищеЗначения. Если такое организовать, то безусловно, такое возможно и будет включено в следующую версию Синхронизатора. Для файлов на FTP и на локальных дисках можно применить метод ДатаИзменения(), чтобы получать самый последний файл. Но для этого необходимо хранить маску файла, чтобы. Я например обновления бухгалтерии выкладываю как "20091223 Бухгалтерия предприятия 1.6.21.3.cf". Для такого файла конечно надо маску "*Бухгалтерия предприятия*.cf" и при анализе брать подходящий файл с самой поздней датой изменения.

P.S. не люблю прогресс бар, вывод "Выполнение... 456/5000" мне больше по душе :-[
6. Константин Носов (NosovK) 15.12.11 06:42
а можно как нибудь прикрутить к этой обработке выполнение по регламентному заданию?
Чтобы к примеру у всех клиентов общие обработки во всех базах обновлялись с одного внутреннего ftp, без вмешательства пользователей?
Раз в сутки к примеру.
7. Сергей Большаков (axae) 15.12.11 08:57
Два года разработке... Конкретно обработку по-моему нельзя запускать по регламентному задания, потому что регламентные работают на стороне сервера, а обработка имеет всякие формы, диалоги с пользователем, да и внешнюю обработку из файла по регламенту из 1С вроде не запустить.

Но можно, чтобы обновлялись, сейчас бы я это сделал так:
1. Новый справочник "Произвольные обработки" для хранения текста кода.
2. Новый регистр "Произвольные настройки пользователей" для хранения настроек.
3. Регламентное задание "Произвольная обработка" для запуска участка кода в конфигурации, который с помощью Выполнить() запустит код из указанного элемента справочника произвольных обработок.
4. Обработка управления настройками: сервер, логин, пароль, каталог... А может даже например и какой-нибудь список файлов и/или элементов справочника внешних обработок для синхронизации.

Сам код нужно будет отладить сначала просто в кнопке Выполнить в любой только что созданной внешней обработке - чтобы он был самостоятельным, т.е. мог выполняться на стороне сервера и наверное желательно, чтобы не вызывал никаких дополнительных функций и процедур, не имел команд обработки ошибок (чтобы в консоли было видно, что за ошибка... в крайнем случае можно добавить какой-нибудь вывод в журнал или еще один добавленный регистр сведений "Универсальный лог") и диалога с пользователем.
Этот прием можно использовать и для некоторых других задач, связанных с регламентными заданиями - позволяет не изменять конфигурацию, если нужно добавить еще задачу по регламенту.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа