Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Импорт Перечисления из 8.2 в 7.7
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
rus80629
Ткните пожалуйста если это уже обсуждалось. Поиском пользовался кроме этого необходимо зарегистрироваться для просмотра ссылки не нашел. Но моих мозгов не хватило понять по этой статье как решить мой вопрос.
Итак:
Есть импорт из 8.2 УТ 10 в Бух 7.7 через COMConnector OLE.
В табличной части документа (допустим Счет) необходимо получить значение СтавкаНДС. Но Так как тип Ссылка.Перечисление.... и у перечислений нет реквизитов не могу никак понять как его получить.
Спасибо за помощь...
logist
Курить эту сторону: ЗначениеВСтрокуВнутр / ЗначениеИзСтрокиВнутр
rus80629
Отладчик мне выдал ЗначениеВстроку(СтрТабЧасти.СтавкаНДС) = "{}"
Пока курил нашел такой способ.
БазаОле.XMLstring(БазаОле.Перечисления.СтавкиНДС.НДС20) можно использовать через условие.
Но все равно спасибо за помощь ))

Точнее вот так БазаОле.XMLstring(СтрТабЧасти.СтавкаНДС)
Markiz
Цитата(rus80629 @ 16.07.14, 21:40) необходимо зарегистрироваться для просмотра ссылки
Отладчик мне выдал ЗначениеВстроку(СтрТабЧасти.СтавкаНДС) = "{}"
Пока курил нашел такой способ.
БазаОле.XMLstring(БазаОле.Перечисления.СтавкиНДС.НДС20) можно использовать через условие.
Но все равно спасибо за помощь ))

Точнее вот так БазаОле.XMLstring(СтрТабЧасти.СтавкаНДС)


//    Ном = база8.Перечисления.СтавкиНДС.Индекс(стр.СтавкаНДС);
//    Имя = база8.Метаданные().Перечисления.СтавкиНДС.EnumValues.Get(Ном).Name;

Например:
// Получить ставку НДС по объекту СтавкаНДС из 8.2
//  входящий параметр - ссчылка на реквизит "СтавкаНДС" из документа или элемента справочника 8.2
//
Функция ПолучитьВидНДС(инСтавкаНДС)
    Перем ном, имя;
    
    Если ПустоеЗначение(инСтавкаНДС) = 0 Тогда
        
        Попытка
            ном = база8.Перечисления.СтавкиНДС.Индекс(инСтавкаНДС);        // номер значения перечисления в 8.2
            имя = база8.Метаданные().Перечисления.СтавкиНДС.EnumValues.Get(Ном).Name;    // имя значения перечисления в 8.2
        Исключение
            // если попали в эту ветку, значит в исходном документе СтавкаНДС не определена
            имя = "БезНДС";
        КонецПопытки;    
        
        Если спрНиО.НайтиПоКоду(имя, 0) = 1 Тогда
            Возврат спрНиО.ТекущийЭлемент();
        Иначе    // в 8.2 есть "НеНДС"
            Если спрНиО.НайтиПоКоду(имя, 0) = 1 Тогда
                Возврат спрНиО.ТекущийЭлемент();
            КонецЕсли;
        КонецЕсли;
    Иначе    
        Возврат ПолучитьПустоеЗначение("Справочник.НалогиОтчисления");
    КонецЕсли;    
    
КонецФункции



 ! 

Правила, пункт 12: выделяйте код.
 
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.