Имя: Пароль:
1C
 
Конвертация данных. Из 1С 7.7 Комплексной в 1С 8.2 Бухгалтерия 2.0 - КИ
0 developer1c
 
28.04.16
17:14
Не могу придумать как. Суть такая: в 7.7 спр. Контрагенты, есть реквизит ЮрФизЛицо, в нем выбирается элемент справочника "ЮрЛица", у которого есть реквизит ЮрАдрес и ФактАдрес; а в Бух 8.2 - Юрадрес и ФактАдрес хранятся в в регистре сведедений КонтактнаяИнфморация.

Как при помощи Конвертации 2.1 сделать перенос контактной информации?

Что-то ума не приложу...
1 MaxS
 
28.04.16
17:42
А почему не в БП 3.0 ? ;)
пмсм В ПКО Контрагенты после выгрузки выгрузить по правилу контактную информацию.
2 developer1c
 
03.05.16
16:52
БП 3.0 там долгая история. пока решаем вопрос сделать бп 2.а дальше на 3 постепенно думать переход.
3 GrVas
 
03.05.16
17:36
(0) Я использовал из типовых
4 hhhh
 
03.05.16
17:40
(2) возьмите типовые правила и оттуда скопируйте этот кусок. Глупо с нуля такие вещи писать.
5 GrVas
 
03.05.16
17:52
ВходящиеДанные = СоздатьОбъект("СписокЗначений");      ВходящиеДанные.Установить("Адрес",Источник.ЮрФизЛицо.ЮрАдрес)

ПолучитьСтруктуруАдреса();


//Процедура  ПолучитьСтруктуруАдреса()

    Адрес = ВходящиеДанные.Получить("Адрес");
    АдресСписком = глРазложить(Адрес);

    Если СтрКоличествоСтрок(Адрес) <> 1 Тогда     // недолжно быть переводов строк
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрЧислоВхождений(Адрес, ",") <> 9 Тогда // должно быть 9 запятых
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(1))  > 3  Тогда   // код страны не > 3 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(2))  > 6  Тогда   // индекс не > 6 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(3))  > 30 Тогда   // наим.региона не > 30 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(4))  > 35 Тогда   // наим.района не > 35 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(5))  > 35 Тогда   // наим.города не > 35 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(6))  > 45 Тогда   // наим.нас.пункта не > 45 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(7))  > 45 Тогда   // наим.улицы не > 45 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(8))  > 10  Тогда   // номер дома не > 10 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(9))  > 10  Тогда   // номер корпуса не > 10 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    ИначеЕсли СтрДлина(АдресСписком.ПолучитьЗначение(10)) > 10  Тогда   // номер квартиры не > 10 символов
        АдресСоответствуетТребованиямМНС = 0;
        
    Иначе
        АдресСоответствуетТребованиямМНС = 1;
    КонецЕсли;
    
    Если АдресСоответствуетТребованиямМНС = 1 Тогда
        ВходящиеДанные.Установить("Поле1", АдресСписком.ПолучитьЗначение(2)); // индекс
        ВходящиеДанные.Установить("Поле2", АдресСписком.ПолучитьЗначение(3)); // регион
        ВходящиеДанные.Установить("Поле3", АдресСписком.ПолучитьЗначение(4)); // район
        ВходящиеДанные.Установить("Поле4", АдресСписком.ПолучитьЗначение(5)); // город
        ВходящиеДанные.Установить("Поле5", АдресСписком.ПолучитьЗначение(6)); // населенный пункт
        ВходящиеДанные.Установить("Поле6", АдресСписком.ПолучитьЗначение(7)); // улица
        ВходящиеДанные.Установить("Поле7", АдресСписком.ПолучитьЗначение(8)); // дом
        ВходящиеДанные.Установить("Поле8", АдресСписком.ПолучитьЗначение(9)); // корпус
        ВходящиеДанные.Установить("Поле9", АдресСписком.ПолучитьЗначение(10)); // квартира
        
        ТекПредставление = "";

        Если СокрЛП(ВходящиеДанные.Получить("Поле1")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле1"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле2")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле2"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле3")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле3"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле4")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле4"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле5")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле5"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле6")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", " + СокрЛП(ВходящиеДанные.Получить("Поле6"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле7")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", дом № " + СокрЛП(ВходящиеДанные.Получить("Поле7"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле8")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", корпус " + СокрЛП(ВходящиеДанные.Получить("Поле8"));
        КонецЕсли;

        Если СокрЛП(ВходящиеДанные.Получить("Поле9")) <> "" Тогда
            ТекПредставление = ТекПредставление + ", кв." + СокрЛП(ВходящиеДанные.Получить("Поле9"));
        КонецЕсли;

        Если СтрДлина(ТекПредставление) > 2 Тогда
            ТекПредставление = Сред(ТекПредставление, 3);
        КонецЕсли;
        
        ВходящиеДанные.Установить("Представление", ТекПредставление);
        
    Иначе
        ВходящиеДанные.Установить("Представление", Адрес);
    КонецЕсли;
6 Mikeware
 
03.05.16
17:57
Чтоб новую тему не начинать: есть у кого-нибудь правила КД типовых ЗиК-УПП?