База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему обработка Excel не работает на типовой конфигурации 1С, а на самописных р

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33788
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      есть такая проблема: сделал обработку, которая читает файлы, в частности эксель. Когда запускаю её на типовой конфигурации, нифига не работает. Просто не заходит в процедуру чтения. Когда запускаю обработку на пустой конфигурации или иной самописной, нетиповой, то всё нормально работает. Что за фигня? Попробовал отладчиком пробежать и заметил, что на типовой действие уходит в какие-то служебные процедуры и просто перескакивает через распознавание

    • #33789
      bot_avaOdin — Одинэсник
      Участник

      Причина, по которой обработка не заходит в процедуру чтения Excel-файлов на типовой конфигурации, а на пустой или самописной — работает нормально, связана с особенностями работы типовых конфигураций 1С и их встроенной системой безопасности и обработкой событий.

      Основные причины и рекомендации:

      1. **Обработка перехватывается системой безопасности или встроенными обработчиками типовой конфигурации**
      В типовых конфигурациях часто реализованы дополнительные механизмы контроля и фильтрации запуска обработок, особенно если они работают с внешними файлами или COM-объектами. Это может приводить к тому, что вызов вашей процедуры чтения перехватывается или блокируется, либо происходит переход в служебные процедуры, минуя ваш код.

      2. **Обработка запускается в другом контексте или с другими правами**
      В типовой конфигурации могут быть ограничения на запуск внешних обработок или на доступ к COM-объектам (Excel.Application). Например, если обработка запускается в фоновом режиме или от имени пользователя с ограниченными правами, то COM-объект может не создаваться, и код просто пропускается.

      3. **Конфликт имен или объектов**
      В типовой конфигурации могут быть объекты, процедуры или модули с такими же именами, что и в вашей обработке, и из-за этого происходит конфликт, и вызывается не ваш код, а системный.

      4. **Особенности запуска и контекста обработки**
      В типовой конфигурации обработка может запускаться в другом режиме (например, в режиме ограниченного доступа, или с отключённым доступом к внешним ресурсам), что приводит к тому, что код чтения Excel не выполняется.

      5. **Отладка и трассировка**
      При отладке в типовой конфигурации вы видите переход в служебные процедуры — это может быть механизм защиты или логирования типовой конфигурации, который перехватывает вызовы.

      ### Что делать?

      — **Проверьте права пользователя и режим запуска обработки**
      Убедитесь, что обработка запускается от пользователя с достаточными правами, и не в фоновом режиме, если используете COM-объекты.

      — **Используйте внешние обработки, зарегистрированные в конфигурации**
      Если обработка внешняя, попробуйте зарегистрировать её в конфигурации через «Внешние обработки» и запускать оттуда.

      — **Проверьте уникальность имен процедур и объектов**
      Переименуйте процедуры, чтобы исключить конфликты с типовой конфигурацией.

      — **Логируйте вход в процедуру**
      Добавьте в начало процедуры чтения запись в журнал регистрации или вывод сообщения, чтобы точно понять, вызывается ли она.

      — **Используйте альтернативные методы чтения Excel**
      Если COM-объект Excel не создаётся, попробуйте использовать ADO или другие методы чтения Excel, которые менее зависимы от контекста.

      — **Проверьте настройки безопасности и политики запуска**
      В типовой конфигурации могут быть ограничения на использование COM-объектов, особенно на сервере.

      — **Обратитесь к документации и сообществу**
      Часто типовые конфигурации имеют свои особенности, описанные в документации или на форумах (Infostart, 1C:Forum).

      ### Итог

      Типовая конфигурация 1С имеет встроенные механизмы безопасности и обработки, которые могут блокировать или перехватывать вызовы внешних обработок, особенно при работе с COM-объектами Excel. В пустой или самописной конфигурации таких ограничений нет, поэтому код работает нормально.

      Рекомендую проверить права, режим запуска, уникальность имен, а также использовать логирование для точного определения точки входа в процедуру.

      Рекомендую посмотреть здесь:
      https://infostart.ru/public/196323/
      https://infostart.ru/public/551404/
      https://infostart.ru/public/20090/

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.