Имя: Пароль:
1C
1С v8
Преобразовать код страны в страну
0 DirecTwiX
 
06.12.13
11:53
Например, CN в Китай.
Может есть у кого процедура?

Спасибо
1 DirecTwiX
 
06.12.13
11:53
КА. У справочника страна нет элемента код
2 Wobland
 
06.12.13
11:54
(1) ну наименование возьми
3 Преднаименование
 
06.12.13
11:56
Есть подобная обработка, но для единиз имерения.

Нужно будет макет другой указать и поля.

Если справшься могу дать
4 Преднаименование
 
06.12.13
11:56
(1) Есть макет.
5 Эмбеддер
 
06.12.13
11:58
нажми в классификаторе стран мира в форме списка "Подбор из ОКСМ"
6 dclxvi
 
06.12.13
12:06
Если руки прямые допишешь:

Процедура ЗаполнеитьТЗЕдИЗ()  Экспорт
    //ТЗЕдИЗ=Новый ТаблицаЗначений;
    ТЗЕдИЗ.Очистить();
    ТЗЕдИЗ.Колонки.Очистить();
    ТЗЕдИЗ.Колонки.Добавить("КодЕд");
    ТЗЕдИЗ.Колонки.Добавить("ИмяЕд");
    ТЗЕдИЗ.Колонки.Добавить("МестОбозЕд");
    ТЗЕдИЗ.Колонки.Добавить("МеждОбозЕд");
    ТЗЕдИЗ.Колонки.Добавить("МестКодЕд");
    ТЗЕдИЗ.Колонки.Добавить("МеждКодЕд");
    
    Макет = Справочники.КлассификаторЕдиницИзмерения.ПолучитьМакет("КлассификаторЕдиницИзмерения");
    Для НомСтрМак=1 По Макет.ВысотаТаблицы Цикл
        КодЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,2,НомСтрМак,2).Текст));
        
        Если (( не ЕстьНеЦифрыВСтроке(КодЕд)) и (ЗначениеЗаполнено(КодЕд))) Тогда
            СтрЕд=ТЗЕдИЗ.Добавить();
            СтрЕд.КодЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,2,НомСтрМак,2).Текст));
            СтрЕд.ИмяЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,3,НомСтрМак,3).Текст));
            СтрЕд.МестОбозЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,4,НомСтрМак,4).Текст));
            СтрЕд.МеждОбозЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,5,НомСтрМак,5).Текст));
            СтрЕд.МестКодЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,6,НомСтрМак,6).Текст));
            СтрЕд.МеждКодЕд=СокрЛП(Строка(Макет.Область(НомСтрМак,7,НомСтрМак,7).Текст));
        КонецЕСли;
    КонецЦикла;
КонецПроцедуры    


Функция ПолучитьСпЕдиз(элЕдИз,ДокЕдиз="",СтрЕдиз="")
    КодЕдИз="796";
    ИмяЕдИз="PCE";
    Попытка
        ЕСли ЗначениеЗаполнено(элЕдИз) ТОгда      
            ЕСли ЗначениеЗаполнено(элЕдИз.ЕдиницаПоКлассификатору) ТОгда      
                ИмяКраткое=элЕдИз.ЕдиницаПоКлассификатору.Наименование;
                ИмяПолное=элЕдИз.ЕдиницаПоКлассификатору.НаименованиеПолное;
                
                ИмяКраткое=СтрЗаменить(ИмяКраткое,".","");
                ИмяКраткое=СтрЗаменить(ИмяКраткое,"  "," ");
                ИмяКраткое=СтрЗаменить(ИмяКраткое,"  "," ");
                ИмяКраткое=СтрЗаменить(ИмяКраткое,"  "," ");
                ИмяКраткое=СокрЛп(ИмяКраткое);
                
                ИмяПолное=СтрЗаменить(ИмяПолное,".","");
                ИмяПолное=СтрЗаменить(ИмяПолное,"  "," ");
                ИмяПолное=СтрЗаменить(ИмяПолное,"  "," ");
                ИмяПолное=СтрЗаменить(ИмяПолное,"  "," ");
                ИмяПолное=СокрЛп(ИмяПолное);
                
                ИмяКраткое=?(Найти(Нрег(ИмяКраткое),"пачка")<>0,"упак",ИмяКраткое);
                ИмяПолное=?(Найти(Нрег(ИмяПолное),"пачка")<>0,"Упаковка",ИмяПолное);
                
                Отбор = Новый Структура();
                Отбор.Очистить();
                Отбор.Вставить("ИмяЕд",ИмяПолное);
                Строки = ТЗЕдИЗ.НайтиСтроки(Отбор);
                Если Строки.Количество() = 1 Тогда
                    Если ЗначениеЗаполнено(Строки[0].МеждКодЕд) ТОгда
                        КодЕдИз=Строки[0].КодЕд;
                        ИмяЕдИз=Строки[0].МеждКодЕд;
                    ИНаче
                        Сообщить("В документе:"+СокрЛп(Строка(ДокЕдиз))+" в строке:"+СокрЛп(Строка(СтрЕдиз))+" - в классификаторе для еденица измерения:"+элЕдИз.Наименование+" не указано международное обозначение, будет указана PCE (штуки).");    
                    КонецЕсли;
                Иначе
                    Отбор = Новый Структура();
                    Отбор.Очистить();
                    Отбор.Вставить("МестОбозЕд",ИмяКраткое);
                    Строки = ТЗЕдИЗ.НайтиСтроки(Отбор);
                    Если Строки.Количество() = 1 Тогда
                        Если ЗначениеЗаполнено(Строки[0].МеждКодЕд) ТОгда
                            КодЕдИз=Строки[0].КодЕд;
                            ИмяЕдИз=Строки[0].МеждКодЕд;
                        ИНаче
                            Сообщить("В документе:"+СокрЛп(Строка(ДокЕдиз))+" в строке:"+СокрЛп(Строка(СтрЕдиз))+" - в классификаторе для еденица измерения:"+элЕдИз.Наименование+" не указано международное обозначение, будет указана PCE (штуки).");    
                        КонецЕсли;
                    Иначе
                        Сообщить("В документе:"+СокрЛп(Строка(ДокЕдиз))+" в строке:"+СокрЛп(Строка(СтрЕдиз))+" - в классификаторе не найдена еденица измерения:"+элЕдИз.Наименование+", будет указана PCE (штуки).");
                    КонецЕсли;    
                КонецЕсли;
            Иначе
                Сообщить("В документе:"+СокрЛп(Строка(ДокЕдиз))+" в строке:"+СокрЛп(Строка(СтрЕдиз))+" - не заполнен реквизит ""ЕдиницаПоКлассификатору"" у единица измерения, будет указана PCE (штуки).");
            КонецЕсли;
            
        Иначе
            Сообщить("В документе:"+СокрЛп(Строка(ДокЕдиз))+" в строке:"+СокрЛп(Строка(СтрЕдиз))+" - не заполнена единица измерения, будет указана PCE (штуки).");
        КонецЕсли;
    Исключение
    КонецПопытки;
    
    СпЕИ=Новый СписокЗначений();
    СпЕИ.Добавить(КодЕдИз);
    СпЕИ.Добавить(ИмяЕдИз);
    
    Возврат СпЕИ;
    
КонецФункции
7 1Сергей
 
06.12.13
12:08

Функция ПолучитьСтрануПоКоду(Код) Экспорт
    Если Код = "CN" Тогда
        Возврат "Китай";
    КонецЕсли;
КонецФункции
8 DirecTwiX
 
06.12.13
12:31
ОКСМ - то, что нужно. Спасибо
Правда там все коды в макете.. Ужас.

Всем спасибо
Основная теорема систематики: Новые системы плодят новые проблемы.