Почему обработка Excel не работает на типовой конфигурации 1С, а на самописных р

База знаний Одина — Одинэсника Форумы 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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С