Програмно найти файлы на диске и записать в документ
Добрый день, уважаемые форумчане.
Нужен совет так как сам маленько запутался.
1. Найти файлы на диске по реквезиту документа ПриходМатериалов (К примеру по реквезиту ТТН: ИН-2010 (тип строка))
2. Записать найденный файл в документе ПриходМатериалов.
на диске C:\files\ИН-2010.pdf есть скан документа
как в обработке можно реализовать эту задумку.
Нужен совет так как сам маленько запутался.
1. Найти файлы на диске по реквезиту документа ПриходМатериалов (К примеру по реквезиту ТТН: ИН-2010 (тип строка))
2. Записать найденный файл в документе ПриходМатериалов.
на диске C:\files\ИН-2010.pdf есть скан документа
как в обработке можно реализовать эту задумку.
По теме из базы знаний
Найденные решения
(20) значит все же Объект. Тогда передавать нужно Ссылку от этого объекта.
Только не понятно, зачем получаете объект. Для добавления присоединенного файла объект документа не нужен, в нем ничего изменять не требуется и файл записывается не в него.
РаботаСФайлами.ДобавитьФайлСДиска(ТекДок.Ссылка, НайденныйФайл.ПолноеИмя);Только не понятно, зачем получаете объект. Для добавления присоединенного файла объект документа не нужен, в нем ничего изменять не требуется и файл записывается не в него.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) есть такой метод, который возвращает некий массив файлов - НайтиФайлы(аргументы). Там маска файла и что-то еще, но не помню что - я это не запоминаю, ибо в синтаксис-помощнике все есть. Во всяких там более прошаренных языках возвращается или итератор, или используется конструкция поиска первого файла и последующих.
(16)
Ошибку выдает такую:
Проверка мутабельных значений на заполненность не поддерживается
РаботаСФайлами.ДобавитьФайл в этом моменте выдает ошибку. что я не так делаю можете подсказать?
НайденныеФайлы = НайтиФайлы("C:\files", Док.ТТН+".*");
Для Каждого НайденныйФайл Из НайденныеФайлы
// найденный файл добавляете в присоединенные файлы
КонецЦикла;
Для Каждого НайденныйФайл Из НайденныеФайлы
// найденный файл добавляете в присоединенные файлы
КонецЦикла;
Ошибку выдает такую:
Проверка мутабельных значений на заполненность не поддерживается
КонецЕсли;
НайденныеФайлы = НайтиФайлы("C:\1CTemp", ТекДок.ТТН+".*");
Для Каждого НайденныйФайл Из НайденныеФайлы Цикл
ДвоичныеДанные = Новый ДвоичныеДанные(НайденныйФайл.ПолноеИмя);
АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ПараметрыФайла = Новый Структура();
ПараметрыФайла.Вставить("Автор", ПараметрыСеанса.ТекущийПользователь);
ПараметрыФайла.Вставить("ВладелецФайлов", ТекДок);
ПараметрыФайла.Вставить("ИмяБезРасширения", НайденныйФайл.ИмяБезРасширения);
ПараметрыФайла.Вставить("РасширениеБезТочки", НайденныйФайл.Расширение);
ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное");
ПараметрыФайла.Вставить("ГруппаФайлов");
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла,Справочники.Файлы);
ТекДок.Записать();
ПоказатьРаботаСФайлами.ДобавитьФайл в этом моменте выдает ошибку. что я не так делаю можете подсказать?
Прикрепленные файлы:
(17)
Справочники.Файлы это СправочникМенеджер, а ожидается АдресФайлаВоВременномХранилище.
Должно быть так:
Далее.
ПараметрыФайла.Вставить("ВладелецФайлов", ТекДок);
и
Текдок.Записать() взаимоисключающие действия. Тек док это Ссылка или Объект? Если Ссылка, то ее невозможно записать. Если Объект, то его невозможно включать в ПараметрыФайла.
И можно упростить код:
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла,Справочники.Файлы);
Справочники.Файлы это СправочникМенеджер, а ожидается АдресФайлаВоВременномХранилище.
Должно быть так:
РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресВХранилище);Далее.
ПараметрыФайла.Вставить("ВладелецФайлов", ТекДок);
и
Текдок.Записать() взаимоисключающие действия. Тек док это Ссылка или Объект? Если Ссылка, то ее невозможно записать. Если Объект, то его невозможно включать в ПараметрыФайла.
И можно упростить код:
// ТекДок это Ссылка.
НайденныеФайлы = НайтиФайлы("C:\1CTemp", ТекДок.ТТН+".*");
Для Каждого НайденныйФайл Из НайденныеФайлы Цикл
РаботаСФайлами.ДобавитьФайлСДиска(ТекДок, НайденныйФайл.ПолноеИмя);
КонецЦикла;
// записывать ТекДок не нужно.
(20) значит все же Объект. Тогда передавать нужно Ссылку от этого объекта.
Только не понятно, зачем получаете объект. Для добавления присоединенного файла объект документа не нужен, в нем ничего изменять не требуется и файл записывается не в него.
РаботаСФайлами.ДобавитьФайлСДиска(ТекДок.Ссылка, НайденныйФайл.ПолноеИмя);Только не понятно, зачем получаете объект. Для добавления присоединенного файла объект документа не нужен, в нем ничего изменять не требуется и файл записывается не в него.
(4) Ну вот же! Намного понятнее стало! Надо просто найти файлы, имя которых содержит некоторый набор символов (который в свою очередь где-то в БД есть).
// Потом еще с записью файла помучаетесь, судя по тому пути, где ищете файл.
// Потом еще с записью файла помучаетесь, судя по тому пути, где ищете файл.
(4)
а вас не смущает формат pdf vs xlsx vs xml ?
т.е. ваша 1с - высокий интеллект - вы ей пдф -она его в понятный для нее формат
а потом еще и обработка занесет это в документ
сомневаюсь, что у вас такая умная конфигурация.
найти файл с диска и загрузить его в документ
Записать найденный файл в документе
я правильно понял вашу технологию ?
а вас не смущает формат pdf vs xlsx vs xml ?
т.е. ваша 1с - высокий интеллект - вы ей пдф -она его в понятный для нее формат
а потом еще и обработка занесет это в документ
сомневаюсь, что у вас такая умная конфигурация.
найти файл с диска и загрузить его в документ
Записать найденный файл в документе
я правильно понял вашу технологию ?
(10)
Давайте попробую обьяснить в 1С есть документ
ПриходМатериалов в реквизите которого имеется ТТН: ИН-0001 (тип строка).
Имеется возможность прикреплять файлы в документы
Так вот как мне сделать так чтобы с жесткого диска искать файл по ТТН.
и если искомый найден то загрузить найденный документ в 1С именно к этому документу по торому делался поиск.
прикрепить файл и занести данные из документа пдф в документ 1с для меня не одно и тоже
возможно не понял задачи
возможно не понял задачи
Давайте попробую обьяснить в 1С есть документ
ПриходМатериалов в реквизите которого имеется ТТН: ИН-0001 (тип строка).
Имеется возможность прикреплять файлы в документы
Так вот как мне сделать так чтобы с жесткого диска искать файл по ТТН.
и если искомый найден то загрузить найденный документ в 1С именно к этому документу по торому делался поиск.
(12) Он хочет по документу приходной накладной найти в каталоге файл пдф с именем как реквизит ТТН. Тогда так:
дальше у файла есть ПолноеИмя, получаешь его двоичные данные и пиши куда хочешь
Файлы = НайтиФайлы(КаталогПоиска,"*.pdf",ВключатьПоискВПодкаталогах);
Если Файлы.Количество()>0 Тогда
НужныйФайл = Файлы[0];
КонецЕсли;
дальше у файла есть ПолноеИмя, получаешь его двоичные данные и пиши куда хочешь
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот