|
|||
План счетов
20.03.13 — 10:19 |
х.з. в чем дело, права есть.
Путь2 = «\Trmsrv30test_1s»; а если добавляю: МассивНайденных = НайтиФайлы(Путь2,».txt»);
регламентное задание не запускается |
||
Галахад
1 — 20.03.13 — 10:23 |
Может так? |
||
План счетов
2 — 20.03.13 — 10:31 |
(1) и так тоже не работает,
задание не выполняется, в консоли пишет: тупик какой то, х.з. че ей надо |
||
ДенисЧ
3 — 20.03.13 — 10:33 |
правей на каталог не хватает? |
||
hhhh
4 — 20.03.13 — 10:34 |
(2) баян, сервер 1с под каким пользователем запускается, у него должны быть права на папку \Trmsrv30 |
||
План счетов 5 — 20.03.13 — 10:37 |
(4) знаю что баян.
ща делаю загрузку, из этого же каталога даже если я его перед этим создал, вернее не я а сервер регламентным заданием |
- Главная
- —
- Форум
- —
- ТЕХПОДДЕРЖКА
- —
- БОНЛИОН — Бонусная система для 1С
- —
- Обмен по FTP
vep Пользователь Сообщений: 7 |
Помогите, пожалуйста. Не можем настроить выгрузку файлов обмена по ftp. Соединение проверяем — все нормально. Каталог на сервере где сайт прописан. Но файл выгрузки в папку на сайт не сохраняется. В проводнике Windows или Total Commander — все нормально ровно с теми же настройками. Все соединяется и прописанный в поле Каталог путь отрабатывает. |
покажите скрин настроек в 1С |
|
vep Пользователь Сообщений: 7 |
#3
28.06.2021 09:19:57
https://yadi.sk/i/nFJ51v5kDjfrrQ |
||
вы похоже указываете лишние папки на каталог FTP поэкспериментируйте разными вариантами Пример как должно быть |
|
vep Пользователь Сообщений: 7 |
#5
28.06.2021 10:07:29
Мы эксперементировали уже по-всякому. Не работает. Без слэшей был последний вариант потому что в прилагаемой инструкции на скриншоте именно так прописано. |
||
vep Пользователь Сообщений: 7 |
#6
28.06.2021 10:08:23
Попробую. Но если смотреть в ftp-клиенте, то путь к папке именно такой как на скриншоте. |
||
vep Пользователь Сообщений: 7 |
С урезанным адресом выдает ошибку: Ошибка при соединении с FTP : /upload/1c_exchange_bonuses/ ! {ОбщийМодуль.APPLIX_RU_СМ_FTP.Модуль(76)}: Ошибка при вызове метода контекста (НайтиФайлы): Ошибка аутентификации при доступе к ресурсу: ftp://magellanbooks.ru:21 Access denied to remote resource |
пришлите доступ к вашему ftp на support@applix.ru в письме укажиет ссылку на эту тему |
|
vep Пользователь Сообщений: 7 |
#9
30.06.2021 12:37:46 Я уже сам проверил. Следующий код с использованием вышеуказанных параметров отлично работает:
Так что проблема точно в вашем закрытом модуле. К тому же попутно нашел ещё один баг. В коде команды «проверить соединение» в нижеприведенной строке отсутствует параметр «ПассивноеСоединение» из-за чего соединение проверяется минуты две. Возможно и в закрытом модуле похожие огрехи имеются. Проверьте.
Изменено: vep — 30.06.2021 12:38:57 |
||||
Александр Носов Администратор Сообщений: 359 |
#10
22.07.2021 15:00:54 Работа в FTP переведена на служебный модуль. Обновление уже можно заказать, отправьте запрос на наш email |
ПОСЛЕДНИЕ СООБЩЕНИЯ
Сейчас на форуме (гостей: 51)
Всего зарегистрированных пользователей: 2220
Приняло участие в обсуждении: 367
Всего тем: 822
В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.
Исправляем ситуацию
Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.
Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;
Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.
Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.ВерсияДанных КАК ВерсияДанных,
| Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
| Номенклатура.Родитель КАК Родитель,
| Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| Номенклатура.Предопределенный КАК Предопределенный,
| Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа ";
НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
КонецЦикла;
1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.
В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.
Добрый день!
По какой-то причине перестал работать обмен сайта на ocstore 3 с 1С Розница 8. Не устанавливается соединение с сайтом, при попытке обмена выдаёт такие сообщения:
Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль.
Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль,
а также настройки подключения к Интернет.
{ОбщийМодуль.ПроцедурыОбменаССайтом(427)}: Ошибка при вызове метода контекста (Получить): Ошибка доступа к файлу ‘export/neoseo_exchange1c.php?type=catalog&mode=checkauth’: Ошибка работы с Интернет: доступ запрещен (403). <!doctype html><html lang=»ru» class=»is_adaptive» data-panel-url=»https://vip194.hosting.reg.ru/manager»><head><meta charset=»UTF-8″><meta name=»viewport» content=»width=device-width,initial-scale=1″><meta name=»robots» content=»noindex»><title>В доступе на страницу отказано</title><style media=»all»>@keyframes moveClouds{0%{background-position:100vw 35%}to{background-position:-105vw 35%}}@keyframes moveCityClouds{0%{background-position:100vw 35%,bottom,center bottom 33vh}to{background-position:-105vw 35%,bottom,center bottom 33vh}}.b-page{display:flex;flex-direction:column;width:100%;min-width:320px;height:100%;padding:60px 0 0;margin:0;font:12px Arial,Helvetica Neue,Helvetica,FreeSans,sans-serif;background:#fff;color:#364364;-webkit-tap-highlight-color:transparent}html:not(.is_adaptive) .b-page{overflow-x:hidden}@media (min-width:1024px){.is_adaptive .b-page{overflow-x:hidden}}.b-page_type_parking{display:block!important}.b-page_type_error-page{padding:0}html:not(.is_adaptive) .b-page_menu-additi: Ошибка работы с Интернет: доступ запрещен (403)
Соединение с сайтом не установлено.
Выгрузка товаров отменена.
Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль.
Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль,
а также настройки подключения к Интернет.
{ОбщийМодуль.ПроцедурыОбменаССайтом(427)}: Ошибка при вызове метода контекста (Получить): Ошибка доступа к файлу ‘export/neoseo_exchange1c.php?type=catalog&mode=checkauth’: Ошибка работы с Интернет: доступ запрещен (403). <!doctype html><html lang=»ru» class=»is_adaptive» data-panel-url=»https://vip194.hosting.reg.ru/manager»><head><meta charset=»UTF-8″><meta name=»viewport» content=»width=device-width,initial-scale=1″><meta name=»robots» content=»noindex»><title>В доступе на страницу отказано</title><style media=»all»>@keyframes moveClouds{0%{background-position:100vw 35%}to{background-position:-105vw 35%}}@keyframes moveCityClouds{0%{background-position:100vw 35%,bottom,center bottom 33vh}to{background-position:-105vw 35%,bottom,center bottom 33vh}}.b-page{display:flex;flex-direction:column;width:100%;min-width:320px;height:100%;padding:60px 0 0;margin:0;font:12px Arial,Helvetica Neue,Helvetica,FreeSans,sans-serif;background:#fff;color:#364364;-webkit-tap-highlight-color:transparent}html:not(.is_adaptive) .b-page{overflow-x:hidden}@media (min-width:1024px){.is_adaptive .b-page{overflow-x:hidden}}.b-page_type_parking{display:block!important}.b-page_type_error-page{padding:0}html:not(.is_adaptive) .b-page_menu-additi: Ошибка работы с Интернет: доступ запрещен (403)
Логин и пароль, ссылка на файл обмена те же что были недавно когда все работало. Программист 1С говорит надо почистить какие-то временные файлы на хостинге. В логах модуля при этом пусто. Что можно сделать, ошибка из-за самой 1С скорее всего?
-
Добрый день!
Платформа 8.2.19.76.
Есть обработка. при нажатии на кнопку должна вывести имя папки.
При запуске выдает Ошибку: {Форма.Форма.Форма(602)}: Ошибка при вызове метода контекста (GetFolder): Произошла исключительная ситуация (0x800a004c). Помогите разобраться, где я ошибаюсь.Вот код:
&НаКлиенте Процедура Файлы(Команда) ФайлыСервер(); КонецПроцедуры &НаСервере Процедура ФайлыСервер() Попытка FSO = Новый COMОбъект("Scripting.FileSystemObject"); File = FSO.GetFolder("D:Files"); Сообщить(File.Name); //сообщить имя папки Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 559
- Баллы:
- 204
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.685
- Симпатии:
- 1.011
- Баллы:
- 204
Как вариант:
Если не файловый вариант работы, то сервер 1С ничего не знает про путь на локальной машине пользователя. -
Попробовала. Выводит «нет папки», хотя папка есть.
&НаКлиенте Процедура Файлы(Команда) ФайлыСервер(); КонецПроцедуры &НаСервере Процедура ФайлыСервер() Попытка ИмяПапки = "D:Files"; FSO = Новый COMОбъект("Scripting.FileSystemObject"); Если FSO.FolderExists(ИмяПапки) Тогда Сообщить("Есть папка"); Иначе Сообщить("Папки нет"); КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры
— Объединение сообщений, 29 янв 2015 —
У меня Клиент-серверный вариант работы. И как тогда быть?
-
Вообще я начала изучать FileSystemObject, потому что мне нужно сформировать обработку, которая будет запускаться регламентно на сервере.
Обработка загружает информацию из текстовых файлов, которые лежат в папке на сервере.
Файлов будет несколько и имеют одинаковое начало в имени. Я хочу получить имена файлов и поочередно их читать.Может есть гораздо легкие способы это сделать?
-
Offline
KrivosheevEV
Новичок в 1С- Регистрация:
- 3 мар 2014
- Сообщения:
- 35
- Симпатии:
- 2
- Баллы:
- 4
Вот это замах. Мне нравится.
Но, судя по новым данным, нужно сделать ещё один шаг назад и объяснить задачу ещё более детально.
-
Хорошо.
Платформа 8.2.19.76. Клиент-серверный вариант.
Есть обработка, которая считывает информацию из текстового файла и загружает ее в справочник/длокумент.КаталогФайлов = "D:Files"; ИмяФайла = "File1.txt"; ПолноеИмяФайла = КаталогФайлов + "" + ИмяФайла; Файл = Новый ТекстовыйДокумент; Файл.Прочитать(ПолноеИмяФайла) Для Строка = 1 По файл.КоличествоСтрок()Цикл //загружаю строки файла КонецЦикла;
Как быть, если файлов в папке несколько, и их нужно обработать все?
Я планировала получить с помощью FileSystemObject все имена файлов в папке и по ним обращаться. -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.685
- Симпатии:
- 1.011
- Баллы:
- 204
чем не устраивает типовой метод 1С НайтиФайлы()?
Если файлы будут располагаться на той же машине, на которой запущен 1С сервер, то проблемы могут возникнуть, только в случае, если у пользователя, от которого запущен сервер 1С, нет прав на чтение содержимого указанного пути. -
Спасибо! Сейчас буду пробовать.
-
Файлы располагаются на моей локальной машине (для тестирования). Обработку запускаю в толстом клиенте на своей локальной машине.
Сервер 1С запущен на другой машине (физический сервер). Файла в каталоге 3, а выдает 0.&НаКлиенте Процедура Файлы(Команда) ФайлыСервер(); КонецПроцедуры &НаСервере Процедура ФайлыСервер() НайденныйФайлы = НайтиФайлы("D:Files", "*.txt"); Сообщить(НайденныйФайлы.Количество()); КонецПроцедуры
Нужно ли, чтобы пользователь от которого запущен сервер 1С имел права на чтение на каталог с файлами на моей машине?
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.685
- Симпатии:
- 1.011
- Баллы:
- 204
Если толстый клиент, то уберите выполнение со стороны сервера.
Даже если пользователь, под которым запущен сервер 1С, будет иметь доступ к папке на вашей машине, это ему не поможет, т.к. он не знает ничего про буквы дисков.
для него существует абсолютный адрес общего ресурса в сети вида \ИМЯ_МАШИНЫИМЯ_РЕСУРСА