Вопрос знатокам КД: конвертация перечисления - как отловить не найденное значение.
Есть:
- типовая конфигурация УТ и сильно порезанная УТ более раннего релиза.
- необходимость выгружать значения перечисления "Хозяйственные операции"
- есть не сопоставленные значения на вкладке "Конвертация значений"
Вопрос:
- как предотвратить возникновение ошибки "Не найдено соответствие для значения Источника", которое неизбежно возникает из-за значений, ненайденых в сопоставлении значений. Проверять на определенное значение и подставлять другое - не предлагайте, хочу просто во всех подобных возникающих случаях подставлять свое дефолтное значение.
- типовая конфигурация УТ и сильно порезанная УТ более раннего релиза.
- необходимость выгружать значения перечисления "Хозяйственные операции"
- есть не сопоставленные значения на вкладке "Конвертация значений"
Вопрос:
- как предотвратить возникновение ошибки "Не найдено соответствие для значения Источника", которое неизбежно возникает из-за значений, ненайденых в сопоставлении значений. Проверять на определенное значение и подставлять другое - не предлагайте, хочу просто во всех подобных возникающих случаях подставлять свое дефолтное значение.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) kermzyxer, У меня такое ощущение, что мы говорим о разных вещах. Я так понимаю, вы говорите о неком коде в обработчиках событий, не могли бы вы привести хотя бы грубый пример без соблюдения синтаксиса? Кстати о каких типах идет речь? У меня всего один тип - Перечисление.ХозОперации.
Не нашел у себя перечисление Хозоперации, видимо у вас совсем старая торговля. Берем любое другое перечисление. Останавливаемся в правилах на нем. Слева внизу закладка Конвертация значений. На ней кнопка Синхронизация значений. Там будет список несопоставленных значений, если они есть. Отдельно значения из источника и значения из приемника. Вот там ставим флажки у всех значений приемника. И потом выбираем соответствующие значения из источника. Выбирайте, какие Вам нравятся, хоть одно и то же для всех.
(4) kermzyxer, теперь читаем внимательно мое первое сообщение - "Проверять на определенное значение и подставлять другое - не предлагайте, хочу просто во всех подобных возникающих случаях подставлять свое дефолтное значение.", а также "есть не сопоставленные значения на вкладке "Конвертация значений". И там нет никаких типов,есть значения. Хоз.операции - это ХозяйственныеОперации, неужели так сложно догадаться.
Мне нужно как-то в обработчике определить, найдено значение в синхронизированных значениях или нет.
Мне нужно как-то в обработчике определить, найдено значение в синхронизированных значениях или нет.
Проверять на определенное значение и подставлять другое - не предлагайте, хочу просто во всех подобных возникающих случаях подставлять свое дефолтное значение. Проверять и не предлагал, а предлагал проставить дефолтное значение для несопоставленных объектов. Ну а хочется странного - флаг Вам в руки. Передайте все имеющиеся значения в параметр и анализируйте в обработчике. Но мешает Ваше не предлагайте проверять. Формулируйте точнее, не придется тратить время, на внимательное чтение
У меня было ПКО1 перечисление1-справочник1 и ПКО2 перечисление1-справочник2.
ПКО2 должно быть 2 по списку если использовать метод в ПКО перед выгрузкой:
А если использовать закомментированный код, то ПКО2 должно идти первым в списке всех ПКО
ПКО2 должно быть 2 по списку если использовать метод в ПКО перед выгрузкой:
Если Источник = Перечисления.ВидыПлатежейВГосБюджет.Налог Тогда
ИмяПКО = "ПлатежиВБюджет";
ПКО = НайтиПравило(Источник, ИмяПКО);
//ВыгрузитьПоПравилу(РасходыПоСтрахованию,
// Неопределено,
// Неопределено,
// Неопределено,
// "ПлатежиВФонды",
// ,
// ,
// );
КонецЕсли;
ПоказатьА если использовать закомментированный код, то ПКО2 должно идти первым в списке всех ПКО
(9) Xershi, "Если Источник = Перечисления.ВидыПлатежейВГосБюджет.Налог Тогда" вот такого я не хочу делать, новые значения перечисления добавляются частенько, я не хочу каждый раз код добавлять, хочу универсальное решение, позволяющее отследить ситуацию, когда значение не найдено.
(12) Xershi, как я писал в своем первом сообщении. у меня есть конфа, которую мы из типовой УТ годовалого релиза запилили, добавлять новое мы не хотим, так как конфа узкоспециализированная, нас наше перечисление "Хоз.операции" полностью устраивает, а ошибок при выгрузке хочется избежать каким-то универсальным путем без постоянных редакций.
Но вы мне своим листингом подсказали идею, так что спасибо)
Но вы мне своим листингом подсказали идею, так что спасибо)
Вопрос решился таким кодом, имя соответствия меняется в зависимости от варианта выгрузки, через внешнюю обработку или через внутренние.
Если Параметры.ОбменЧерезКонвертацию Тогда
СоответствиеЗначений = ПКО.ЗначенияПредопределенныхДанных;
Иначе
СоответствиеЗначений = ПКО.Значения;
КонецЕсли;
Если СоответствиеЗначений[Источник] = Неопределено Тогда
Отказ = Истина;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот