Ошибка при вызове метода контекста переместитьфайл ошибка переименования файлов файл не обнаружен

Перемещения файла в каталог

Я
   Luffy

25.02.16 — 06:54

Подскажите, как можно этот файл: 3811038226_40703810718350000185__3811038226_40703810718350000185_001.y01, из любого места, по нажатию на кнопку, программно переместить в КаталогВременныхФайлов()?

   Рэйв

1 — 25.02.16 — 07:00

Можно. Но нужно знать полный путь к нему

   Luffy

2 — 25.02.16 — 07:01

(1) А можно его получить без ДиалогВыбораФайла?

   Провинциальный 1сник

3 — 25.02.16 — 07:03

Понятие «из любого места» требует уточнения. Имеется ли в виду диски локального компьютера или же сетевой ресурс? С локальными дисками можно устроить рекурсивный перебор каталогов прямо из 1с, но это достаточно долгий процесс.

   Рэйв

4 — 25.02.16 — 07:04

(2)Можно просто указать строкой

например

Командасистемы(«copy <полное имя файла> «+КаталогвременныхФайлов());

   Рэйв

5 — 25.02.16 — 07:05

ну и если переместить, а не скопировать то потом

КомандаСистемы(«del /Q <полное имя файла>»)

   Luffy

6 — 25.02.16 — 07:06

(3) Да из локалки, рабочий стол, диски С,D и т.д

   Luffy

7 — 25.02.16 — 07:07

(5) Интересно сейчас попробую, отпишусь

   forforumandspam

8 — 25.02.16 — 07:11

(4) А чем стандартная команда не устраивает? КомандаСистемы будет моргать черным экраном и возвращать фокус куда попало.

Глобальный контекст.УдалитьФайлы (Global context.DeleteFiles)

Глобальный контекст (Global context)

УдалитьФайлы (DeleteFiles)

Синтаксис:

УдалитьФайлы(<Путь>, <Маска>)

Параметры:

<Путь> (обязательный)

Тип: Строка.

Путь к удаляемым файлам.

<Маска> (необязательный)

Тип: Строка.

Маска для выбора удаляемых файлов. В строке маски допускается использование символа «*» (звездочка), обозначающего любое число произвольных символов, и «?» (знак вопроса), обозначающего один произвольный символ.

Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.

Описание:

Удаляет указанные файлы.

   forforumandspam

9 — 25.02.16 — 07:12

Ну и

Глобальный контекст.КопироватьФайл (Global context.FileCopy)

Глобальный контекст (Global context)

КопироватьФайл (FileCopy)

Синтаксис:

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)

   Рэйв

10 — 25.02.16 — 07:12

(8)лень искать было:-)

   Luffy

11 — 25.02.16 — 09:07

Блин, а что делать в этом случае?

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (КопироватьФайл)

    КопироватьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

по причине:

Ошибка копирования файлов

по причине:

Ошибка копирования файлов из ‘D:Base-1CРазработка3811038226_40703810718350000185__3811038226_40703810718350000185_001 — копия.y01’ в ‘D:Банк’ : Ошибка доступа к файлу

   ДенисЧ

12 — 25.02.16 — 09:07

Дать права на каталоги не предлагать?

   Luffy

13 — 25.02.16 — 09:09

(12) где в 1с, или сис.админить?

   Lexey_

14 — 25.02.16 — 09:10

(8), (9) а чем ПереместитьФайл() не устраивает?)

   Luffy

15 — 25.02.16 — 09:12

(14) Щас испытаю)

   Luffy

16 — 25.02.16 — 09:19

(14) Пипец

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (ПереместитьФайл)

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

по причине:

Ошибка переименования файлов

по причине:

Неправильный путь к файлу ‘D:Банк’

   Luffy

17 — 25.02.16 — 09:21

Вот код

    ДиалогФыбораФайла                                =    Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

                                                          
    ДиалогФыбораФайла.Фильтр                        =    «Файлы (*.y01)|*.y01»;

    ДиалогФыбораФайла.Заголовок                        =    «Выберите файл»;

    ДиалогФыбораФайла.ПредварительныйПросмотр        =    Ложь;

    ДиалогФыбораФайла.Расширение                    =    «y01»;

    ДиалогФыбораФайла.ИндексФильтра                    =    0;

    ДиалогФыбораФайла.ПолноеИмяФайла                =    ЗагрузкаФайла;

    ДиалогФыбораФайла.ПроверятьСуществованиеФайла    =    ПроверятьСуществование;

    
    Если ДиалогФыбораФайла.Выбрать() Тогда

        ЗагрузкаФайла = ДиалогФыбораФайла.ПолноеИмяФайла;

    КонецЕсли;

    //КаталогВременныхФайлов = КаталогВременныхФайлов() + «UploadFF»;

    КаталогВременныхФайлов = «D:Банк»;

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);

    ЗагрузкаФайла = ИмяФайла;

   Lexey_

18 — 25.02.16 — 09:23

(17) читай до дыр в СП про ПереместитьФайл

   Luffy

19 — 25.02.16 — 09:29

(18) Все разобрался, в конце пути нужно было ИмяФайла

КаталогВременныхФайлов = «D:Банк»+УдаленияИзИмениФайла(ЗагрузкаФайла);

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);

    ЗагрузкаФайла = ИмяФайла;

А у меня, как раз функция чистит путь к файлу до имени файла

Функция УдаленияИзИмениФайла(Знач Стр, РазделительИмениФайла=»»)

    
    Если РазделительИмениФайла = «» Тогда

        Стр = СокрЛП(Стр);

        Пока 1 = 1 Цикл

            Поз = Найти(Стр, РазделительИмениФайла);

            Если Поз = 0 Тогда

                Возврат Стр;

            КонецЕсли;

            //Стр = (Лев(Стр, Поз — 1));

            ДлинаРазделителя = СтрДлина(РазделительИмениФайла);

            Стр = Сред(Стр, Поз + ДлинаРазделителя);

        КонецЦикла;

    КонецЕсли;

    
КонецФункции

Всем большое спасибо))

   DDwe

20 — 25.02.16 — 09:30

(18) Не умеют они не думать ни читать.

  

DDwe

21 — 25.02.16 — 09:31

И эти люди неспособные к обучению, занимаются автоматизацией… капец.

Перемещения файла в каталог

Я

  

Luffy

25.02.16 — 06:54

Подскажите, как можно этот файл: 3811038226_40703810718350000185__3811038226_40703810718350000185_001.y01, из любого места, по нажатию на кнопку, программно переместить в КаталогВременныхФайлов()?

  

Рэйв

1 — 25.02.16 — 07:00

Можно. Но нужно знать полный путь к нему

  

Luffy

2 — 25.02.16 — 07:01

(1) А можно его получить без ДиалогВыбораФайла?

  

Провинциальный 1сник

3 — 25.02.16 — 07:03

Понятие «из любого места» требует уточнения. Имеется ли в виду диски локального компьютера или же сетевой ресурс? С локальными дисками можно устроить рекурсивный перебор каталогов прямо из 1с, но это достаточно долгий процесс.

  

Рэйв

4 — 25.02.16 — 07:04

(2)Можно просто указать строкой

например

Командасистемы(«copy <полное имя файла> «+КаталогвременныхФайлов());

  

Рэйв

5 — 25.02.16 — 07:05

ну и если переместить, а не скопировать то потом

КомандаСистемы(«del /Q <полное имя файла>»)

  

Luffy

6 — 25.02.16 — 07:06

(3) Да из локалки, рабочий стол, диски С,D и т.д

  

Luffy

7 — 25.02.16 — 07:07

(5) Интересно сейчас попробую, отпишусь

  

forforumandspam

8 — 25.02.16 — 07:11

(4) А чем стандартная команда не устраивает? КомандаСистемы будет моргать черным экраном и возвращать фокус куда попало.

Глобальный контекст.УдалитьФайлы (Global context.DeleteFiles)

Глобальный контекст (Global context)

УдалитьФайлы (DeleteFiles)

Синтаксис:

УдалитьФайлы(<Путь>, <Маска>)

Параметры:

<Путь> (обязательный)

Тип: Строка.

Путь к удаляемым файлам.

<Маска> (необязательный)

Тип: Строка.

Маска для выбора удаляемых файлов. В строке маски допускается использование символа «*» (звездочка), обозначающего любое число произвольных символов, и «?» (знак вопроса), обозначающего один произвольный символ.

Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.

Описание:

Удаляет указанные файлы.

  

forforumandspam

9 — 25.02.16 — 07:12

Ну и

Глобальный контекст.КопироватьФайл (Global context.FileCopy)

Глобальный контекст (Global context)

КопироватьФайл (FileCopy)

Синтаксис:

КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)

  

Рэйв

10 — 25.02.16 — 07:12

(8)лень искать было:-)

  

Luffy

11 — 25.02.16 — 09:07

Блин, а что делать в этом случае?

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (КопироватьФайл)

    КопироватьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

по причине:

Ошибка копирования файлов

по причине:

Ошибка копирования файлов из ‘D:Base-1CРазработка3811038226_40703810718350000185__3811038226_40703810718350000185_001 — копия.y01’ в ‘D:Банк’ : Ошибка доступа к файлу

  

ДенисЧ

12 — 25.02.16 — 09:07

Дать права на каталоги не предлагать?

  

Luffy

13 — 25.02.16 — 09:09

(12) где в 1с, или сис.админить?

  

Lexey_

14 — 25.02.16 — 09:10

(8), (9) а чем ПереместитьФайл() не устраивает?)

  

Luffy

15 — 25.02.16 — 09:12

(14) Щас испытаю)

  

Luffy

16 — 25.02.16 — 09:19

(14) Пипец

{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (ПереместитьФайл)

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

по причине:

Ошибка переименования файлов

по причине:

Неправильный путь к файлу ‘D:Банк’

  

Luffy

17 — 25.02.16 — 09:21

Вот код

    ДиалогФыбораФайла                                =    Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

                                                          

    ДиалогФыбораФайла.Фильтр                        =    «Файлы (*.y01)|*.y01»;

    ДиалогФыбораФайла.Заголовок                        =    «Выберите файл»;

    ДиалогФыбораФайла.ПредварительныйПросмотр        =    Ложь;

    ДиалогФыбораФайла.Расширение                    =    «y01»;

    ДиалогФыбораФайла.ИндексФильтра                    =    0;

    ДиалогФыбораФайла.ПолноеИмяФайла                =    ЗагрузкаФайла;

    ДиалогФыбораФайла.ПроверятьСуществованиеФайла    =    ПроверятьСуществование;

    

    Если ДиалогФыбораФайла.Выбрать() Тогда

        ЗагрузкаФайла = ДиалогФыбораФайла.ПолноеИмяФайла;

    КонецЕсли;

    //КаталогВременныхФайлов = КаталогВременныхФайлов() + «UploadFF»;

    КаталогВременныхФайлов = «D:Банк»;

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);

    ЗагрузкаФайла = ИмяФайла;

  

Lexey_

18 — 25.02.16 — 09:23

(17) читай до дыр в СП про ПереместитьФайл

  

Luffy

19 — 25.02.16 — 09:29

(18) Все разобрался, в конце пути нужно было ИмяФайла

КаталогВременныхФайлов = «D:Банк»+УдаленияИзИмениФайла(ЗагрузкаФайла);

    ПереместитьФайл(ЗагрузкаФайла,КаталогВременныхФайлов);

    ИмяФайла = УдаленияИзИмениФайла(ЗагрузкаФайла);

    ЗагрузкаФайла = ИмяФайла;

А у меня, как раз функция чистит путь к файлу до имени файла

Функция УдаленияИзИмениФайла(Знач Стр, РазделительИмениФайла=»»)

    

    Если РазделительИмениФайла = «» Тогда

        Стр = СокрЛП(Стр);

        Пока 1 = 1 Цикл

            Поз = Найти(Стр, РазделительИмениФайла);

            Если Поз = 0 Тогда

                Возврат Стр;

            КонецЕсли;

            //Стр = (Лев(Стр, Поз — 1));

            ДлинаРазделителя = СтрДлина(РазделительИмениФайла);

            Стр = Сред(Стр, Поз + ДлинаРазделителя);

        КонецЦикла;

    КонецЕсли;

    
КонецФункции

Всем большое спасибо))

  

DDwe

20 — 25.02.16 — 09:30

(18) Не умеют они не думать ни читать.

  

DDwe

21 — 25.02.16 — 09:31

И эти люди неспособные к обучению, занимаются автоматизацией… капец.

Пытаюсь на 8.3 в управляемых формах на клиенте прочитать файл: Выдает ошибку: {ВнешняяОбработка.Загрузка_приходных_накладных_в_1С_8_2.МодульОбъекта}: Ошибка при вызове метода контекста (Прочитать)     Текст.Прочитать(ВыбФайл); по причине: Файл не обнаружен ‘C:ВО_200114.txt’ Но файл там 100% есть! Помогите

, взял отладчик, и в том месте где идет Прочитать(ВыбФайл), скопировал значение ВыбФайл  в буфер обмена, потом вставил в командную строку и нажал энтер => файл открылся.

не гарантирует наличия файла там, где его ищут, а не там, где ты его положил

процедура сия у тя случаем не на сервере ли выполняется ?

, реально! положил сюда  nbnbхламВО_200114.txt => прочитал. А почему с моего диска С не хочет читать?

потому что на сервере нет твоего диска

диск С скорее всего есть а вот файла скорее всего нет

, тоже пишет что не найден… ,, так получается он ищет диск С не моего компьютера, а на сервере, где база sql крутится? хотя я запускаю 1с через толстого клиента со своего компа..

«C:ВО_200114.txt». Да с безопасностью такого решения все плохо.

Пришли весь код функции которая у тя читает файл

Если команда выполняется на сервере, то вполне логично, что и файл ищется на сервере. И скорее не на сервере SQL, а на сервере 1С.

уже давно в корень дисков класть ничего нельзя…

Ну все понятно. Серверная процедура.

, вы реально здесь телепаты… обработка получения имени пути у меня на клиенте выполняется, а вот прочитать я его пытаюсь из модуля обработки, код которого выполняется на сервере… Спасибо большое, никак не привыкну к управляемым формам….

Чаще, синтакс — помошника читать надо ))

>МодульОбъекта это непропиваемый опыт и внимательность, а не телепатизм ;)

От блин, а я не заметил ))

твоим следующим вопросом, по-идее, должно быть такое — почему со своего компьютера файл читается, а с компьютера Афанасия Мухтаровича — нет. Я подожду :)

, блин, так я еще и подсказку оказывается изначально уже дал))) , это тут не причем

конечно не причем. Т.к. ты не задал этот вопрос, т.к. у тебя все хорошо и с этой ситуацией ты пока не столкнулся :) Я повторюсь — я подожду :)

взял попкорн уселся поудобней :)

, Интригант? о_О вот, смотрите в , там «nbnbхламВО_200114.txt» — это и есть компьютер Григория. И все отлично считалось.

оказалось не 100%, а 0% :)

Ну правильно, сервер свою папку «хлам» видит, пусть даже по сетевому пути.

без разницы, все равно он ее видит.

, то есть вы хотите сказать, что те папки, которые видны с сервера будут считываться, а те что не видны  — нет. Это я понимаю. Решение вижу только два: открывать им доступ с сервера или выполнять метод Прочитать «&наклиенте».

В вэб-клиенте вопрос: Передать файл на сервер nbnbхламВО_200114.txt ?  Ура я нашел модальное окно, в режиме использования модальности — не использовать. 8.3.4.389

откатываемся обратно по окнам? :)

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Описание ошибки:
Ошибка возникает при попытке использования штатного механизма расшифровки для внешних отчетов, подключенных в базе типовой конфигурации 1С: Управление торговлей 8, ред. 10.3 в справочник «Внешние отчеты и обработки».

Ошибка при вызове метода контекста (Создать)
НовыйОтчет = ВнешниеОтчеты.Создать(ОтчетОбъект.ИспользуемоеИмяФайла);
по причине:
Ошибка подключения внешних метаданных
по причине:
Файл не обнаружен ‘C:Users AppDataLocalTempv8_F572_57.tmp’

При открытии файла внешнего отчета отдельно через меню «Файл» — «Открыть» и попытке расшифровки — работа механизма расшифровки не нарушается возникновением какой-либо похожей ошибки.

Обращение за помощью к мировой паутине дало прямую подсказку в виде конкретных ответов на поисковый запрос:

Через нее был совершен переход в другое обсуждение по теме форума forum.mista.ru:

Получается, что при попытке расшифровки в отчете, который хранится в справочнике «Вешние отчеты и обработки», в коде происходит удаление временного файла-обработки прежде, чем закончится выполнение кода, отвечающего за расшифровку отчета.

Как не печально, но приходится констатировать тот факт, что для типовых решений придется их поставить на частичную поддержку, чтобы закомментировать участок кода, который отвечает за преждевременное удаление файла внешней обработки.

Для конфигурации 1С: Управление торговлей 8, ред. 10.3 пример такого места в коде — это модуль «Формы списка» справочника «ВнешниеОбработки», процедура «СправочникСписокВыбор», комментируем исполняемую строку кода:

Нажатие на изображении увеличит его

Источник

Не выполняется внешний отчет

Коллеги, подскажите, пожалуйста!
У меня 1С:Предприятие 8.3 (8.3.6.2076)
Бухгалтерия предприятия, редакция 3.0 (3.0.43.263)

Из конфигурации сохраняю отчет ОСВ как внешний, а при загрузки отчета в БП (через Файл/Открыть), идет ошибка:

Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектМетаданных()
Объект не найден по полному имени:
«ВнешнийОтчет.ОборотноСальдоваяВедомость»

Прочитала, что надо вставить в модуль объекта:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить(«Вид», «ДополнительныйОтчет»);
ПараметрыРегистрации.Вставить(«Назначение», «»);
ПараметрыРегистрации.Вставить(«Наименование», «ОСВ»);
ПараметрыРегистрации.Вставить(«Версия», «1.0.1»);
ПараметрыРегистрации.Вставить(«БезопасныйРежим», Истина);
ПараметрыРегистрации.Вставить(«Информация», «ОСВ»);
ПараметрыРегистрации.Вставить(«ВерсияБСП», «1.2.1.4»);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
«ОСВ»,
«ОСВ»,
«ОткрытиеФормы»,
Ложь,
«»);
ПараметрыРегистрации.Вставить(«Команды», ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить(«Представление», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Идентификатор», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«Использование», Новый ОписаниеТипов(«Строка»));
Команды.Колонки.Добавить(«ПоказыватьОповещение», Новый ОписаниеТипов(«Булево»));
Команды.Колонки.Добавить(«Модификатор», Новый ОписаниеТипов(«Строка»));
Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = «»)
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

Но это не помогло.
Помогите, кто сталкивался.

Источник

Описание ошибки:
Обнаружена при разработке обработки для изменения содержимого файла формата XML в серверной базе 1С 8 в режиме управляемого приложения. При тестировании на сервере ошибка не возникала. Проявила себя при работе на рабочем месте пользователя.

По факту ошибка возникала при выполнении метода «Прочитать()» для объекта «ТекстовыйДокумент». Как было отмечено, при тестировании работы обработки непосредственно на сервере данной ошибки не возникало. Она проявила себя уже при попытке работы на другом рабочем месте. Обработка разрабатывалась для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая работает в режиме управляемого приложения — это необходимо отметить. Т.к. это проясняет причины возникновения проблемы.

По привычке разместил операции по чтению содержимого текстового файла и извлечению его содержимого на стороне сервера — см. «&НаСервере» перед процедурой «ОбрабткаНаСервере()». Клиент-серверная архитектура платформы 1С: Предприятие 8.3, казалось бы, к этому обязывала.

В итоге получалось, что платформа на клиентском рабочем месте искала файл по указанному пути на сервере, где развернут сервер 1С: Предприятия 8 исходя из директивы «&НаСервере», а не на рабочем компьютере, где была запущена обработка.

Но, как оказалось позже — конструктор «Новый ТекстовыйДокумент», методы «Прочитать()», «ПолучитьТекст()» — все они доступны не только на стороне сервера, но и на стороне тонкого и толстого клиента. Поэтому замена директивы «&НаСервере» на «&НаКлиенте» решила проблему.

Источник

Метод объекта
не обнаружен в 1С

Главная страница » Метод объекта не обнаружен в 1С

После обновления информационной базы 1С, установки новой версии Платформы, доработки конфигурации 1C можно получить ошибку:

  • Метод объекта не обнаружен.

В статье вы познакомитесь с новым инструментом разработчиков Синтаксис помощник и научитесь использовать его при работе с ошибками программного кода 1С.

Наша компания подготовила 3 примера формирования ошибки Метод объекта не обнаружен в 1С 8.3. Изучив их, вы узнаете причины появления ошибки и получите рекомендации для ее исправления с использованием встроенной справки 1С.

Причины ошибки в 1С метод объекта не обнаружен

Каждый из объектов обладает определенными им разработчиками наборами Свойств и Методами. Посмотреть эту информацию позволяет специальный инструмент разработчиков — Синтаксис помощник. Инструмент встроен в справку Конфигурации 1С. Вызов Синтаксис помощника происходит:

  • по кнопке командной панели — Синтаксис-Помощник;

  • из меню Справка командной панели.

Синтаксис-помощник содержит подробное описание заданных свойств и методов объектов конфигурации. Добавить свои свойства и методы пользователь не может. Изменить — тоже. Задача программиста, дорабатывающего 1С — использовать очень точно методы, что даны в описании. Если в программном коде допускается ошибка в использовании метода объекта, пользователь получает ошибку Метод объекта не обнаружен.

Рассмотрим возникновение ошибки на примерах. Для исправления будем обращаться к справке Синтаксис-помощника.

Метод объекта не обнаружен (счет покупателю — подбор)

Согласно Синтаксис-помощнику для объекта Таблица значений нет метода Копировать(). Правильный метод — Скопировать(). После того как метод будет исправлен на правильный, подбор товара в документе Счет покупателю станет выполняться без ошибки.

Метод объекта не обнаружен (печатная форма)

После программного изменения печатной формы Приложение к договору в документе Счет покупателю появляется ошибка Метод объекта не обнаружен:

Согласно сообщению в окне ошибки, метод ПолучитьРазмерОбластиДанных() не обнаружен в списке методов объекта 1С. Для уточнения вида объекта, который использует этот метод, перейдем в Конфигуратор:

  • место доработки — функция ПечатьПриложениякДоговору;
  • строка — ТабличныйДокумент.ПолучитьРазмерОбластиДанных().

В программном коде используется метод Табличного документа ПолучитьРазмерОбластиДанных(). Уточним используемые методы табличного документа через Синтаксис-помощник.

Согласно справке Синтаксис-помощника, нет метода ПолучитьРазмерОбластиДанных(). Для получения размера области данных по горизонтали используется метод ПолучитьРазмерОбластиДанныхПоГоризонтали().

После исправления программного кода печатная форма формируется без ошибки.

Метод объекта не обнаружен (Connect) в 1С 8.3

В обработке внешнего подключения к информационной базе Управление Торговлей при попытке соединения появляется ошибка Метод объекта не обнаружен в 1С:

Для объекта COM-соединений определим в Синтаксис помощнике правильный метод новым способом через вкладку Поиск. Этот вариант часто используют в работе программисты и те пользователи, кто уже знаком с программным языком 1С. По первым буквам набранной в строке поиска команды программа отбирает объекты, использующие данный метод.

Согласно справке Синтаксис-помощника, нет метода Connector. Команду соединения с информационной базой Управление Торговлей нужно исправить на Connect.

После исправления команды соединение с базой Управление Торговлей по заданным параметрам выполнится без ошибки.

В качестве небольшого бонуса наши подписчики могут скачать внешнюю обработку с демонстрацией неправильного и правильного кода

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

Источник

Не найден файл внешней компоненты

1. Есть УТ ред 11.3.3. При печати этикеток выдает ошибку «не найден файл внешней компоненты» файл во вложении
2. Работа устроена так. База располагается на сервере 1С Предприятии
3. Компьютер с которого отправляют на печать этикетку работает через тонкий клиент, к нему же и подключен принтер этикеток
4. Все работало до вчерашнего дня, пока не вышла ошибка при работе с базой, и всех выкинуло из программы.
5. Причина — нехватка свободного места на диске, на сервере.

(2)Ничего не нашел, где бы указывался путь к файлу

(3)Вчера как раз и чистили. Была нехватка свободного пространства. Освободили

вот что выяснил:

1. Компонента использует библиотеку ImageMagick, разработанную ImageMagick Studio LLC. вот ссылка — http://www.imagemagick.org/script/license.php

Вот тут в строке —

вываливается в ошибку

3. А это проходит успешно
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(«ОбщийМакет.КомпонентаПечатиШтрихкодов», «КартинкаШтрихкода», ТипВнешнейКомпоненты.Native);

(10) Достаточно перезагрузить Сервис 1С, не обязательно весь сервер.
Проблема возникает при удалении / блокировании временного файла на котором отрабатывала внешняя компонента, можно пойти способом (12), можно решить проще. Получитьимявременногофайла(), и использовать его имя в качестве адреса.

Вообще по штрихкодам, всюду где не нужна картинка, а можно обойтись шрифтом штрихкода — лучше обойтись шрифтом (imho).

в общем я сделал следующий обходной трюк , может быть кому поможет, у меня пока работает, но на 100% я не уверен.

Т.О я регистрирую компоненту каждый раз под новым именем , и надо помнить, что имя компоненты не может начинаться с цифры, в следствии чего и есть код который отсеивает такие неприятности.

Отличное решение.
Только вместо функции ПолучитьИмяКомпоненты() можно написать 1 строку:

Обновили платфору.
Платформа: 1С:Предприятие 8.3 (8.3.13.1690)
Конфигурация: Документооборот 8 КОРП, редакция 2.1 (2.1.12.2)

Началось такое же. Причем какое-то время всё работало, а потом внезапно началось:

<Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Форма(2399)>: Ошибка при вызове метода контекста (ПолучитьДанныеДляВставкиШтрихкодаВОбъект)
ДанныеОШтрихкоде = ШтрихкодированиеСервер.ПолучитьДанныеДляВставкиШтрихкодаВОбъект(Приемник);
по причине:
Не найден файл внешней компоненты

Штрихкодирование вообще не используем.

На тестовой базе нет таких ошибок, работают на одном серваке, в тест залили уже после образования ошибок.

Появилась аналогичная проблема: на сервере перестала подключаться КомпонентаПечатиШтрихкодов и стало выскакивать ошибка «Не найден файл внешней компоненты».
Если подключать компоненту на клиенте в толстом клиенте — то все хорошо, а на сервере нет.
Перезагрузка сервера — помогает не на долго.

При подключение компоненты в папку C:WindowsTemp платформа сохраняет временный файл этой компоненты.
И скорее всего этот файл кто то удаляет — поэтому и появляется эта ошибка.

Выяснил, что у сисадминов есть скрипты, которые чистят папку Temp на компьютерах.
Но! так же заметил, что в папке Temp есть огромная папка, в которую пишется технологический журнал сервера 1С. Как оказалось, за день до проявления проблемы — один из коллег включил технологический журнал. И в этой папке за 1 час добавлялся файл на 8гб, а за позапрошлый час файл удалялся.

Технологический журнал выключил.
Сисадминов попросил не чистить эту папку на серверах.
И все заработало.

Думаю, что проблема была в включение технологического журнала.
Возможно глюк, а возможно он стал писаться в папку Temp, а сама Windows решила чистить эту папку.
Но и возможно сисадмины своими скриптами чистили.

Источник

Evgeniya
23.04.2014 13:00 Прочитано: 6007

Добрый день, коллеги!

Обмен данными 1С 8,2 и ВМС
Ошибка выскакивает при ручном запуске обработки «Обмен данными», проблема файлы застряли в корне каталога, ни туда, ни суда не идут.

Выгрузка данных для узла WMS
{Обработка.АХ_ОбменДаннымиСWMS.МодульОбъекта(273)}:

Ошибка при вызове метода контекста (ПереместитьФайл): Ошибка переименования файлов: Ошибка копирования файлов : Ошибка доступа к файлу

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
25.04.2014 15:47 Ответ № 1

(0) Evgeniya, проверьте права доступа к этим файлам и каталогам

Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.

Ошибки под LINUX

nclockworker Дата: Суббота, 15.05.2021, 20:46 | Сообщение # 91

Генерал-майор

Группа: Пользователи

Репутация: 342

Статус: Оффлайн

5.92e пишет «Функция поддерживается только в ОС Windows». Т.ч пока тестировать нечего.

 
tormozit Дата: Суббота, 15.05.2021, 20:58 | Сообщение # 92

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Я так понимаю, форма синтакс-помощника не открывается при этом?
Видимо еще где то вложенная проверка осталась. Установи точку останова на строку

Код

СообщитьЛкс(«Функция » + НазваниеФункции + » поддерживается только в ОС Windows»

общего модуля ирОбщий и покажи стек

 
nclockworker Дата: Воскресенье, 16.05.2021, 06:24 | Сообщение # 93

Генерал-майор

Группа: Пользователи

Репутация: 342

Статус: Оффлайн



Ну и после того как я все это закомментировал, получил ошибку: файл «/tmp/indexPackBlock.data» не обнаружен

И, судя по имени файла в папке /tmp на вряд ли он когда либо найдет что-то:

Но дело не в расширении. Главное, что такое файл есть и у него признак исполняемого стоит. А вот реальная ошибка тут. Попробовал запустить те же команды вручную:

Сообщение отредактировал nclockworkerВоскресенье, 16.05.2021, 06:47

 
nclockworker Дата: Воскресенье, 16.05.2021, 06:49 | Сообщение # 94

Генерал-майор

Группа: Пользователи

Репутация: 342

Статус: Оффлайн

Переводы строк в «стиле windows» linuxу не нравятся:

Ну и сам синтаксис исполняемого файла содержит конструкции для CMD Windows, а не как для Bash. Это надо переписывать.

Но ошибка происходит еще раньше. Если выполнять команду, которую формирует ИР:

Код

unpack_cmd «/opt/1cv8/x86_64/8.3.19.1079/shquery_ru.hbk» > «/tmp/unpack_log» 2>&1

(тут форум исказил кавычки)

То выдается такое:

Исполняемые файлы надо вызывать с точкой и слэшем под linux (хотя я не уверен, что из под 1С это не делается автоматически):

«./unpack_cmd «/opt/1cv8/x86_64/8.3.19.1079/shquery_ru.hbk» > «/tmp/unpack_log» 2>&1″

Сообщение отредактировал nclockworkerВоскресенье, 16.05.2021, 07:03

 
redkayaexotika Дата: Воскресенье, 16.05.2021, 08:57 | Сообщение # 95

Сержант

Группа: Пользователи

Репутация: 6

Статус: Оффлайн


При попытке вызвать Синтакс помощник (по иконке):

Код

{ИнструментыРазработчикаTormozit ОбщийМодуль.ирКэш.Модуль(980)}: Ошибка при вызове конструктора (COMОбъект)
        Locator = Новый COMОбъект(«WbemScripting.SWbemLocator»);
по причине:
COM-объекты поддерживается только в операционных системах Windows

При попытке вызвать Синтакс помощник (Консоль кода / Сочетание клавиш Ctrl + F1):

Код

Функция  поддерживается только в ОС Windows

 
tormozit Дата: Воскресенье, 16.05.2021, 09:05 | Сообщение # 96

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Учел все замечания и ошибки. Пробуйте https://www.hostedredmine.com/attachments/408264

 
tormozit Дата: Воскресенье, 16.05.2021, 09:46 | Сообщение # 97

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Еще для linux было бы неплохо реализовать
— эмуляцию клавиатурного ввода ирОбщий.ОтправитьНажатияКлавишЛкс()
— перехват клавиатурного ввода https://github.com/tormozit/KeyboardHook_1C
Если кто то знает способы или исходники, кидайте сюда.

 
redkayaexotika Дата: Воскресенье, 16.05.2021, 11:54 | Сообщение # 98

Сержант

Группа: Пользователи

Репутация: 6

Статус: Оффлайн

Цитата tormozit ()

— эмуляцию клавиатурного ввода ирОбщий.ОтправитьНажатияКлавишЛкс()

приложение xdotool

Код

app=’Домашняя папка’
window_id=`wmctrl -l | grep «$app» | cut -d’ ‘ -f1`
wmctrl -i -R $window_id && xdotool key F5


ОШИБКА

Код

{ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(5191)}: Ошибка при вызове метода контекста (ПереместитьФайл)
            ПереместитьФайл(ФайлБлока.ПолноеИмя, ИмяВременногоФайла);
по причине:
Ошибка переименования файлов
по причине:
Файл не обнаружен ‘/tmp/.private/mir/PackBlock.data’

Сообщение отредактировал redkayaexotikaВоскресенье, 16.05.2021, 12:06

 
tormozit Дата: Воскресенье, 16.05.2021, 12:05 | Сообщение # 99

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

redkayaexotika, это ты привел скрипт для отправки нажатия клавиши «F5» в активное окно? Мне надо всегда в активное окно.

 
redkayaexotika Дата: Воскресенье, 16.05.2021, 12:09 | Сообщение # 100

Сержант

Группа: Пользователи

Репутация: 6

Статус: Оффлайн

Цитата tormozit ()

redkayaexotika, это ты привел скрипт для отправки нажатия клавиши «F5» в активное окно? Мне надо всегда в активное окно.

 Это скрипт для эмуляция нажатия f5 в окне, заголовок которого содержит строку Домашняя папка

 
tormozit Дата: Воскресенье, 16.05.2021, 12:45 | Сообщение # 101

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Добавил вывод отладочных сообщений https://www.hostedredmine.com/attachments/408265

 
redkayaexotika Дата: Воскресенье, 16.05.2021, 12:52 | Сообщение # 102

Сержант

Группа: Пользователи

Репутация: 6

Статус: Оффлайн



Код

{ИнструментыРазработчикаTormozit Обработка.ирПлатформа.МодульОбъекта(6842)}: Ошибка при вызове метода контекста (Прочитать)
        ТекстовыйДокумент.Прочитать(ПутьРаспаковки + Разделитель + ИмяФайлаЛога, ирОбщий.СистемнаяКодировкаТекстаОСЛкс());
по причине:
Файл не обнаружен ‘/tmp/.private/mir/unpack.log’

Сообщение отредактировал redkayaexotikaВоскресенье, 16.05.2021, 12:59

 
tormozit Дата: Воскресенье, 16.05.2021, 13:00 | Сообщение # 103

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Попробуй выполнить эту (из окна сообщений) команду через консоль.

 
tormozit Дата: Воскресенье, 16.05.2021, 13:09 | Сообщение # 104

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Линуксоиды, помогите заставить работать функцию Обработка.ирПлатформа.РаспаковатьФайлВнешнейОбработки(). Кажется там осталось совсем немного доделать/исправить.

 
redkayaexotika Дата: Воскресенье, 16.05.2021, 13:10 | Сообщение # 105

Сержант

Группа: Пользователи

Репутация: 6

Статус: Оффлайн

Цитата tormozit ()

ТекстовыйДокумент.Прочитать(ПутьРаспаковки + Разделитель + ИмяФайлаЛога, ирОбщий.СистемнаяКодировкаТекстаОСЛкс());

Код

ТекстовыйДокумент = новый ТекстовыйДокумент;
ПутьРаспаковки = «./»;
Разделитель = «/»;
ИмяФайлаЛога = «kuku»;
ТекстовыйДокумент.Прочитать(ПутьРаспаковки + Разделитель + ИмяФайлаЛога, ирОбщий.СистемнаяКодировкаТекстаОСЛкс());

 

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Closed

khorevaa opened this issue

Nov 24, 2017

· 8 comments

Comments

@khorevaa

При вызове функции «ПереместитьФайл» Возникает следующая ошибка

Внешнее исключение (System.IO.IOException): Win32 IO returned ERROR_ALREADY_EXISTS. Path: }

Контекст:
Версия движка
1Script Execution Engine. Version 1.0.18.35

Файл1 = "/mnt/4726E0D171584E1C/test_gitsync/test-gitsync/src/DataProcessors/ГрупповаяОбработкаСправочниковИДокументов/Forms/ФормаНастройки/Ext/Form/module"
Файл2  = "/mnt/4726E0D171584E1C/test_gitsync/test-gitsync/src/DataProcessors/ГрупповаяОбработкаСправочниковИДокументов/Forms/ФормаНастройки/Ext/Form/Module.bsl"
ПереместитьФайл(Файл1, Файл2);

Что не так? что делать?
@EvilBeaver @artbear @dmpas

п.с.
Замена кода на две операции
КопироватьФайл
УдалитьФайлы

Решила проблему

@dmpas

/mnt/4726E0D171584E1C — а там что подключено?

@khorevaa



Copy link


Contributor


Author

@dmpas Да внешний жёсткий диск

@EvilBeaver

У меня диссонанс между путями вида /mnt/ и текстом ошибки «Win32 IO»

Это же линукс и моно? А какой именно моно по версии?

@pumbaEO

А разве перемещение в 1С перезаписывает существующий файл или каталог?

@khorevaa



Copy link


Contributor


Author

@EvilBeaver Вот вывод версии

Mono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen

@EvilBeaver

Попробуй на 5-й моно. У меня были случаи исправления всяких странных глюков с помощью обновления моно. И, кстати, вопрос @pumbaEO тоже актуален.

@AlexMasljukov

При вызове функции ПереместитьФайл(ПапкаСФайлами, ДругоеИмяПапкиСТемижеФайлами) ошибка:
Внешнее исключение (System.IO.FileNotFoundException): Файл ‘D:……….’ не найден.} (здесь полный путь существующей папки ПапкаСФайлами). Хотя папка по указанному пути существует и определяется командой НайтиФайлы().

Т.е., ошибка возникает при попытке переименования папки с файлами. Хотя в СП описание данной процедуры гласит:
Выполняет перемещение (переименование) указанного файла (папка же тоже файл, я так понимаю).

@Mr-Rm

Нет, в 1С переименование каталогов тоже не работает.

ИмяКаталога = "C:TempDir1";
КаталогНаДиске = Новый Файл(ИмяКаталога);
Если КаталогНаДиске.Существует() Тогда
	Сообщить("Каталог существует");
	ПереместитьФайл(ИмяКаталога, ИмяКаталога+"2");
КонецЕсли

получаем:
Каталог существует
и далее:
Ошибка при вызове метода контекста (ПереместитьФайл)
по причине:
Ошибка переименования файлов
по причине:
Неправильный путь к файлу ‘C:TempDir1’. Объект является каталогом

  • Ошибка при вызове метода контекста отправитьдляобработки ошибка при выполнении файловой операции
  • Ошибка при вызове метода контекста отправитьдляобработки bitrix24
  • Ошибка при вызове метода контекста открытьформу неизвестное имя формы имя
  • Ошибка при вызове метода контекста открытьформу недостаточно прав для просмотра
  • Ошибка при вызове метода контекста открытьфайл ошибка доступа к файлу