Задача - нужно выгружать из 1с 7.7 Торговля и Склад прайс-лист автоматически каждое утро.
Нужно чтобы прайс на диске регулярно обновлялся в формате excel. Собираюсь этого достичь через шедулер винды.
Буду пробовать делать как описано здесь - http://forum.infostart.ru/forum14/topic6108/
Проблема в том, что я не знаю как написать обработку которая просто бы выгружала прайс в определенную папку.
Очень просто. Сохраняешь из конфигурации штатный отчет "ПечатьПрайса" как обработку (правой кнопкой мыша в дереве конфигурации).
В получившейся обработке в ПриОткрытии заполняешь нужные параметры формирования прайса и вызываешь процедуру Сформировать().
В конце процедуры Сформировать() заменяешь Таб.Показать() на Таб.Записать() с нужными параметрами.
Обеспечиваешь открытие этой обработки автоматически в нужной базе и в нужное время.
Рано обрадовался - на стороне 1с все получилось, а вот зашедулить пока никак. Никто не знает как теперь можно 1с запускать без залогиненного пользователя. Win 2003..
(4) А что именно не получается? У меня есть только одна проблема - если прописваешь запуск из планировщика в режиме Предприятие, а не Конфигуратор, то, по непонятной причине, запускается очень неустойчиво. Помогает держать открытым терминальную сессию от того пользователя, от которого запускается 1С. Открытой и отключенной.
Вот я хотел без терминальной сессии обойтись. Но для 1с видимо обязательно нужен какой-то рабочий стол, куда она будет выводить то, что происходит на экране, иначе никак. Запускаю так -
содержимое bat файла -
C:\Program Files\1Cv77\BIN\1CV7s.exe" enterprise /DC:\1cBases\UploadTest /NAuto /P22011983
Если запускаю сам bat - все отрабатывает - открывается 1с, отрабатывает и потом сам закрывается.
Но если этот bat задаю в планировщик, а раз выхожу из сессии, то он не работает.
(8)Зачем залогиниваться? Вот скажем когда на 2003 создаешь задание на выполнение в нем в самом (при создании) указывается логин и пароль пользователя, под кем задача будет выполняться. У меня так штатным сбособом ночью и переиндексация работает и архивация и списание не актуальных резервов. Главное выполнять все именно на сервере где терминал установлен. В момент запуска задачи абсолютно не важно залогинен на сервере какой-либо пользователь или нет!
А по вопросу выгрузки..
Когда то была схожая задача..
Решал так:
1. В 1С создал для этого нового пользователя.
2. В глобальном модуле в процедуре приНачалеРаботыСистемы прогписал условие что если это нужный пользователь то запускать нужную обработку.
3. В обработке в процедуре приОткрытии сразу делал запуск процедуры сформировать. Только в конце вместо Показать делал запись в екселевский файл напрямую.
4. Записывал файл и сразуже давал клманду на завешение работы 1С.
5. Писал батник на запуск 1С от имени этого пользователя и в назначении заданий винды запуск в определенное время