Как найти внешнюю обработку в 1С:ЗУП, если ее нет в списке дополнительных обработок?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

Разберем типичную ситуацию, с которой часто сталкиваются программисты 1С при сопровождении чужого кода, особенно в конфигурации 1С:Зарплата и управление персоналом (ЗУП 3.1). Допустим, в пользовательском интерфейсе в разделе Зарплата - Дополнительные обработки есть самописная обработка. Вам поступила срочная задача ее доработать. Однако, перейдя в раздел Администрирование - Печатные формы, отчеты и обработки - Дополнительные отчеты и обработки, вы не находите ее в списке. Соответственно, выгрузить файл для редактирования не получается.

Почему так происходит и где искать исходный файл? Проанализируем ситуацию и рассмотрим подробнее самые эффективные методы поиска потерянных внешних и встроенных обработок в 1С.

1. Проверка совпадения имени команды и наименования в справочнике

Выясним причину, по которой чаще всего обработки "теряются" в базах. Дело в том, что имя команды внешней обработки, которое выводится пользователю в интерфейсе программы, может совершенно не совпадать с наименованием самого элемента в справочнике ДополнительныеОтчетыИОбработки.

Разберем по шагам, как правильно искать в этом случае:

  1. Откройте справочник дополнительных отчетов и обработок.
  2. Не используйте быстрый поиск только по названию, которое вы видели в меню раздела "Зарплата".
  3. Открывайте каждую подозрительную обработку (или подходящую по смыслу) и заглядывайте в табличную часть Команды.
  4. Именно в колонке с представлением команды вы, скорее всего, найдете то самое название, которое искали.

2. Использование системной ссылки (Ctrl + F11)

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

  1. Откройте загадочную обработку.
  2. Нажмите комбинацию клавиш Ctrl + F11 (или кликните на иконку скрепки / кнопку «Получить ссылку» в правом верхнем углу окна программы).
  3. Внимательно посмотрим на структуру полученной ссылки.

По этой ссылке можно мгновенно определить природу объекта:

3. Поиск источника через замер производительности

Посмотрим на пример изящного технического подхода, если предыдущие методы не дали быстрого результата или вам лень перебирать справочник вручную. Мы можем поймать обработку "за руку" в момент ее запуска.

  1. Откройте конфигуратор 1С в режиме отладки.
  2. В режиме предприятия подготовьтесь к нажатию на кнопку открытия обработки (но пока не нажимайте).
  3. В конфигураторе включите Замер производительности.
  4. Вернитесь в предприятие и нажмите кнопку вызова (откройте обработку).
  5. Остановите замер производительности в конфигураторе.

Проанализируем полученные строки кода в окне замера. Среди выполненного кода вы обязательно увидите вызовы функций, открывающих форму, и по именам переменных или модулей мгновенно вычислите настоящее имя объекта или ссылку на элемент справочника.

4. Поиск через "Функции для технического специалиста" и фильтр по размещению

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

  1. Откройте Главное меню -> Функции для технического специалиста -> Справочники -> Дополнительные отчеты и обработки. Использование этого меню гарантирует, что вы видите список без скрытых пользовательских отборов.
  2. В форме списка нажмите кнопку Еще -> Изменить форму.
  3. Выведите в список колонку Размещение.
  4. Установите отбор списка по разделу Зарплата (так как в нашей задаче обработка находится именно в подсистеме "Зарплата").

Это действие моментально сузит круг поиска с сотен строк до нескольких штук, среди которых найти нужную не составит труда.

5. Анализ Журнала регистрации

Разберем метод, который помогает, если обработка открывается программно. Мы можем зафиксировать след ее открытия в системе.

  1. Откройте нужную обработку в пользовательском режиме и выполните в ней какое-либо безопасное действие (например, сформируйте данные без записи).
  2. Перейдите в раздел Администрирование -> Обслуживание -> Журнал регистрации.
  3. Обновите журнал и посмотрите самые свежие записи.

С большой долей вероятности платформа зафиксирует событие с указанием точного системного имени объекта метаданных или точного наименования элемента справочника, к которому обращался код.

6. Проверка альтернативных мест хранения (Расширения и локальные файлы)

Если во внешних обработках объекта точно нет, проанализируем альтернативные варианты размещения:

7. Проверка прав доступа (RLS)

Иногда возникает парадокс: пользователь видит команду в интерфейсе и может ее запускать, но при вашем переходе в справочник дополнительных обработок список кажется пустым или в нем нет нужного элемента. Выясним причину: это может быть связано с ограничением прав на уровне записей (RLS) или банальным отсутствием полных прав у вашего текущего пользователя. Искать исходный элемент всегда следует под пользователем с ролями Полные права и Администратор системы.

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

← На главную