Процедура СозРасходки()
// Создаем новый документ "Расходная накладная"
Накладная = СоздатьОбъект("Документ.РасходнаяНакладная");
Накладная.Новый();
ДатаДок = РабочаяДата(Контекст, "Запись");
Файл = СоздатьОбъект("Текст");
Файл.Открыть("C:\inetpub\ftproot\Kontakt\ExpenseInvoice_24-10-2024_17-29-19.txt");
// Чтение данных из первых строк файла
НаименованиеСклада = СокрЛП(Сред(Файл.ПолучитьСтроку(1), Найти(Файл.ПолучитьСтроку(1), ":") + 1));
НаименованиеФирмы = СокрЛП(Сред(Файл.ПолучитьСтроку(2), Найти(Файл.ПолучитьСтроку(2), ":") + 1));
НаименованиеКонтрагента = СокрЛП(Сред(Файл.ПолучитьСтроку(3), Найти(Файл.ПолучитьСтроку(3), ":") + 1));
// Поиск фирмы по наименованию из файла
спрФирма = СоздатьОбъект("Справочник.Фирмы");
спрФирма.НайтиПоНаименованию(НаименованиеФирмы);
Если спрФирма.Код <> 0 Тогда
Накладная.Фирма = спрФирма.ТекущийЭлемент();
Иначе
Сообщить("Фирма не найдена: " + НаименованиеФирмы);
КонецЕсли;
// Поиск контрагента по наименованию из файла
спрКонтрагент = СоздатьОбъект("Справочник.Контрагенты");
спрКонтрагент.НайтиПоНаименованию(НаименованиеКонтрагента);
Если спрКонтрагент.Код <> 0 Тогда
Накладная.Контрагент = спрКонтрагент.ТекущийЭлемент();
Иначе
Сообщить("Контрагент не найден: " + НаименованиеКонтрагента);
КонецЕсли;
// Получаем место хранения по наименованию из файла
спрСклад = СоздатьОбъект("Справочник.МестаХранения");
спрСклад.НайтиПоНаименованию(НаименованиеСклада);
Если спрСклад.Код <> 0 Тогда
Накладная.Склад = спрСклад.ТекущийЭлемент();
Иначе
Сообщить("Склад не найден: " + НаименованиеСклада);
КонецЕсли;
// Чтение строк файла
ЧтениеПродолжается = 1; // Инициализация флага продолжения чтения
ТекущаяСтрока = "";
Пока ЧтениеПродолжается = 1 Цикл
// Читаем строку из файла
СтатусЧтения = Файл.ПолучитьСтроку(ТекущаяСтрока);
// Проверяем, были ли строки в файле
Если СтатусЧтения = 0 Тогда
ЧтениеПродолжается = 0; // Если строк больше нет, выходим из цикла
ИначеЕсли ТекущаяСтрока = "" Тогда
Продолжить; // Пропускаем пустые строки
Иначе
// Обработка строки с артикулом
Если Лев(ТекущаяСтрока, 8) = "Артикул:" Тогда
Артикул = СокрЛП(Сред(ТекущаяСтрока, 9));
// Читаем строку с количеством
СтрокаКоличество = "";
Файл.ПрочитатьСтроку(СтрокаКоличество);
Если Лев(СтрокаКоличество, 10) = "Количество:" Тогда
Количество = Число(СокрЛП(Сред(СтрокаКоличество, 11)));
// Добавление строки в табличную часть
СтрокаТЧ = Накладная.Товары.Добавить();
СтрокаТЧ.Артикул = Артикул;
СтрокаТЧ.Количество = Количество;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Записываем документ
Накладная.Записать();
Сообщить("Расходная накладная успешно создана!");
КонецПроцедуры
Суть вопроса просьба помощи. конечная цель процедуры работать автономно и постоянно искать файл и создавать на его основе документ в зависимости от названия документа. На данный момент я застопорился в двух моментах: первый если контрагент прописан в подкаталоге он не находится для вставки. Вторая не выходит для документа вытянуть данные об товаре. Если кому поможет вставлю пример как выглядит файл на основе которого заполняется документ. Буду благодарен любой помощи.
Пример документа:
Склад: "склад"
Фирма: "название фопа"
Контрагент: "контрагент"
Товары:
Артикул: 3
Количество: 1
Артикул: 11782
Количество: 2
и т.д.(по количеству товара)