Имя: Пароль:
1C
 
Как запустить обработку из регламентного задания?
,
0 VID1234
 
04.08.22
15:09
Здравствуйте. Подскажите пожалуйста, как можно выкрутиться, ежемесячно нужно обрабатывать файлы эксель и загружать их в базу, все процедуры в обработке выполнены в форме, для COM соединения с экселем на клиенте и получения адреса на клиенте, если запускаю с команды то все хорошо работает, но теперь хочу автоматизировать, создал регламентное задание, в ней ссылаюсь на общий серверный модуль и выполняю следующее:
Обработка = Обработки.ОбработкаФайловСписком.Создать();
Обработка.ОбработатьИЗагрузить()

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

    Попытка
            Excel= Новый COMОбъект("Excel.Application");
            Excel.DisplayAlerts = 0;
        Исключение      
            //Предупреждение("MS Excel не загружен!");
            Возврат;
        КонецПопытки;
                Попытка
            Книга = Excel.Workbooks.Open(СокрЛП(ТекФайл));  
        Исключение
1 mikecool
 
04.08.22
15:11
переписать на К-С, не использовать КОМ, если его нет
2 Garykom
 
гуру
04.08.22
15:14
переписать нафуй
3 Смотрящий
 
04.08.22
15:15
Позовите погромиста
4 Serg_1960
 
04.08.22
15:17
Так, как не указаны некоторые подробности, то: на ИТС есть обработка ВыполнениеРегламентныхЗаданийНаКлиенте.epf, которая позволяет выполнять регламентные задания на клиентской машине. требуется запуск толстого клиента в режиме обычного приложения.
Источник: "Выполнение регламентных заданий на клиенте" https://its.1c.ru/db/metod8dev/content/5918/hdoc
5 Garykom
 
гуру
04.08.22
15:21
(4) нафуй это костылище
6 VID1234
 
04.08.22
15:37
(1) Здравствуйте. А что лучше использовать вместо КОМ, двоичные данные через временное хранилище? Или есть что-то лучше?
7 VID1234
 
04.08.22
15:38
(4) Здравствуйте. Сейчас гляну, спасибо. А каких
подробностей Вам не хватает?
8 Мимохожий Однако
 
04.08.22
15:45
(1) Что такое "К-С"?
9 YFedor
 
04.08.22
15:45
Для сбора данных из Эксель хорошо работает АДО
10 Garykom
 
гуру
04.08.22
15:46
(8) Клиент-Сервер
11 Garykom
 
гуру
04.08.22
15:47
(0) > ежемесячно нужно обрабатывать файлы эксель и загружать их в базу

Откуда берутся файлы экселя?
12 VID1234
 
04.08.22
17:32
(11) Здравствуйте. С папки, можно хоть с сервера, хоть с клиента, сейчас пока с клиента я через диалог открываю каталог, а нужно автоматизировать, прочитать ТД не подходит, из-за того, что файл эксель имеет расширение xslm
13 VID1234
 
04.08.22
17:34
(9) Здравствуйте.  это что?
14 Garykom
 
гуру
04.08.22
17:35
(12) И какую автоматизацию хотите?
Сделайте две штуки:
1. Преобразует на клиенте выбранные .xslm в нормальные .xlsx читаемые через ТабДок и складывает в папочку
2. Грузит на сервере автоматически .xlsx
15 VID1234
 
04.08.22
17:36
(9) Об_Конект = Новый COMОбъект("ADODB.Connection"); видимо это? А файлы xslm
16 VID1234
 
04.08.22
17:41
(14) Мне нужно, чтобы по расписанию 1С обрабатывала все файлы эксель, где данные уже загружены, то игнор иначе загружает в регистр. Преобразовать с помощью самого экселя, так какой смыл автоматизации, если мне вручную нужно будет пересохранять файлы с другим расширением. у меня там макросы!
17 Мимохожий Однако
 
04.08.22
17:45
(14) По п.1 есть пример кода? У меня схожая ситуация. По почте приходят вложения с файлами Excel. Часть вложений приходят с кривым форматом, которые табличный документ либо не читает, либо читает с искажениями. Пересохранение через Excel в ручном режиме неудобен, т.к. изначально всё крутится через регламентные задания.
18 Garykom
 
гуру
04.08.22
19:06
(17) п.1 не надо привязываться к 1С
любой способ от посадить оператора до неких конвертеров
даже чтение через Новый COMОбъект("Excel.Application") на клиенте и запись в нормальном виде в ТабДок пойдет
2 + 2 = 3.9999999999999999999999999999999...