Определить ошибочные реквизиты.
Процедура ОпределитьОшибочныеРеквизиты(ПараметрыТекстаСообщения, ОшибочныеРеквизиты, СведенияОШаблоне, Префикс = "") Экспорт
ИмяУзлаОбщихРеквизитов = ИмяУзлаОбщихРеквизитов();
Для каждого Реквизит Из ПараметрыТекстаСообщения Цикл
Если ТипЗнч(Реквизит.Значение) = Тип("Соответствие") Тогда
ОпределитьОшибочныеРеквизиты(Реквизит.Значение, ОшибочныеРеквизиты, СведенияОШаблоне, Префикс + Реквизит.Ключ + ".");
Иначе
ПозицияФорматТекст = СтрНайти(Реквизит.Ключ, "{", НаправлениеПоиска.СКонца);
Если ПозицияФорматТекст > 0 Тогда
ИмяПараметра = Префикс + Лев(Реквизит.Ключ, ПозицияФорматТекст - 1);
Иначе
ИмяПараметра = Префикс + Реквизит.Ключ;
КонецЕсли;
Если СтрНачинаетсяС(Префикс, ИмяУзлаОбщихРеквизитов) Тогда
НайденныйРеквизит = СведенияОШаблоне.ОбщиеРеквизиты.Строки.Найти(ИмяПараметра, "Имя", Истина);
Иначе
НайденныйРеквизит = СведенияОШаблоне.Реквизиты.Строки.Найти(ИмяПараметра, "Имя", Истина);
КонецЕсли;
Если НайденныйРеквизит = Неопределено Тогда
ОшибочныеРеквизиты.Добавить(ИмяПараметра);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОпределитьОбщиеРеквизиты (БСП)
РезультатАнализаОшибочныхПолучателей (БСП)
ПриОпределенииОбъектовСРедактируемымиРеквизитами (БСП)
Определить это Linux или Windows
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)