Ошибка при вызове конструктора ftpсоединение
В этой статье представлены способы обхода ошибок интернет-соединений, которыми я пользуюсь на практике.
В моем случае проблема решалась редактированием файла C:\WINDOWS\system32\drivers\etc\hosts "192.168.0.1 доменноеимясайта" на клиенте или на сервере - там, где работает регламентное задание. После этого заработали встроенные интернет-соединения 1С:
Через компоненту dialmail подключение проходит нормально, но заставить его работать не удалось:
28.03.13 13:44:01.500 FTP: Подключаемся к сокету
28.03.13 13:44:01.515 FTP: К сокету подключились успешно
28.03.13 13:44:01.671 FTP 28.03.13 13:44:01.671 FTP --> USER 931013677
28.03.13 13:44:01.687 FTP 28.03.13 13:44:01.687 FTP --> PASS *****
28.03.13 13:44:01.703 FTP 28.03.13 13:44:01.703 FTP --> TYPE I
28.03.13 13:44:01.718 FTP 28.03.13 13:44:01.718 FTP --> STRU F
28.03.13 13:44:01.734 FTP 28.03.13 13:44:01.734 FTP --> REST 0
28.03.13 13:44:01.734 FTP 28.03.13 13:44:01.750 FTP --> REST 1
28.03.13 13:44:01.750 FTP 28.03.13 13:44:01.765 FTP --> REST 0
28.03.13 13:44:01.765 FTP 28.03.13 13:44:01.781 FTP --> PWD
28.03.13 13:44:01.781 FTP 28.03.13 13:44:02.968 FTP --> PWD
28.03.13 13:44:02.984 FTP 28.03.13 13:44:02.984 FTP --> PASV
28.03.13 13:44:03.000 FTP28.03.13 13:44:03.000 FTP --> LIST
при попытке загрузить файл на сервер идут ошибки сокета 10054
Вот перечень основных принципиальных вопросов при решении практической задачи использования интернет-соединения с помощью внешнего клиента, на которые оказалось важно обратить внимание.
Про winscp помогла публикация Выгрузка файлов на SFTP //infostart.me/public/145717/
На сервере может быть отключена расшифровка dns адреса (как в моем случае), поэтому вместо доменного имена сайта - цифровой ай пи адрес.
Текст процедуры, которая у меня реально работает (перезаписываю файл во временном локальном каталоге и заливаю на сервер):
Вот то, что относится ко внешнему ftp клиенту:
Команда для запуска скрипта:
open ftp://**************:**************@********************* // после собаки ай пи адрес, а не доменное имя
option transfer ascii
rm discount.txt
put D:\temp\discount.txt
close
exit
Результат выполнения этого скрипта:
В базе 1С 8.2 настроен обмен по регламентным заданиям. Регламентные задания идут, а обмен - нет. В мониторе обмена, на вкладке "история" можно увидеть описание ошибки:
Ошибка при подключении к FTP : 62.хх.55.ххх ! Ошибка при вызове конструктора (FTPСоединение): Ошибка работы с Интернет: ftp://62.хх.55.ххх:21Couldn't connect to server: Ошибка работы с Интернет: ftp://62.хх.55.ххх:21Couldn't connect to server
Техническая информация:
Ошибка при подключении к FTP : 62.хх.55.ххх ! : Ошибка при вызове конструктора (FTPСоединение): Ошибка работы с Интернет: ftp://62.хх.55.ххх:21Couldn't connect to server: Ошибка работы с Интернет: ftp://62.хх.55.ххх:21Couldn't connect to server
Но, при ручном запуске (нажатии кнопки "выполнить обмен") к фтп подключается, ошибки никакой нет, обмен проходит. Подскажите, в чем может быть проблема?
Используется прокси сервер. Отключение/включение галки "пассивное фтп соединение" не помогает. Необходимые права для обмена имеются.
п.с.: проблема появилась недавно, всё работало и вдруг перестало. может быть с сервером ФТП что нибудь не так?
Спасибо всем откликнувшимся!
(1) подскажите как проверить? Какие порты должны быть открыты? Почему тогда при ручном запуске все в порядке?
админу подзатыльник и пусть разрешит пользователю, от имени которого крутится сервер предприятия ходить на фтп
столкнулся с подобной проблемой. база файловая. не устанавливается фтп соединение, хотя вручную всё работает
(6) у файловой нет понятия сервер.
(5) пользователь под кем запущена 1с сервер и под кем "идет обмен" совпадают?
(6) у меня не обмен, но используется фтп-соединение. само регламентное задание запускается как надо, но доходя до создания объекта фтп-соединения, вылетает с ошибкой
(7) Вы сейчас начнете меня ругать, ну да ладно. ) Пользователь под кем запущен сервер 1с это тот который стоит в списке служб напротив запущенной службы 1с?
точнее у меня создание фтп-соединения в попытке, и выскакивает исключение, причем ОписаниеОшибки() выдаёт ""
(11) проверь как писал mikecool и Axel2009 под кем заходит на фтп сервер? Есть ли у этого когото права туда лазить? Попробуй пассивный/активный режимы. Про свой случай отпишусь завтра.
у пользователя на фтп доступ есть, я ведь в ручном режиме когда запускаю обработку с теми же параметрами соединение создается и нужный файлик помещается на фтп без проблем, а вот в регламентном задании не подключается.
Нашел консоль заданий, решил посмотреть, что покажет. сходу увидел, что не был определен пользователь задания, которое мне нужно, установил. посмотрю дальше.
теперь выполняется. долго правда, но выполняется. одно осталось непонятным: где нужно пользователя регламентного задания устанавливать, ели без консоли задания
(14) Пользователь для выполнения регламентных заданий, на сколько я помню, устанавливается где то в настройках программы.
По своему вопросу, поменял пользователя от имени которого запускается служба 1С (запустил от имени администратора) и всё взлетело. Всем большое спасибо.
(14) вроде в файловой не бывает регламентных заданий. Вроде самому надо запускать планировщиком под пользователем, который в константах прописан как пользователь для выполнения регламентных заданий.
Закачать по ftp на сайт документи через прокси-сервер
нада закачать по ftp на сайт документи через прокси-сервер посоветуйте програми
Доступ к компьютеру который подключен к интернету через прокси сервер
У меня компьютер подключен к интернету через прокси сервер которая находится в моем локальные.
нашёл решение сам: приложение Proxifier 2.8 Portable Rus вполне решило эту проблему, проста в настройке, при запущенном Proxifier 1С без проблем прошла через прокси!
Проблема с проксей решается очень просто. В 1С 8.х можно создать файлик inetcfg.xml, который кладется в папку . \1cv82\conf. Параметры - на ИТС или в инете смотри. Даже примеры лежат. Это есть правильное решение с точки зрения 1С.
Добавлено через 39 минут
. Если знаешь как создать обмен данными между конфигурациями помоги как сможешь. как настроить этот самый FTP-ресурс.
Все зависит от того, какой у тебя интернет. Если косячный - то намучаешься, особенно если объемы обмена большие. Будет обмен слетать постоянно. Если нормальный то ч/з FTP то самое. Очень удобно, когда режим работы 1С клиент-серверный, но в принципе можно и в файловом тоже, только геморроя чуть больше. Для построения системы обмена нужны следующие шаги:
На главном узле (там где считаете база центральная) создаете подчиненные узлы в справочнике Планы обменов.
Создаете пользователя, под которым будет выполняться обмен.
Генерируете образы начальные для узлов.
Кидаете по эл.почте (терминалу, фтп, файлообменнику, почтой, курьером) данный образ и разворачиваете его в нужном магазине. Там также создаете пользователей (в том числе и под которым обмен будет выполняться) - в образе они не переносятся. Устанавливаете префиксы для баз.
А вот установка сервера FTP зависит от возможностей железа/финансов и настройки зависят от конкретной проги, используемой для генерации сервера.
На каждом узле 1С настраиваете файл inetcfg.xml
Планируете по времени и создаете регламентные задания по обмену.
Запускаете регламентные задания.
Собственно все. Так вот мы делали. Если базы уже работают то геморрой особый и пути два:
1) объединяете все базы в одну
2) пишете собственный обмен с каждым из узлов.
Если инет нормальный, то по моему проще вообще терминальный доступ к центральной базе сделать и огород не городить. Можно решение на основе Win2k8 или Win2k3+Citrix. C этим решением геморроя у конечных пользователей меньше будет. Иначе с коллизиями замучаетесь или с разработкой регламента работы: это уже не от 1С а от реальной жизни - нужно срочно контрагентов, номенклатуру вносить, в разных магазинах накладные по разному читают и т.п., а обмен дискретный по времени. Если есть вариант без обмена - воспользуйтесь им.
И еще, если всетаки на обмен решитесь, подумайте о VPN - тогда FTP нафиг не нужен.
Как правило, ошибка возникает при фоновом обмене данными между базами 1С или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.
Текст: «Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса».
Решение — в регистрации библиотеки comcntr.dll из каталога программы для корректного вызова COMConnector.
Подготовительные действия
- отключите службу Агента сервера 1С:Предприятия и программы, возможно использующие регистрируемую DLL;
- если ранее использовалась библиотека устаревшей версии, удалите регистрацию comcntr.dll, запустив команду вызова regsvr32 с ключом /u.
Подходы к решению
В командной строке с правами Администратора выполните команду:
2. Переустановка платформы с внесением исправлений
- запускаем консоль «Службы компонентов»;
- добавляем новый элемент, переходим «Компьютеры» — «Мой компьютер» — из списка выбираем «Приложения COM+»;
- выбираем «Создать» — «Приложение»;
- в Мастере установки выбираем второй вариант «Создать новое приложение», в поле «Введите имя нового приложения:» вводим «V83COMConnector», «Способ активации» устанавливаем «Серверное приложение», нажимаем «Далее»;
- выбираем учетную запись под которой запускается приложение, по умолчанию — «Текущий (вошедший в систему) пользователь»;
- на этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» нажимаем «Далее», а затем «Готово».
В ветке только что созданного приложения переходим в подветку «Компоненты» и создаем компонент:
- в контекстном меню выбираем «Создать» — «Компонент»;
- кликаем по первому варианту «Установка новых компонентов»;
- в открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть»;
- нажимаем «Далее» и «Готово».
Обратите внимание: после установки измените свойства объекта. Для этого переходим к ветке V83COMConnector:
- открываем свойства созданного компонента, переходим в ветку V83COMConnector — «Свойства»;
- на вкладке «Безопасность», в «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений»;
- в «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:» — «Неограниченный»;
- нажимаем «Применить» — «ОК».
Полная версия со снимками экранов — в статье на Дзен-канале.
Например, во время синхронизации возникает ошибка Обмен данными.ОбменЗарплата3Бухгалтерия3.Отправка данных со следующим содержимом:
Причины возникновения ошибки -2147221005(0x800401F3)
Данная ошибка относится к регулярно встречающимся ошибкам 1С, и фиксируется у многих пользователей. Единственного и эффективного рецепта её решения не существует, так как она может иметь уникальную основу, и вызывается особенностями программного кода в конкретной системе.
Тем не менее к числу наиболее популярных причин ошибки -2147221005(0x800401F3) относятся следующие:
Обновление конфигурации до последней версии
Вопрос обновления конфигурации 1С на примере «1С:Бухгалтерия 3.0» я рассматривал ранее. Поэтому здесь не имеет смысла описывать данный процесс.
Запускайте 1С с правами администратора
Убедитесь, что вы запускаете систему под учётной записью администратора, а не ограниченного в правах «Гостя» или аналога.
Измените код программы
В некоторых случаях код программы может устареть и не соответствовать текущей версии 1С. Эффективным решением ошибки -2147221005(0x800401F3) является замена строки кода:
После указанной замены проблема может быть решена.
Довольно часто ошибка возникает после обновления платформы, когда во время установки новой версии не регистрируется компонента comcntr.dll .
Для регистрации компоненты вручную необходимо выполнить в PowerShell от имени администратора следующие команды:
C:\Windows\SysWOW64\regsvr32 /u "c:\Program Files\1cv8\8.3.17.1851\bin\comcntr.dll" или C:\Windows\SysWOW64\regsvr32 /u "c:\Program Files (x86)\1cv8\8.3.17.1851\bin\comcntr.dll"
C:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.17.1851\bin\comcntr.dll" или C:\Windows\SysWOW64\regsvr32 "c:\Program Files (x86)\1cv8\8.3.17.1851\bin\comcntr.dll"
Читайте также: