1с для чего используется синтаксический контроль

Обновлено: 07.07.2024

Есть 100500 внешних обработок. Нужно проверить в них автоматически синтаксический контроль. Как лучше это сделать?

Проверить файлы epf, erf.
В связи с выходом нового релиза БП обнаружилось что многие процедуры/функции общих модулей и сами общие модули перестали существовать, а они могут использоваться во внешних отчетах/обработках.
Файлы выгрузил, в конфу загрузить можно только по 1-й штуке.

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

tormozit кажись в своих ИР какие-то компоненты для этого юзает.

(3) Стандартный синтаксический контроль вроде ж не проверяет доступность функций общих модулей.

(6) при создании упадёт, если общий модуль не существует. Если ОМ есть, то только при вызове несуществующего метода

Написал уже обработку по проверке, осталось формы дописать.

(13) у тебя ругается на модуль ОбщегоНазначения, а не на процедуру в нем, или я путаю?

(15) на процедуру ругается. Все ок.
Как получить список всех форм внешней обработки/отчёта?

(10) может не проверять если написать объявление через метод общиймодуль()

Формы (Forms)
Использование:
Только чтение.
Описание:
Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных, описывающих формы данного объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение.

(16) Что на процедуру ругается?
Ctrl-F7 - не ругается.
Ругается только проверка конфигурации с флагом "Расширенная проверка". Но как ее применить к ВнОбр?

(19) сделал как предлагали, создаю объект внешней обработки, затем вызываю создание обработки, в исключении пишется информация о несуществующих ОМ и процедурах ОМ.

(19) хотя не проверил проверяется ли при компиляции процедуры из ОМ

(20) несуществующих ОМ - Да
процедурах ОМ - только если они вызываются при создании

(19) да ты прав. Компиляция не проверяет процедуры из ОМ.
А синтаксис контроль проверяет только при расширенной проверке.

Может есть возможность загрузить пакетной внешние обработки в конфигуратор для проверки используя возможности выгрузки/закрузки конфигурации в файлы?

(23) Вот и всё)
Варианта 3:
Наиболее реальным п. 2 выглядит, если найти что-то полуготовое

(0) На инфостарте Сапер Водичка выкладывал то, что возможно Вам нужно - обработку для проверки внешних обработок.

Распарсить мне кажется долго, как понять модуль это общий или нет?

(26) нашел его "Групповая проверка доработок" на ИС, но там не проверяются внешние обработки.

(28) понял, только это нужно ещё и получить список существующих процедур/функций.

(9) в ИР есть какой нибудь функционал на эту тему? Где tormozit.

(30)
Но всё равно гарантий нет - недавно в БП добавили параметр в функцию. По количеству параметров вызов нормальный(часть необязательна), а по факту не работает. Сейчас тему найду

(28) я имел ввиду существующие ОМ известны, а старые ОМ не известны, а их нужно отличать от переменных.

(32) да, пока не проверяю изменит количества параметров и возвращаемый результат. Хотя и тут много изменений

(25) Вариант 1 тоже вроде реален: выгрузить в файлы и собрать их в конфигурацию или расширение. Но гемора тоже много

1000 внешних обработок и отчётов. Нах вам типовая конфа?

Попробовал обработку из расширения ИР "Тестирование метаданных ИР" для тестирования внешних обработок.
Выдает все не правильно:
1. ошибки расположены не напротив тестируемых обработок
2. выдает ошибки на используемые общие модули, хотя общие модули есть и процедуры в них тоже.

(41) я уже это все сделал.
Но если отсутствует процедура/функция в общих модулях и она используется во внешней обработке, то это при открытии обработки ошибки не будет.

(43) значит у тебя стоит настройка "расширенный синтаксический контроль".
Если открыть обработку в режиме предприятия ошибки не будет.

(45) Если флажок "расширенная проверка" поставить(у тебя снят), то будет ругаться.
Остается решить вопрос с автоматизацией запуска синтаксического контроля для тысячи обработок.

(48) он говорит , что у него даже при снятом ругается. Но у него обычное приложение.

(50) кстати на рисунке ругается на переменную ОбщегоНазначения, а не на траляля

Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс

Особенности использования проверки конфигурации

Механизм проверки конфигурации позволяет выявить ошибки, которые не являются критичными для функционирования прикладного решения в принципе, но наличие которых может существенно снизить скорость работы прикладного решения или даже привести к возникновению ошибок при работе в некоторых специальных режимах.
Выполнение данных проверок не является обязательным (как, например, в случае синтаксического контроля), но является желательным, например, для проверки конфигурации перед поставкой заказчику, перед выпуском тиражного решения, для проверки после массированного удаления объектов или после объединения конфигураций.
Механизм проверки конфигурации включает в себя несколько тестов. Часть этих тестов доступна и в других режимах конфигуратора, а остальные специально разработаны для этого механизма.
Рассмотрим особенности этих тестов:

Проверка логической целостности конфигурации

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

Например проверка того, что все объекты метаданных в пределах одной ветки имеют уникальные имена.

Поиск некорректных ссылок

Конфигурация на платформе 1С:Предприятие 8.1 представляет собой набор взаимосвязанных объектов. Каждый объект определяется его свойствами. Эти свойства могут содержать ссылки на другие объекты метаданных.

Ссылки бывают прямые (например, свойство справочника ОсновнаяФорма ссылается на объект метаданных Форма ) или косвенные. К косвенным относятся, например, ссылки на типы, относящиеся к объекту метаданных, например СправочникСсылка.Номенклатура или ссылки на предопределенные значения объекта.

Свойства объектов метаданных можно разделить на простые и сложные. К простым, например, относятся Имя , Синоним , Тип , ОсновнаяФорма и другие. Сложными свойствами являются Форма , Макет , Интерфейс , Права , СправочнаяИнформация .

Логика работы платформы 1С:Предприятие 8.1 построена таким образом, что наличие некорректных (неразрешимых) ссылок в простых свойствах в режиме 1С:Предприятие не допускается. При стандартных операциях редактирования, конфигуратор не позволит возникнуть таким ссылкам.

Например, нельзя удалить форму, если ссылка на нее содержится в свойстве справочника.

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

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

Например, в форме окажется поле ввода не связанное с данными или в справочной информации будет "переход в никуда".

Для поиска и исправления таких ситуаций предназначен механизм поиска некорректных ссылок. Он позволяет определить только факт наличия неразрешимых ссылок в той или иной форме. Их поиск и исправление возлагается на разработчика.

Ниже приведены некоторые рекомендации, которые могут помочь в данном процессе.

Неразрешимые ссылки в справочной информации

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

Если ссылка не работает, но существует объект, на который она ссылается - нужно скорректировать ссылку. Если объект, на который указывает ссылка, отсутствует - нужно, как минимум, очистить ссылку и, возможно, удалить соответствующий текст справки.

Некорректные ссылки в формах объектов

Если неразрешимые ссылки обнаружены в форме объекта, то для их локализации прежде всего следует проверить на непустое значение свойства формы и свойства элементов формы (например такие свойства, как Цвет , Шрифт , Рамка и т.д.). Для табличного поля следует также проверить свойства колонок и элементов управления, расположенных в колонках.

Для всех этих свойств значение в палитре свойств не должно быть пустым, т.е. должно отображаться либо какое-то конкретное значение, либо значение Авто . Все остальные случаи определяются как неразрешимые ссылки.

Для исправления такой ссылки следует либо задать для свойства необходимое значение, либо очистить значение (что приведет к установке значения Авто ).

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

Также следует проверять связи с данными. Например, для свойств Связь по владельцу и Связь по типу нужно убедиться, что в окне формы настройки связи будет выбрано конкретное значение. Если нет - нужно заново выбрать нужное значение.

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

Для автоматизации поиска неразрешимых ссылок можно использовать Проверку конфигурации (команда Конфигурация - Проверка конфигурации в Конфигураторе).

Общие рекомендации

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

Например, как было указано, при удалении объекта конфигуратор проверит наличие ссылок на удаляемый объект, но только в простых свойствах. Поэтому перед удалением рекомендуется провести полный поиск. Обратите внимание, что начиная с релиза 8.1.10, при выполнении команды "Поиск ссылок на объект" (и "Поиск ссылок в объекте") можно указать поиск во всех свойствах.

Синтаксический контроль модулей

Механизм проверки конфигурации предоставляет расширенные возможности синтаксического контроля модулей. Они позволяют проверить работоспособность конфигурации во всех режимах, предусмотренных разработчиком. Для того, чтобы понять назначение каждого из режимов, рассмотрим подробнее особенности исполнения модулей в платформе 1С:Предприятие 8.1.

Конфигурация может исполняться в двух сеансах - клиентского приложения и внешнего соединения. Кроме этого, конфигурация может быть развернута в файловом варианте и клиент-серверном варианте. Различия режимов определяются составом объектов и их свойств. Не все объекты доступны при исполнении на сервере 1С:Предприятия и в режиме внешнего соединения.

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

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

Для выявления подобных "тонких" случаев, механизм проверки конфигурации предоставляет проверки модулей во всех пяти вариантах среды исполнения.

Работа клиентского приложения

Синтаксический контроль модулей в режиме эмуляции сеанса клиентского приложения в файловом варианте работы.

Работа внешнего соединения

Синтаксический контроль модулей в режиме эмуляции сеанса внешнего соединения в файовом варианте работы.

Среди наиболее часто встречающихся ошибок при тестировании работы в режиме внешнего соединения, можно выделить следующие:

Вызов метода глобального контекста, который не может быть использован в режиме внешнего соединения (например, ВвестиЗначение() ); Использование свойства глобального контекста, которое не может быть использовано в режиме внешнего соединения (например, РабочаяДата ); Создание объекта, который не может быть использован в режиме внешнего соединения (например, Цвет );

Для исправления подобных ошибок следует использовать разрешенные методы, свойства и объекты.

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

Для исправления подобных ошибок в модуле внешнего соединения необходимо продублировать экспортные переменные, а также, при необходимости, процедуры их заполняющие.

Работа клиентского приложения в режиме клиент-сервер

Синтаксический контроль модулей в режиме эмуляции сеанса клиентского приложения в клиент-серверном варианте.

Работа внешнего соединения в режиме клиент-сервер

Синтаксический контроль модулей в режиме эмуляции сеанса внешнего соединения в клиент-серверном варианте.

Работа сервера 1С:Предприятия

Синтаксический контроль модулей в режиме эмуляции среды сервера 1С:Предприятия.

Среди наиболее часто встречающихся ошибок при тестировании работы на сервере 1С:Предприятия, можно выделить следующие:

Вызов метода глобального контекста, который не может быть использован на сервере (например, Предупреждение() ); Создание объекта, который не может быть использован на сервере (например, Цвет);

Для исправления подобных ошибок следует использовать разрешенные методы, свойства и объекты.

Вызов процедур общего модуля, у которого не установлен признак использования на сервере;

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

  • Использование переменных, определенных в модуле приложения;

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

Например: Переменная модуля приложений - глТекущийПользователь и ПараметрСеанса - ТекущийПользователь.

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

Общие рекомендации

Поставка модулей без исходных текстов

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

Логическая проверка модулей

Представляет собой набор дополнительных (не связанных с синтаксическим контролем) тестов модулей.

Поиск неиспользуемых процедур и функций

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

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

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

Проверка существования назначенных обработчиков

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

Поиск пустых обработчиков

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

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

Редактор текстов и модулей предоставляет пользователю все основные функции, необходимые при редактировании как простых текстов, так и текстов программных модулей. Конфигуратор 1С:Предприятия 8 использует этот редактор в двух режимах:
  • для редактирования текстовых документов;
  • для редактирования текстов модулей (как составную часть редактора формы).

Редактирование текстовых документов

В режиме редактирования текстовых документов редактор поддерживает все стандартные функции редактирования текста:
  • создание нового документа или открытие одного из существующих документов;
  • ввод и редактирование текста;
  • сохранение отредактированного текста;
  • печать текста.

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

Редактор текста и модуля

В дальнейшем быстрый переход по закладкам возможен по сочетанию клавиш или команде меню:

Редактор текста и модуля

Редактирование текстов модулей

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

Помимо стандартных действий, присущих любому текстовому редактору, редактор текстов и модулей имеет ряд специфических особенностей:

Выделение цветом синтаксических конструкций

Для удобства редактирования текстов модулей редактор выделяет цветом элементы встроенного языка: ключевые слова, языковые константы, операторы, комментарии и пр.:

Редактор текста и модуля

Разработчик может использовать цвета выделения, установленные по умолчанию, или настроить их самостоятельно. В общем случае система сама отслеживает необходимость включения режима выделения цветом. Однако в ситуации, когда система «не знает» о том, что редактируется текст модуля (например, если редактируется внешний текстовый файл, содержащий текст модуля), разработчик может включить режим выделения цветом вручную, используя меню конфигуратора:

Редактор текста и модуля

Группировка

При просмотре модулей редактор позволяет объединять некоторые синтаксические конструкции языка в группы, сворачивать и разворачивать их. Использование группировки синтаксических конструкций позволяет лучше воспринимать различные части текста, а также переносить и копировать группы целиком:

Редактор текста и модуля

Свернутый текст замещается специальным маркером, который позволяет просмотреть содержимое свернутой группы в виде подсказки:

Редактор текста и модуля

Разработчику предоставляется возможность настраивать режим группировки, указывая, какие синтаксические конструкции могут группироваться, и каким должно быть исходное состояние группировки (свернутая или развернутая) при открытии документа. Таким образом, он может настроить, например, использование группировок «по максимуму»:

Редактор текста и модуля

Области

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

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

Редактор текста и модуля

Области могут быть вложены друг в друга или в другие группируемые конструкции языка.

Операции с блоками

Редактор позволяет выполнять ряд операций над выделенными блоками текста модуля: автоматическое форматирование, изменение отступа, добавление/удаление комментариев и переносов строк.

Редактор текста и модуля

Форматирование модуля

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

Редактор текста и модуля

Результат автоматического форматирования:

Редактор текста и модуля

Увеличение/уменьшение отступа

Наряду с автоматическим форматированием всего выделенного текста, редактор поддерживает также операции сдвига выделенного блока вправо или влево на шаг табуляции.

Это облегчает ручное форматирование больших фрагментов кода.

Добавление/удаление комментариев

Также редактор содержит очень удобную для разработчика функцию автоматической (одним нажатием мыши) установки и снятия комментариев на выделенный текст. Такая возможность часто используется при отладке модулей:

Редактор текста и модуля

Добавление/удаление переноса строки

Использование добавления и удаления переноса строки часто применяется при переносе текстов запроса между модулем и, например, консолью запросов.

Таким образом, отладив запрос в консоли запросов, разработчик может просто скопировать текст запроса из консоли, вставить его в модуль и одним движением добавить перенос строки ко всем строкам текста запроса:

Редактор текста и модуля

Переход по процедурам и функциям

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

Редактор текста и модуля

Редактор текста и модуля

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

Переход к определению процедур и функций

Редактор позволяет автоматически переходить к определению процедуры или функции, использованной в тексте модуля. Для этого достаточно установить курсор на имени нужной функции в теле модуля и выполнить команду контекстного меню или нажать «горячую» клавишу. В окне редактора будет открыт текст искомой процедуры или функции:

Редактор текста и модуля

Контекстная подсказка

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

Редактор текста и модуля

Контекстная подсказка также работает и для параметров некоторых методов, если эти параметры задаются строковыми литералами.

Редактор текста и модуля

Копирование имен объектов и реквизитов

При написании текста модуля разработчик может просто перетаскивать мышью имена объектов или их реквизитов из дерева метаданных в нужное место модуля:

Редактор текста и модуля

Проверка модуля

Редактируемый модуль может быть проверен на правильность использования синтаксических конструкций встроенного языка, корректность обращений к методам и свойствам объектов «через точку», а также на корректность некоторых параметров, имеющих тип «Строка»:

Редактор текста и модуля

Кроме этого конфигуратор поддерживает выполнение полной проверки всех модулей, содержащихся в прикладном решении.

В процессе работы с модулем разработчик имеет возможность получать контекстную подсказку по встроенному языку, используя синтакс-помощник. Для этого достаточно установить курсор на интересующий элемент языка и нажатием комбинации клавиш (или по контекстному меню) перейти к описанию этого элемента языка в синтакс-помощнике.

Ограничение доступа к модулю

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

Редактор текста и модуля

Использование шаблонов

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

ВНИМАНИЕ. АВТОР ОБРАБОТКИ НЕ Я! БУДУ РАД, ЕСЛИ АВТОР ОТКЛИКНЕТСЯ (НАЙДЕТСЯ); И ЕЩЕ БОЛЬШЕ БУДУ РАД, ЕСЛИ ПРЕДСАВИТ НАМ БОЛЕЕ СВЕЖУЮ ВЕРСИЮ ДАННОЙ ОБРАБОТКИ:) ЕСЛИ БУДЕТ НЕОБХОДИМО УДАЛЮ ЕЕ ПО ПЕРВОМУ ТРЕБОВАНИЮ: НЕ ХОЧУ НАРУШАТЬ АВТОРСКИЕ ПРАВА.

НО ПОДЕЛИТЬСЯ ЭТОЙ ОБРАБОТКОЙ Я ХОТЕЛ БЫ.

Обработка ищет ошибочные вызовы функций и процедур общих модулей.

Что обработка находит?

Распознаются следующие типы ошибок:

1. Функция (процедура) отсутствует в общем модуле.

2. Функция (процедура) есть в общем модуле, но она не экспортная.

3. Функция (процедура) есть в общем модуле, но она может быть не доступна в контексте вызова. Например, функция располагается в общем модуле у которого установлен только флаг "Клиент", а вызывается она из модуля объекта документа. Возможен случай что вызов будет осуществляться в контексте "Сервер" или "Внешнее соединение". Для этого типа ошибки в колонках "К","С","В" выводимого табличного документа указывается символом "Х" контекст, в котором не доступен будет вызов функции.

Дополнительно, делаюстя следующие проверки:

1. В общих модулях находятся дубли имен функций и процедур.

Как воспользоваться обработкой?

1. В режиме конфигуратора сделать проверку конфигурации, установить все флажки входящие в группу "Синтаксический контроль".

2. Выгрузить тексты всех модулей в каталог. Это можно сделать одним из двух способов:

а) В меню "Конфигурация - Выгрузить файлы конфигурации", выбрать все объекты, оставить флажок "Модули" и нажать "Выполнить".

б) В каталоге с базой данных создать каталог Module и выполнить в коммандной строке:

"C:\Program Files\1cv81\bin\1cv8.exe" CONFIG /F"./" /Out test.log /DumpConfigFiles Module -Module

3. В режиме Предприятие открыть обработку, выбрать каталог в который выгрузили модули и нажать "Выполнить".

P.S. Для тех, кто воспользовался данной обработкой, думаю еще интересна будет и эта:

И эту тоже используйте (я за чистоту русского языка, автору однозначный плюс): "Орфографическая проверка конфигурации".

Наиболее функциональная разработка для анализа и тестирвания кода конфигурации: Конфигурация «Анализ конфигурации» - рекомендую ознакомиться.

Если знаете еще какие-нибудь обработки для проверки программного кода, напишите про них в комментариях.

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

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

Проверка логической целостности конфигурации

Проверяется логическая целостность конфигурации. Рекомендуется запускать перед обновлением конфигурации.

Проверка некорректных ссылок

Выполняется поиск ссылок на удаленные объекты. Поиск осуществляется по всей конфигурации.

Синтаксический контроль модулей

  • Тонкий клиент
  • Веб клиент
  • Сервер
  • Внешнее соединение
  • Внешнее соединение(вариант клиент-сервер)
  • Мобильное приложение - клиент
  • Мобильное приложение - сервре
  • Толстый клиент (управляемое приложение)
  • Толстый клиент (управляемое приложение, вариант клиент-сервер)
  • Толстый клиент (обычное приложение)
  • Толстый клиент (обычное приложение, вариант клиент-сервер)
  • Поставка модулей без исходных текстов

Поиск неиспользуемых процедур и функций

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

Проверка существования назначенных обработчиков

Проверяются на существование назначенные обработчики событий форм, элементов формы, интерфейсов, элементов карт маршрутов.

Поиск пустых обработчиков

Осуществляется поиск назначенных обработчиков событий, в которых не выполняются никакие действия. Наличие таких обработчиков замедляет работу системы.

Расширенная проверка

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

Поиск не поддерживаемой функциональности


При данной настройке осуществляется поиск функциональности, которая не может быть выполнена в мобильном приложении.

Комментарии (0)

Читайте также: