Бухгалтерия предприятия, редакция 3.0 (3.0.49.23) , 1С:Предприятие 8.3 (8.3.10.2580)
Внешняя обработка
Ребята не получается обратиться с формы объекта к экспортной процедуре которая находиться в модуле объекта, тупо ругается Метод не обнаружен
Процедура в модуле объекта называется РаботаСканПДФ()
Вот так я пытаюсь к ней обратиться
Это на форме
Внешняя обработка
Ребята не получается обратиться с формы объекта к экспортной процедуре которая находиться в модуле объекта, тупо ругается Метод не обнаружен
Процедура в модуле объекта называется РаботаСканПДФ()
Вот так я пытаюсь к ней обратиться
Это на форме
&НаСервере
Процедура РаспознатьНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбработкаОбъект.РаботаСканПДФ();
КонецПроцедуры
&НаКлиенте
Процедура Распознать(Команда)
РаспознатьНаСервере();
КонецПроцедуры;
Вот как в модуле объекта
&НаКлиенте
Процедура РаботаСканПДФ() Экспорт
*******************
*******************
*******************
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Подсистема прав доступа к объектам с гибкими отборами (расширение)
- Структурирование доработок обработчиков событий объектов и форм
- Модульность в 1С – как следовать принципам DRY в реалиях 1С: Предприятие 8.3
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
- Онлайн-курс «Азы программирования в системе «1С:Предприятие 8.3» С 9 по 11 декабря 2024 г.
Найденные решения
(9)
Перенесите
в модуль формы, это будет выполняться &НаКлиенте.
В процедуру Процедура РаботаСканПДФ нужно передавать параметр ФайлPDF, перед процедурой не должно быть никаких ни &НаСервере, ни &НаКлиенте:
Процедура РаботаСканПДФ(ФайлPDF) Экспорт
То есть на форме будет типа такого что-то:
Перенесите
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
в модуль формы, это будет выполняться &НаКлиенте.
В процедуру Процедура РаботаСканПДФ нужно передавать параметр ФайлPDF, перед процедурой не должно быть никаких ни &НаСервере, ни &НаКлиенте:
Процедура РаботаСканПДФ(ФайлPDF) Экспорт
То есть на форме будет типа такого что-то:
&НаСервере
Процедура РаспознатьНаСервере(ФайлPDF)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбработкаОбъект.РаботаСканПДФ(ФайлPDF);
КонецПроцедуры
&НаКлиенте
Процедура Распознать(Команда)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
РаспознатьНаСервере(ФайлPDF );
КонецПроцедуры;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7)
(8)
Если Ставлю &НаСервере то у меня ощиба получается
{ВнешняяОбработка.СканПДФ.МодульОбъекта(4,30)}: Тип не определен (ДиалогВыбораФайла)
ДиалогОткрытияФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); (Проверка: Сервер)
(8)
&НаКлиенте
Процедура РаботаСканПДФ() Экспорт
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
КаталогВременныхФайлов = КаталогВременныхФайлов();
МакетУтилиты = ПолучитьМакет("pdftotext");
Адрес = ПоместитьВоВременноеХранилище(МакетУтилиты, Новый УникальныйИдентификатор);
ФайлУтилиты1 = КаталогВременныхФайлов + "pdftotext.exe";
ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес);
УдалитьИзВременногоХранилища(Адрес);
ДанныеХранилища.Записать(ФайлУтилиты1);
МакетУтилиты = ПолучитьМакет("hstart");
Адрес = ПоместитьВоВременноеХранилище(МакетУтилиты, Новый УникальныйИдентификатор);
ФайлУтилиты2 = КаталогВременныхФайлов + "hstart.exe";
ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес);
УдалитьИзВременногоХранилища(Адрес);
ДанныеХранилища.Записать(ФайлУтилиты2);
МакетУтилиты = ПолучитьМакет("xpdfrc");
Адрес = ПоместитьВоВременноеХранилище(МакетУтилиты, Новый УникальныйИдентификатор);
ФайлУтилиты3 = КаталогВременныхФайлов + "xpdfrc";
ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес);
УдалитьИзВременногоХранилища(Адрес);
ДанныеХранилища.Записать(ФайлУтилиты3);
ТекстКоманды = """" + КаталогВременныхФайлов + "hstart.exe"" /NOCONSOLE /WAIT ""pdftotext.exe -layout """ + ФайлPDF + """ """ + КаталогВременныхФайлов + "temp.txt""""";
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(ТекстКоманды, 5, 1);
Текст = Новый ЧтениеТекста(КаталогВременныхФайлов+"temp.txt", КодировкаТекста.UTF8);
Стр = Текст.ПрочитатьСтроку();
НомерСтроки = 0;
Пока Стр <> Неопределено Цикл
Сообщить(Стр);
Стр = Текст.ПрочитатьСтроку();
КонецЦикла;
Текст.Закрыть();
УдалитьФайлы(КаталогВременныхФайлов + "temp.txt");
УдалитьФайлы(КаталогВременныхФайлов + "pdftotext.exe");
УдалитьФайлы(КаталогВременныхФайлов + "hstart.exe");
УдалитьФайлы(КаталогВременныхФайлов + "xpdfrc");
КонецПроцедуры
ПоказатьЕсли Ставлю &НаСервере то у меня ощиба получается
{ВнешняяОбработка.СканПДФ.МодульОбъекта(4,30)}: Тип не определен (ДиалогВыбораФайла)
ДиалогОткрытияФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); (Проверка: Сервер)
(9)
Перенесите
в модуль формы, это будет выполняться &НаКлиенте.
В процедуру Процедура РаботаСканПДФ нужно передавать параметр ФайлPDF, перед процедурой не должно быть никаких ни &НаСервере, ни &НаКлиенте:
Процедура РаботаСканПДФ(ФайлPDF) Экспорт
То есть на форме будет типа такого что-то:
Перенесите
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
в модуль формы, это будет выполняться &НаКлиенте.
В процедуру Процедура РаботаСканПДФ нужно передавать параметр ФайлPDF, перед процедурой не должно быть никаких ни &НаСервере, ни &НаКлиенте:
Процедура РаботаСканПДФ(ФайлPDF) Экспорт
То есть на форме будет типа такого что-то:
&НаСервере
Процедура РаспознатьНаСервере(ФайлPDF)
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбработкаОбъект.РаботаСканПДФ(ФайлPDF);
КонецПроцедуры
&НаКлиенте
Процедура Распознать(Команда)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Фильтр = НСтр("ru = ""Текст""; en = ""Text""")+"(*.pdf)|*.pdf";
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПроверятьСуществованиеФайла = Истина;
Если Не ДиалогОткрытияФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлPDF = ДиалогОткрытияФайла.ПолноеИмяФайла;
РаспознатьНаСервере(ФайлPDF );
КонецПроцедуры;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот