1с не найдена служебная контекстная проверка
Есть 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) кстати на рисунке ругается на переменную ОбщегоНазначения, а не на траляля
Наведи порядок в своей работе используя конфигурацию 1C "Управление IT-отделом 8"
Особенности использования проверки конфигурации
Механизм проверки конфигурации позволяет выявить ошибки, которые не являются критичными для функционирования прикладного решения в принципе, но наличие которых может существенно снизить скорость работы прикладного решения или даже привести к возникновению ошибок при работе в некоторых специальных режимах.
Выполнение данных проверок не является обязательным (как, например, в случае синтаксического контроля), но является желательным, например, для проверки конфигурации перед поставкой заказчику, перед выпуском тиражного решения, для проверки после массированного удаления объектов или после объединения конфигураций.
Механизм проверки конфигурации включает в себя несколько тестов. Часть этих тестов доступна и в других режимах конфигуратора, а остальные специально разработаны для этого механизма.
Рассмотрим особенности этих тестов:
Проверка логической целостности конфигурации
Проверка логической целостности конфигурации включает в себя ряд стандартных проверок целостности прикладных объектов, которые обычно выполняются автоматически перед обновлением конфигурации базы данных.
Например проверка того, что все объекты метаданных в пределах одной ветки имеют уникальные имена.
Поиск некорректных ссылок
Конфигурация на платформе 1С:Предприятие 8.1 представляет собой набор взаимосвязанных объектов. Каждый объект определяется его свойствами. Эти свойства могут содержать ссылки на другие объекты метаданных.
Ссылки бывают прямые (например, свойство справочника ОсновнаяФорма ссылается на объект метаданных Форма ) или косвенные. К косвенным относятся, например, ссылки на типы, относящиеся к объекту метаданных, например СправочникСсылка.Номенклатура или ссылки на предопределенные значения объекта.
Свойства объектов метаданных можно разделить на простые и сложные. К простым, например, относятся Имя , Синоним , Тип , ОсновнаяФорма и другие. Сложными свойствами являются Форма , Макет , Интерфейс , Права , СправочнаяИнформация .
Логика работы платформы 1С:Предприятие 8.1 построена таким образом, что наличие некорректных (неразрешимых) ссылок в простых свойствах в режиме 1С:Предприятие не допускается. При стандартных операциях редактирования, конфигуратор не позволит возникнуть таким ссылкам.
Например, нельзя удалить форму, если ссылка на нее содержится в свойстве справочника.
Впрочем, получить конфигурацию, которая такие ссылки содержит все же возможно. Например, при объединении конфигурации, если пометить к объединению только один объект метаданных и не помечать объекты, на которые он ссылается. При этом будет выдано предупреждение, но его можно игнорировать и выполнить объединение. Подобное поведение реализовано для облегчения процесса объединения конфигураций. Предполагается, что после объединения разработчик вручную поправит неразрешимые ссылки. Обязательная проверка простых свойств на корректность выполняется при обновлении конфигурации.
Сложные свойства ведут себя несколько иначе. Отслеживание всех ссылок во всех формах представляет собой слишком ресурсоемкий процесс, поэтому наличие неразрешимых ссылок в них допустимо. Допустимо в том смысле, что программа будет работать, однако ее функциональность может быть нарушена.
Например, в форме окажется поле ввода не связанное с данными или в справочной информации будет "переход в никуда".
Для поиска и исправления таких ситуаций предназначен механизм поиска некорректных ссылок. Он позволяет определить только факт наличия неразрешимых ссылок в той или иной форме. Их поиск и исправление возлагается на разработчика.
Ниже приведены некоторые рекомендации, которые могут помочь в данном процессе.
Неразрешимые ссылки в справочной информации
Если неразрешимые ссылки обнаружены в модуле справки, то для их локализации и исправления следует проверить работоспособность всех ссылок, находящихся в указанном модуле.
Если ссылка не работает, но существует объект, на который она ссылается - нужно скорректировать ссылку. Если объект, на который указывает ссылка, отсутствует - нужно, как минимум, очистить ссылку и, возможно, удалить соответствующий текст справки.
Некорректные ссылки в формах объектов
Если неразрешимые ссылки обнаружены в форме объекта, то для их локализации прежде всего следует проверить на непустое значение свойства формы и свойства элементов формы (например такие свойства, как Цвет , Шрифт , Рамка и т.д.). Для табличного поля следует также проверить свойства колонок и элементов управления, расположенных в колонках.
Для всех этих свойств значение в палитре свойств не должно быть пустым, т.е. должно отображаться либо какое-то конкретное значение, либо значение Авто . Все остальные случаи определяются как неразрешимые ссылки.
Для исправления такой ссылки следует либо задать для свойства необходимое значение, либо очистить значение (что приведет к установке значения Авто ).
Также довольно распространенным случаем некорректных ссылок может быть неправильный перечень реквизитов объекта в свойстве формы Сохраняемые значения . Для исправления таких ссылок необходимо открыть окно настройки этого свойства, и ничего не меняя нажать ОK .
Также следует проверять связи с данными. Например, для свойств Связь по владельцу и Связь по типу нужно убедиться, что в окне формы настройки связи будет выбрано конкретное значение. Если нет - нужно заново выбрать нужное значение.
Неразрешимые ссылки также могут возникать в предопределенных элементах. Для исправления таких ссылок может оказаться достаточным установки признака модифицированности списка предопределенных элементов, и последующего сохранения объекта метаданных.
Для автоматизации поиска неразрешимых ссылок можно использовать Проверку конфигурации (команда Конфигурация - Проверка конфигурации в Конфигураторе).
Общие рекомендации
Самый лучший способ борьбы с неразрешимыми ссылками - по возможности не допускать их появления.
Например, как было указано, при удалении объекта конфигуратор проверит наличие ссылок на удаляемый объект, но только в простых свойствах. Поэтому перед удалением рекомендуется провести полный поиск. Обратите внимание, что начиная с релиза 8.1.10, при выполнении команды "Поиск ссылок на объект" (и "Поиск ссылок в объекте") можно указать поиск во всех свойствах.
Синтаксический контроль модулей
Механизм проверки конфигурации предоставляет расширенные возможности синтаксического контроля модулей. Они позволяют проверить работоспособность конфигурации во всех режимах, предусмотренных разработчиком. Для того, чтобы понять назначение каждого из режимов, рассмотрим подробнее особенности исполнения модулей в платформе 1С:Предприятие 8.1.
Конфигурация может исполняться в двух сеансах - клиентского приложения и внешнего соединения. Кроме этого, конфигурация может быть развернута в файловом варианте и клиент-серверном варианте. Различия режимов определяются составом объектов и их свойств. Не все объекты доступны при исполнении на сервере 1С:Предприятия и в режиме внешнего соединения.
Все модули, с точки зрения режимов исполнения, можно разделить на 5 групп. Это общие модули, модуль приложения, модуль внешнего соединения, модули хранимых объектов (обобщенное название, сюда относятся модули объектов, наборов записей) и модули форм.
Общие модули могут выполняться на клиенте, на сервере и в режиме внешнего соединения. Доступность конкретного общего модуля в каждой из этих сред определятся соответствующим свойством.
Модуль приложения всегда исполняется на клиенте.
Модуль внешнего соединения всегда исполняется в режиме внешнего соединения.
Модули хранимых объектов могут исполняться везде. Это зависит того, где был создан соответствующий объект.
Модули форм всегда исполняются только на клиенте.
Важной особенностью 1С:Предприятия 8.1 являются различия между файловым вариантом работы и клиент-серверным. В файловом варинате для всех исполняемых модулей доступен контекст как сервера так и клиента или внешнего соединения, в зависимости от типа сеанса. То есть, даже если у общего модуля в свойствах указано исполнение только на сервере, в файловом варианте работы в нем можно создавать объекты, доступные только на клиенте. Однако при развертывании данной конфигурации в режиме клиент-сервер, выполнение подобного модуля приведет к ошибке.
Для выявления подобных "тонких" случаев, механизм проверки конфигурации предоставляет проверки модулей во всех пяти вариантах среды исполнения.
Работа клиентского приложения
Синтаксический контроль модулей в режиме эмуляции сеанса клиентского приложения в файловом варианте работы.
Работа внешнего соединения
Синтаксический контроль модулей в режиме эмуляции сеанса внешнего соединения в файовом варианте работы.
Среди наиболее часто встречающихся ошибок при тестировании работы в режиме внешнего соединения, можно выделить следующие:
Вызов метода глобального контекста, который не может быть использован в режиме внешнего соединения (например, ВвестиЗначение() ); Использование свойства глобального контекста, которое не может быть использовано в режиме внешнего соединения (например, РабочаяДата ); Создание объекта, который не может быть использован в режиме внешнего соединения (например, Цвет );Вызов процедур общего модуля, для которого не установлено свойство использования во внешнем соединении. Использование переменных, определенных в модуле приложения;Для исправления подобных ошибок следует использовать разрешенные методы, свойства и объекты.
Для исправления подобных ошибок в модуле внешнего соединения необходимо продублировать экспортные переменные, а также, при необходимости, процедуры их заполняющие.
Работа клиентского приложения в режиме клиент-сервер
Синтаксический контроль модулей в режиме эмуляции сеанса клиентского приложения в клиент-серверном варианте.
Работа внешнего соединения в режиме клиент-сервер
Синтаксический контроль модулей в режиме эмуляции сеанса внешнего соединения в клиент-серверном варианте.
Работа сервера 1С:Предприятия
Синтаксический контроль модулей в режиме эмуляции среды сервера 1С:Предприятия.
Среди наиболее часто встречающихся ошибок при тестировании работы на сервере 1С:Предприятия, можно выделить следующие:
Вызов метода глобального контекста, который не может быть использован на сервере (например, Предупреждение() ); Создание объекта, который не может быть использован на сервере (например, Цвет);Вызов процедур общего модуля, у которого не установлен признак использования на сервере;Для исправления подобных ошибок следует использовать разрешенные методы, свойства и объекты.
Для исправления подобных ошибок следует установить свойство Сервер общего модуля, либо, если вызываемая процедура используется только на сервере, перенести ее в отдельный общий модуль с установленным свойством Сервер . Также, для исправления подобных ошибок, можно использовать директивы препроцессора, в явном виде указывающие контекст исполнения участка кода.
- Использование переменных, определенных в модуле приложения;
Для исправления подобных ошибок следует использовать параметры сеанса, содержащие аналогичные значения экспортных переменных модуля приложения.
Например: Переменная модуля приложений - глТекущийПользователь и ПараметрСеанса - ТекущийПользователь.
Важно учитывать, что время получения значения параметра сеанса значительно превышает время получения значения переменной модуля приложения. Поэтому, полный отказ от использования переменных модуля приложения в пользу параметров сеанса является неправильным. Следует применять комбинированный метод: - в модулях объектов следует применять только параметры сеанса, поскольку это решит проблему недоступности объектов на сервере - в модулях форм следует применять только переменные модуля приложения, поскольку здесь более важным является быстродействие кода, кроме того модуль формы заведомо не будет выполняться на сервере.
Общие рекомендации
Поставка модулей без исходных текстов
В группе тестов синтаксического контроля модулей представлен также тест создания файлов поставки и обновления. В настройках поставки можно указать поставку модулей объекта без исходных текстов, однако для того чтобы воспользоваться этой возможностью, модуль не должен содержать директив препроцессора, что и проверяется этим тестом.
Логическая проверка модулей
Представляет собой набор дополнительных (не связанных с синтаксическим контролем) тестов модулей.
Поиск неиспользуемых процедур и функций
Сами по себе неиспользуемые (никогда не вызываемые) процедуры и функции ошибкой не являются, однако их наличие может косвенно свидетельствовать об ошибках в логике конфигурации. В частности, с помощью этого теста можно найти потерянные, в том числе и случайно, обработчики событий элементов управления в формах.
Самой главной особенностью этого теста является то, что анализ использования выполняется в пределах модуля, где данная процедура расположена, дополнительно анализируется возможное использование процедуры в качестве обработчика какого-либо события. Процедуры и функции, которые объявлены как экспортные, никогда не считаются неиспользуемыми. Это связано с их возможным вызовом из внешнего соединения. Поэтому невозможно использовать данный тест для обнаружения потерянных обработчиков команд интерфейсов, поскольку такие обработчики должны быть объявлены как экспортные.
Следует учитывать, что в некоторых случаях определение процедуры или функции как неиспользуемой может выполняться некорректно. Это относится к случаям динамического назначения обработчиков событий при помощи объекта Действие и методов УстановитьДействие() и ПодключитьОбработчикОжидания() .
Проверка существования назначенных обработчиков
Проверяется существование обработчиков, на которые ссылаются элементы управления в формах, команды в интерфейсах и элементы графических схем.
Полезность этого теста заключается в том, что в режиме 1С:Предприятие отсутствие обработчика не вызовет ошибки, - просто ничего не будет выполнено. В итоге локализация ошибки конфигурации может быть затруднена.
Поиск пустых обработчиков
Пустой (ничего не исполняющий) обработчик события формально не является ошибкой, однако наличие таких обработчиков может негативно сказаться на производительности конфигурации, особенно если соответствующее событие возникает регулярно, например событие При выводе строки табличного поля.
При обновлении программного обеспечения 1С Бухгалтерия иногда встречается вредная ошибка, не позволяющая закончить обновление конфигурации. Например такая:
РегистрСведений.УдалитьНастройкиВерсионированияОбъектов: Регистр без измерений, ресурсов и реквизитов:
При проверке метаданных обнаружены ошибки!
Операция не может быть выполнена.
Собственно, после этой ошибки невозможно завершить корректно обновление конфигурации базы данных. Что нам делать? Можно обратиться за помощью к специалистам, если таковые рядом имеются, если обновление конфигурации базы данных вы производите самостоятельно, не секрет, что для этого не обязательно иметь семь пядей во лбу, то пробуем выполнить нижеследующий алгоритм.
Оговорка. Для простоты восприятия будет много картинок. Решение проблемы происходит на снятой с поддержки конфигурации. Отображенная конфигурация является дописанной и внешний вид несколько отличается от стандартной 1С Бухгалтерии.
Делаем бэкап базы данных. Кто желает рискнуть провести все манипуляции, позволив сгореть всем мостам, на здоровье. Можно заархивировать директорию базы данных, если она у вас файловая, у кого sql версия можно просто Выгрузить базу данных в конфигураторе. Ну и так далее. Обновляем базу данных через Конфигуратор стандартным способом.
Обновление конфигурации отображает текущую версию поставщика и соответственно новую версию конфигурации
После запускается процесс сравнения объектов
По окончании видим обновление основной конфигурации и новой конфигурации
Выполняем замещение объектов, измененных в основной конфигурации по отношению к старой конфигурации поставщика
Настраиваем правила поддержки
Происходит объединение конфигураций, согласно наших настроек
Регистр Сведений Удалить Настройки Версионирования Объектов: Регистр без измерений, ресурсов и реквизитов: При проверке метаданных обнаружены ошибки! Операция не может быть выполнена.
В моем случае регистр не содержал данных и не имел дублей. Пробуем его удалить. Правой кнопкой контекстное меню.
После удаления запускаем реорганизацию базы данных и проверяем изменения в структуре информации конфигурации
Ошибок более не выявлено. Обновление конфигурации завершается успешно. Закрываем конфигуратор. Выполняем вход в нашу базу данных 1С Бухгалтерия стандартным методом. Происходит стандартная операция обновления версии программы на вновь загруженную.
В данном случае ошибка считается решенной. Замечу, что появление ошибки
не всегда решается путем удаления определенного регистра сведений. Возможны например дубли или некорректные данные. И выполнять вышеописанный алгоритм следует при ошибочной записи в регистре. Не забывайте про бэкап. Пользователям с конфигурацией, стоящей на поддержке можно пропустить пункты по замещению объектов из новой конфигурации поставщика.
Шеф! Все пропало!
Что делать, если ошибка не была исправлена и все рухнуло? Удаляем рабочую базу данных, восстанавливаемся из бэкапа и продолжаем свои изыскания.
Не последняя, но думаю дело не в этом. База серверная.
При проверки контрагентов из отчета "Декларация по налогу на добавленную стоимость"
на одном компьютере все хорошо - выполняется проверка,
а на другом выдается ошибка
Подскажите пож, что надо сделать на втором компе, что бы можно было выполнять проверку?
Из браузера на втором компе эта ссылка открыывается(1) для начала посмотреть цепочку сертификатов в браузере
+(3) убедиться что корневой сертификат имеется в cacert.pem
(3) а что именно там смотреть?
cacert.pem качал вроде, он изменене 28 марта 2018 г., 17:48:41
и помещал в платформу
Помогите пож, подскажите что посмотреть?
На одном компе проверка идет, на другом нет :(..
(7) наличие корневого сертификата из (3) в cacert.pem - я этого не понимаю..
какой корневой?
(6) >> На одном компе проверка идет, на другом нет :(..
на одном компе винда более-менее свежая (обновленная) на другом - нет, по крайней мере, старше 2018 года.
что делать, что делать? - для тебя (раз ты не умеешь работать с сертификатами и не знаешь, что такое цепочка) - винду обновить. От того, что Win7 больше не поддерживается, не значит, что ее нельзя обновить до упора, установить все обновления, которые были выпущены после того, как на этот комп win7 была установлена.
(5) >> cacert.pem качал вроде, он изменене 28 марта 2018 г., 17:48:41
этот не то.
в любом случае, в цепочке сертификатов есть сертификат (промежуточный) который выпущен 20.11.2018. А сам сертификат налоговой вообще свеженький, только "испеченный".
и вообще, это полезно и прост она любой случай.
открой (щелкни по нему) на том компе, ге у тебя НЕ работает и сделай скриншоты всех трех закладок (Общие, Состав, Путь сертификации) и покажи скриншоты сюда
Читайте также:
- Где брать картинки для презентации в powerpoint
- Как создать обтравочную маску в фотошопе
- Назначение процессора в персональном компьютере обрабатывать одну программу в данный
- Kaspersky в этой версии microsoft windows 10 функциональность программы может быть ограничена
- Не устанавливаются драйвера can clip