Обработка пригодится, если у вас много баз, в которых ежедневно нужно обновлять курсы валют. И чтобы не запускать каждую базу в отдельности, вводить в них логины и пароли, достаточно запустить всего одни ярлык на рабочем столе — в результате последовательно запустится каждая база без предложения ввести пароль, обновит валюты и закроется. А если и ярлык запускать не хочется, поможет «Планировщик заданий» Windows — все информационные базы будут обновлять валюты по заданному расписанию.
Принцип работы с обработкой:
- Обработка запускается в любой типовой конфигурации (либо с интегрированной БСП) на платформе 8.2, но для каждой конкретной базы есть возможность выбрать платфому 8.1 .
- На странице «Список валют» выбирираются валюты, которые будут загружаться во всех базах.
- На странице «Файловые базы» выбираются базы присутствующие в списке баз 1С для текущего профиля — базы выбираются кнопкой выбора в каждой строко в колонке «Псевдоним». После выбора базы, автоматически вставляется полный путь к базе в соответвующее поле («Путь к базе»), но никто не мешает путь к базе написать вручную. Затем необходимо указать логин и пароль для запуска выбранной информационной базы. И если не устраивает «Путь к файлу для запуска платформы», указанный вверху формы, можно еще указать для конкретной базы путь в поле «(необязательно) Файл запуска платформы».
- На странице «Клиент серверные базы» все аналогично предыдущей странице, только после выбора базы из списка, автоматически заполнятся поля в колонках «Имя сервера» и «Имя информационной базы».
- Страница «Лог загрузок» полностью оправдывает свое название.
- После нажатия кнопки «Создать ярлык на рабочем столе», соответственно создается ярлык «Автозагрузка курсов валют». Запуск ярлыка приводт к последовательному запуску каждой выбранной базы, загрузке выбранных валют. После загрузки валют каждая база закрывается.
«Планировщик заданий» в Windows поможет автоматизировать и запуск этого ярлыка по произвольному расписанию, если в итоге надоест каждый день его запускать — как в итоге надоело и мне 🙂 - После создания ярлыка, повторное открытие обработки позволит редактировать текущие настройки, а не создавать настройки автозгрузки валют «с нуля».
Обратите внимание: Если база, в которой будет производиться загрузка валюты, запускается в режиме управляемого приложения — алгоритм программы предполагает, что в указанную информационную базу внедрена «Библиотека стандартных подсистем», а в частности справочник «Валюты», в котором присутствует галочка «Загружается из Интернета» (например в 1С:Предприятие 3.0). В режиме обычного приложения алгоритм на БСП не расчитывает 🙂
В любом случаи, если где-то не заработает, напишите какие конфигурации и какой режим запуска приложения.
{ВнешняяОбработка.АвтозагрузкаВалют.МодульОбъекта(341)}: Ошибка при вызове метода контекста (Прочитать)
ТекстФайлСЛогом.Прочитать(ПутьКФайлуСЛогом);
по причине:
Ошибка доступа к файлу ‘C:UsersAdministratorDocuments\_execute_valutalog’
Права все есть, каталоги которые просит есть, но все равно ошибка… Конфигурация БП 2.0.53.8
вроде разобрался, видимо определение профиля для Windows Server 2012 по другому должно быть прописано, прописал путь к профилю как C:Temp
(2) constspb, Спасибо за информацию, что в винсервере 2012 есть отличия с определением путей к профилям. К сожалению под рукой нет 2012 сервера — как посмотрю, что там изменилось, подправлю — тем более, что давно руки чешутся папку _execute_valuta прятать еще «дальше», чем в «Мои документы».
Ошибка при запуске в обычном режиме приложения
{ВнешняяОбработка.АвтозагрузкаВалют.МодульОбъекта(350)}: Ошибка при вызове метода контекста (Записать)
ТекстФайлСЛогом.Записать(ПутьКФайлуСЛогом);
по причине:
Каталог не обнаружен ‘C:UsersTestDocuments\_execute_valutalog’
Это связанно с тем, что не хватает проверки ПроверитьКаталогСФайламиНастроек(); при открытии обработки
Т.е. в Модуль «ФормаОбычная» в процедуру «ПриОткрытии()» нужно добавить проверку — «ПроверитьКаталогСФайламиНастроек();»
Получиться так —
Далее, если базы клиент-серверные, будет следующая ошибка —
{ВнешняяОбработка.ЗагрузкаКурсовВалют.МодульОбъекта(268)}: Получение элемента по индексу для значения не определено
МассивДанныхСледующейБазы.Вставить(0,ЭлементМассива[Ном-1][5]);
Это связано с ошибкой в макете обработки. Его нужно выгрузить, добавить расширение .epf и изменить следующие строки в модуле макета —
на
Покрайне мере я думаю автор имел ввиду именно это 🙂
Далее нужно макет загрузить обратно в обработку и сохранить её.
Кстати, лучше использовать следующую конструкцию при проверке текущей базы —
Иначе если одна база называется — ServerBuh_Copy, а вторая база — ServerBuh — то тогда будет вечный цикл.
Обработка обновлена.
(5) chetirepda, спасибо за комментарии. Алгоритм по клиент-серверным базам писал вслепую, поэтому, когда на работе запустил, тоже наткнулся на ошибку с массивом МассивДанныхСледующейБазы — исправил точно также.
Твои замечания по поводу ПроверитьКаталогСФайламиНастроек() и ПозицияПоиска применил — надеюсь не против.