Не получается передать файл через фтп.

1. user2063627 08.03.24 10:30 Сейчас в теме
Не получается передать файл через фтп (Речь идет о передачи подведомственным учреждением отчетности Учредителю). В 1С выдает ошибку "индекс находится за пределами массива"
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2033930 08.03.24 12:14 Сейчас в теме
Продолжайте наблюдать...
3. Borisych 503 08.03.24 23:00 Сейчас в теме
Функция ПодключитьсяКFTPСерверу(АдресСервера, Порт, Пользователь, Пароль, Каталог, ПассивноеСоединение = Истина)
// 1C@bk62.biz GAB 2021.09.04 {
		
	Соединение = Новый FTPСоединение(
		АдресСервера,
		Порт,
		Пользователь,
		Пароль,
		Неопределено, 
		ПассивноеСоединение, 
		60, 
		Неопределено
	);
	
	пКаталог = СокрЛП(Каталог);
	пКаталог = СтрЗаменить(пКаталог, "\", "/"); // Путь нужно указывать только с прямыми слешами вместо обратных, например: /TEST/ 
	Если НЕ ПустаяСтрока(пКаталог) Тогда 
		Соединение.УстановитьТекущийКаталог(пКаталог);
	КонецЕсли;
	
	Возврат Соединение;
	
// 1C@bk62.biz GAB 2021.09.04 }
КонецФункции
Показать
4. Borisych 503 08.03.24 23:02 Сейчас в теме
		Если FTPИзображенияПодключенУспешно И ЗначениеЗаполнено(Выборка.ПрисоединенныйФайл) И НЕ Выборка.ПрисоединенныйФайл.ПометкаУдаления Тогда
Попытка
			УжеВыгруженные = ТЗИзображений.НайтиСтроки(Новый Структура("ПрисоединенныйФайл,Выгружен", Выборка.ПрисоединенныйФайл, Истина));
			Если УжеВыгруженные.Количество() = 0 Тогда 
				ИмяФайлаИзображения = Выборка.НаименованиеФайла + "." + Выборка.Расширение;
				//Если Объект.ВыгружатьИзображения Тогда 
				УжеЗагружен = FTPИзображения.НайтиФайлы(ИмяФайлаИзображения);
				//УжеЗагружен = Новый Массив();
				Если УжеЗагружен.Количество() = 0 Тогда 
					// скопируем наш файл изображения на FTP и в локальный каталог
					ИмяФайлаИзображенияВЛокальномКаталоге = 
						ЛокальныйКаталогОбмена + ?(Прав(ЛокальныйКаталогОбмена, 1) = "\", "", "\") +
						?(НЕ ПустаяСтрока(ПодКаталогИзображенийЛокальный), ПодКаталогИзображенийЛокальный + "\", "") +
						ИмяФайлаИзображения;
					ФайлК = Новый Файл(ИмяФайлаИзображенияВЛокальномКаталоге);
					Если НЕ ФайлК.Существует() Тогда                    
						ПДФ = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
						ДФ = РаботаСФайлами.ДанныеФайла(Выборка.ПрисоединенныйФайл, ПДФ);
						Если НЕ ПустаяСтрока(ДФ.ПолноеИмяФайлаВРабочемКаталоге) Тогда 
							КопироватьФайл(ДФ.ПолноеИмяФайлаВРабочемКаталоге, ИмяФайлаИзображенияВЛокальномКаталоге);
						ИначеЕсли НЕ ПустаяСтрока(ДФ.СсылкаНаДвоичныеДанныеФайла) Тогда 
							ДД = ПолучитьИзВременногоХранилища(ДФ.СсылкаНаДвоичныеДанныеФайла);
							ДД.Записать(ИмяФайлаИзображенияВЛокальномКаталоге);
						Иначе 
							аопр = 7 / 0;
						КонецЕсли;
					КонецЕсли;
					Попытка
						FTPИзображения.Записать(ИмяФайлаИзображенияВЛокальномКаталоге, ИмяФайлаИзображения);
						//ТекстСообщений = ТекстСообщений + Символы.ПС + ТекущаяДата() + ": Успешно отправлен на FTP файл " + ИмяФайлаИзображения;
					Исключение
						//ТекстСообщений = ТекстСообщений + Символы.ПС + ТекущаяДата() + ": ОШИБКА!!! НЕ УДАЛОСЬ отправить на FTP файл " + ИмяФайлаИзображения;
					КонецПопытки;
				//КонецЕсли;
				КонецЕсли;
				СтрокаТЗ.Фото = СтрокаТЗ.Фото + ?(ПустаяСтрока(СтрокаТЗ.Фото), "", РазделительФото) + ИмяФайлаИзображения;
				// сохраним информацию - Фото уже учтено
				Выгруженные = ТЗИзображений.НайтиСтроки(Новый Структура("ПрисоединенныйФайл", Выборка.ПрисоединенныйФайл));
				Если Выгруженные.Количество() = 0 Тогда 
					//Сообщить("ОШИБКА!!! Такого быть не должно!!! шыарп98урп");
					//sldjfh = 7 / 0;
				Иначе 
					Для Каждого СтрВ Из Выгруженные Цикл 
						СтрВ.Выгружен = Истина;
					КонецЦикла;
				КонецЕсли;
			Иначе 
				// пропускаем - данное фото уже учтено в итоговой таблице
			КонецЕсли;
Исключение
    //Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;			
		КонецЕсли;
Показать
5. user1880116 09.03.24 09:00 Сейчас в теме
(4) Какой превосходный кусочек goushi!
6. user2063627 09.03.24 10:38 Сейчас в теме
Спасибо, попробую настроить. Если у меня не получится, могу к вам обратиться за помощью, чтобы дистанционно настроить?
7. user2033930 09.03.24 20:32 Сейчас в теме
(4) Попытка внутри Попытки - это шедевр. И главное - непонятно зачем тут даже первая присутствует...
8. user856012 13 10.03.24 00:38 Сейчас в теме
(7)
непонятно зачем тут даже первая присутствует...
Очевидно же: "Попытка - не пытка!"

Поэтому чем больше - тем приятнее лучше.
9. user1880116 10.03.24 02:35 Сейчас в теме
(8)
"Попытка - не пытка!"

Если Не Пытка Тогда
    Попытка
        ...
Иначе 
    аопр = 7 / 0;
КонецЕсли;


Видно же, что 1Сник изобретает оператор "Возврат". Вдруг получится?
nekiilik1c; +1 Ответить
10. user2063627 11.03.24 15:29 Сейчас в теме
Есть возможность по удаленке настроить 1С, что бы он передавал файлы через ФТП?
11. user2033930 11.03.24 21:18 Сейчас в теме
(10) Конечно есть. Подключайтесь по удалёнке (RDP, например) к конфигуратору базы, и пишите свой программный код для обмена по FTP.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот