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