1. Есть УТ ред 11.3.3. При печати этикеток выдает ошибку "не найден файл внешней компоненты" файл во вложении
2. Работа устроена так. База располагается на сервере 1С Предприятии
3. Компьютер с которого отправляют на печать этикетку работает через тонкий клиент, к нему же и подключен принтер этикеток
4. Все работало до вчерашнего дня, пока не вышла ошибка при работе с базой, и всех выкинуло из программы.
5. Причина - нехватка свободного места на диске, на сервере.
Функция ПодключитьВнешнююКомпонентуПечатиШтрихкода() Экспорт
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
// Создадим объект внешней компоненты.
Если ПодключениеВыполнено Тогда
ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
Иначе
Возврат Неопределено;
КонецЕсли;
3. А это проходит успешно
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
(10) Достаточно перезагрузить Сервис 1С, не обязательно весь сервер.
Проблема возникает при удалении / блокировании временного файла на котором отрабатывала внешняя компонента, можно пойти способом (12), можно решить проще... Получитьимявременногофайла(), и использовать его имя в качестве адреса.
Вообще по штрихкодам, всюду где не нужна картинка, а можно обойтись шрифтом штрихкода - лучше обойтись шрифтом (imho).
не , это не решение вопроса, у меня такая же проблема с этой компонентой ... час поработает , а потом валится перезапуск сервера, изменение чего то в конфе, а потом ее обновление , динамически или нет , решает проблему помогает ненадолго, но это не вариант .
в общем я сделал следующий обходной трюк , может быть кому поможет, у меня пока работает, но на 100% я не уверен.
МакетКомпаненты=ПолучитьМакет("КомпонентаПечатиШтрихкодов");
Адрес=ПоместитьВоВременноеХранилище(МакетКомпаненты);
ИмяКомпоненты=ПолучитьИмяКомпоненты();
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(Адрес, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
Если ПодключениеВыполнено Тогда
Попытка
КомпонентШК = Новый("AddIn."+ИмяКомпоненты+".Barcode");
Исключение
КомпонентШК= Неопределено;
Возврат;
КонецПопытки;
Иначе
Возврат;
КонецЕсли;
Показать
Функция ПолучитьИмяКомпоненты()
ИмяКомпоненты=Строка(новый УникальныйИдентификатор);
ИмяКомпоненты=СтрЗаменить(ИмяКомпоненты,"-","");
ПервыйСимвол= Лев(ИмяКомпоненты,1);
Если ПервыйСимвол="1" или
ПервыйСимвол="2" или
ПервыйСимвол ="3" или
ПервыйСимвол="4" или
ПервыйСимвол="5" или
ПервыйСимвол ="6" или
ПервыйСимвол="7" или
ПервыйСимвол="8" или
ПервыйСимвол ="9" или
ПервыйСимвол ="0" тогда
ИмяКомпоненты=ПолучитьИмяКомпоненты();
КонецЕсли;
Возврат ИмяКомпоненты;
КонецФункции
Показать
Т.О я регистрирую компоненту каждый раз под новым именем , и надо помнить, что имя компоненты не может начинаться с цифры, в следствии чего и есть код который отсеивает такие неприятности.
Такая же ошибка всплыла при переходе с 8.3.6 на 8.3.11.2954 с одновременным переездом СЭД 1.4 на 2.0.19.
То лавинообразно появляется у всех юзеров, то так же внезапно у всех работает нормально.
Решение пока не нашел.
Началось такое же. Причем какое-то время всё работало, а потом внезапно началось:
{Справочник.ВнутренниеДокументы.Форма.ФормаЭлемента.Форма(2399)}: Ошибка при вызове метода контекста (ПолучитьДанныеДляВставкиШтрихкодаВОбъект)
ДанныеОШтрихкоде = ШтрихкодированиеСервер.ПолучитьДанныеДляВставкиШтрихкодаВОбъект(Приемник);
по причине:
Не найден файл внешней компоненты
32.
nikolaev_Optimatech
31.08.21 10:21 Сейчас в теме
В последних релизах различных типовых конфигураций штрих-код формируется с помощью общего макета метаданных КомпонентаПечатиШтрихкодов, а также вспомогательных функций и процедур: ПодключитьВнешнююКомпонентуПечатиШтрихкода, ОпределитьТипШтрихкода, ПолучитьКартинкуШтрихкода и т.п.. Файл установки компоненты доступен по подписке на сайте ИТС https://its.1c.ru/. При возникновении ошибки 1CBarCode: "Ошибка внешней компоненты" некорректное значение свойства "Шрифт" - необходимо обновить 1CBarCode.exe до последней версии. Работа с QR-кодом осуществляется с помощью функций в модуле объекта ПолучитьГенераторQRкода() и ПолучитьQRкод(). Типовая печать QR-кода в 1С 8.3 реализована на уровне Библиотеки стандартных подсистем, которая соответствует национальному стандарту штрихкодирования платежных реквизитов и доступен при подписке на ИТС.
Появилась аналогичная проблема: на сервере перестала подключаться КомпонентаПечатиШтрихкодов и стало выскакивать ошибка "Не найден файл внешней компоненты".
Если подключать компоненту на клиенте в толстом клиенте - то все хорошо, а на сервере нет.
Перезагрузка сервера - помогает не на долго.
При подключение компоненты в папку C:\Windows\Temp платформа сохраняет временный файл этой компоненты.
И скорее всего этот файл кто то удаляет - поэтому и появляется эта ошибка.
Выяснил, что у сисадминов есть скрипты, которые чистят папку Temp на компьютерах.
Но! так же заметил, что в папке Temp есть огромная папка, в которую пишется технологический журнал сервера 1С. Как оказалось, за день до проявления проблемы - один из коллег включил технологический журнал. И в этой папке за 1 час добавлялся файл на 8гб, а за позапрошлый час файл удалялся.
Технологический журнал выключил.
Сисадминов попросил не чистить эту папку на серверах.
И все заработало.
Думаю, что проблема была в включение технологического журнала.
Возможно глюк, а возможно он стал писаться в папку Temp, а сама Windows решила чистить эту папку.
Но и возможно сисадмины своими скриптами чистили.
Мы мучались с этой ошибкой около 3х месяцев, перезапускали службу агента сервера сначала раз в день, потом 2 раза, в последнюю неделю перезапуск требовался каждые 2 часа. Ошибка возникала на разных компонентах, лицензирования, склонения фио и пр. Пробовали обновлять платформу, обновлять компоненты, использовать другие компоненты.
По заверениям администратора, папка temp была добавлена во все исключения, не очищалась, не было ограничений по доступу, технологический журнал был выключен.
Помогла нам только смена папки временных файлов на другую. Просто поменяли папку временных файлов у пользователя под которым запускается служба агента сервера, и вот уже сутки вылетов нет. На двух серверах, между собой никак не связанных.