При разработке под международные версии 1С:Предприятие часто возникают сложности с локализацией параметров регистрации. Платформа ожидает специфические строковые константы, которые отличаются от привычных русскоязычных аналогов. Давайте разберем, как правильно реализовать функцию InfoAboutExternalDataProcessor, чтобы ваша внешняя обработка или печатная форма корректно отображалась в англоязычном интерфейсе.
Для того чтобы система «увидела» вашу обработку и правильно добавила её в список дополнительных отчетов и обработок, необходимо вернуть структуру с жестко заданными ключами. Даже если вы пишете основной код на русском языке, параметры регистрации должны строго соответствовать требованиям платформы.
Рассмотрим пример реализации функции, которая успешно проходит регистрацию в англоязычной среде:
Function InfoAboutExternalDataProcessor Export
ДанныеДляРег = New Structure;
ДанныеДляРег.Insert("Description", "Mailing Reports");
ДанныеДляРег.Insert("SafeMode", False);
ДанныеДляРег.Insert("Version", "ver.: 1.000");
ДанныеДляРег.Insert("Information", "External processor for automatic reports sending");
ДанныеДляРег.Insert("Type", "AdditionalDataProcessor");
ТабЗнКоманды = New ValueTable;
ТабЗнКоманды.Columns.Add("Id");
ТабЗнКоманды.Columns.Add("Modifier");
ТабЗнКоманды.Columns.Add("Presentation");
ТабЗнКоманды.Columns.Add("ShowAlert");
ТабЗнКоманды.Columns.Add("UsageVariant");
НовСтрока = ТабЗнКоманды.Add();
НовСтрока.Id = New UUID();
НовСтрока.Modifier = "MailingReports";
НовСтрока.Presentation = "Mailing Reports";
НовСтрока.ShowAlert = False;
НовСтрока.UsageVariant = "CallServerMethod";
ДанныеДляРег.Insert("Commands", ТабЗнКоманды);
Return ДанныеДляРег;
EndFunction
При заполнении структуры мы сталкиваемся с необходимостью перевода функциональных вариантов. Рассмотрим основные ключи, которые чаще всего вызывают вопросы:
AdditionalReport для отчетов, AdditionalDataProcessor для обработок и PrintForm для печатных форм.CallServerMethod. Для клиентских методов — CallClientMethod. Если требуется открыть форму — OpenForm.Если вы столкнулись с методом или параметром, перевод которого вызывает сомнения, не стоит полагаться на догадки. Разберем наиболее эффективные способы поиска правильных значений:
Словарь.Insert("ClientCall", Менеджер.ВызовКлиентскогоМетода);
Словарь.Insert("ServerCall", Менеджер.ВызовСерверногоМетода);
Словарь.Insert("FormOpen", Менеджер.ОткрытиеФормы);
Работая с англоязычной конфигурацией, помните о следующих важных моментах:
Во-первых, платформа поддерживает англоязычный синтаксис. Ключевые слова Function, EndFunction, If, Then, New, Return работают везде одинаково. Переключение на английский язык в конфигураторе делает ваш код более доступным для коллег из других стран.
Во-вторых, не забывайте про метаданные. Помимо программного кода, важно правильно заполнять поля «Синоним» (Synonym) в объектах метаданных. Если они будут пустыми, англоязычные пользователи увидят либо русские названия, либо технические идентификаторы, что значительно снизит удобство использования системы.
В-третьих, придерживайтесь стандартов БСП. Если вы используете Библиотеку стандартных подсистем, убедитесь, что структура параметров регистрации полностью соответствует требованиям механизмов БСП. Ошибки в написании ключей в InfoAboutExternalDataProcessor приведут к тому, что обработка просто не будет обнаружена системой, и вы не увидите её в списке доступных команд.
Следуя этим рекомендациям, вы сможете без труда разрабатывать качественные и понятные решения для международных внедрений, делая архитектуру ваших разработок прозрачной и профессиональной.