Имя: Пароль:
1C
1С v8
Подскажите по КД...
0 Ион
 
28.08.13
13:22
Только осваиваю КД.
Сейчас хочу перегрузить из одной почти типовой ЗУП (2.5.69.2 - что не типовое к делу не относится) в другую базу с такой же конфигурацией сотрудников. Но нужно , чтобы организация у сотрудников менялась 0 была "Орг 1" , а стала "Орг 2".
Как это проще сделать ? Я добавил в ПКО "Организации" в обработчик событий "При выгрузке" след. код :
//---
Значение="Орг 2"
//---
Но проблему это не решило - "Орг 2" в xml файл выгрузки почему-то не попала (я хотел на этапе выгрузки заменить организацию на нужную). Как это сделать правильно ? Спасибо большое заранее
1 Гефест
 
28.08.13
13:24
Уверен, что организация - это строка?
2 Aleksey
 
28.08.13
13:25
(1) яя всегда так делаю, главное в ПКО организации настроить заполнения и поля поиска
3 NcSteel
 
28.08.13
13:25
Есть ли эта организация в базе источник?

Если есть, то в правилах конвертации сотрудников пропиши:

Значение = Справочник.Организации.НайтиПоКоду("111");

Если в источнике нет, то:

Выражение = "Справочник.Организации.НайтиПоКоду("111")"
4 Ион
 
28.08.13
13:38
(1) Конечно , не строка :)
(2) В каком обработчике настраивать лучше ?
(3) в базе источнике этой орг. нет . На какой обработчик вешать ?

Спасибо большое
5 Абыр
 
28.08.13
13:39
(0)
- отключить поиск по GUID для организаций, если стоит
- в ПКС, по которым идет синхронизация при выгрузке задать значения, соответствующие реквизитам нужной организации в приемнике.
6 Ион
 
28.08.13
14:12
(5)
-Отключен поиск по GUID
-в ПКС идет синхронизация по наименованию

Мне вот что непонятно - почему в файле выгрузки xml  нет вообще строки "Орг 2" , хотя в ПКО "Организации" в обработчик событий "При выгрузке" есть следующий код :
//---
Значение="Орг 2"
//---

(3) Вот этот код
Выражение = "Справочник.Организации.НайтиПоКоду("111")"  в обработчик какого события добавлять ?
Добавил в событие "При выгрузке" - ругается:
Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,50)}: Неопознанный оператор
7 Абыр
 
28.08.13
14:48
(6) Потому что обработчик ПриВыгрузке ПКО не имеет параметра "Значение" и код:
Значение = "Орг 2";
просто инициализирует новую переменную, которая дальше нигде и не используется.

В обработчике "Перед выгрузкой" ПКС реквизита "Наименование" пропишите
Значение = "Тут пишем наименование нужной организации в получателе";
8 Ион
 
28.08.13
15:44
(7) Спасибо большое - тучи рассеялись , показалось солнце - все заработало !!! (С ПКО и ПКС напутал...)
9 Ион
 
28.08.13
18:25
Тучи снова начали сгущаться...
Мне нужно вместе со справочниками "Сотрудники" и "Физические лица"(по ним правила настроил) настроить выгрузку соответствующих записей регистров сведений "Фамилия имя отчество физ. лица" и "Контактная информация" , чтобы выгружались только те записи рег. сведений , которые соотв. выгружаемым Физ. лицам.
Как можно программно установить при выгрузке из этих рег. свед. отбор по выгружаемому Физ. лицу ?
Спасибо большое заранее за совет.
10 floody
 
28.08.13
18:39
смотрите "ВыгрузитьПоПравилу".. в хелпе даже есть кусок кода, который можно скопипастить
11 gorakh
 
28.08.13
18:46
В ПКО  Физические лица обработчике "после выгрузки объекта"
Если НЕ Источник.ЭтоГруппа Тогда
    Набор = РегистрыСведений.ФИОФизЛиц.СоздатьНаборЗаписей();
    //Сообщить(" После выгрузки  "+Источник+" ТипЗнч "+ТипЗнч(Источник)+ "  ");
    
    Набор.Отбор.ФизЛицо.Значение      = ЗнОтбора;
    Набор.Отбор.ФизЛицо.Использование = Истина;
    Набор.Прочитать();
    Для Каждого Запись Из Набор Цикл
        Структура = Новый Структура("ФизЛицо,Фамилия,Имя,Отчество,Активность,Период");
        Структура.Вставить("ФизЛицо", Запись.Физлицо);
        Структура.Вставить("Фамилия", Запись.Фамилия);
        Структура.Вставить("Имя", Запись.Имя);
        Структура.Вставить("Отчество", Запись.Отчество);
        Структура.Вставить("Активность", Запись.Активность);
        Структура.Вставить("Период",Запись.Период);
        
        ВыгрузитьПоПравилу(Структура, , , , "ФИОФизЛиц");                                                                                                                    
        
        Структура = Неопределено;
    КонецЦикла;
    Набор = Неопределено;
КонецЕсли;
Если НЕ Источник.ЭтоГруппа Тогда
    //Сообщить(" После выгрузки  "+Источник+" ТипЗнч "+ТипЗнч(Источник)+ "  "+ТипЗнч(Источник.Ссылка));

        Запрос = Новый Запрос;
        Структура = Новый Структура("Период,ФизЛицо,ДокументВид,ДокументСерия,ДокументНомер,ДокументДатаВыдачи,ДокументКемВыдан");
        Запрос.УстановитьПараметр("ФизЛицо" ,    ЗнОтбора);        
        Запрос.Текст =        
        "
        |ВЫБРАТЬ
        |    ПаспортныеДанныеФизЛиц.Период,
        |    ПаспортныеДанныеФизЛиц.ФизЛицо КАК ФизЛицо,
        |    ПаспортныеДанныеФизЛиц.ДокументВид,
        |    ПаспортныеДанныеФизЛиц.ДокументСерия,
        |    ПаспортныеДанныеФизЛиц.ДокументНомер,
        |    ПаспортныеДанныеФизЛиц.ДокументДатаВыдачи,
        |    ВЫРАЗИТЬ(ПаспортныеДанныеФизЛиц.ДокументКемВыдан КАК СТРОКА(256)) КАК ДокументКемВыдан
        |ИЗ
        |    РегистрСведений.ПаспортныеДанныеФизЛиц КАК ПаспортныеДанныеФизЛиц
        |ГДЕ
        |    ПаспортныеДанныеФизЛиц.ФизЛицо = &ФизЛицо";
                        
                Выборка = Запрос.Выполнить().Выбрать();

            //Сообщить(Источник);
            Если Выборка.Количество()>0 Тогда
                Пока Выборка.Следующий() Цикл
                //Сообщить (Запись.Физлицо);
                    Структура.Вставить("Период",Выборка.Период);
                    Структура.Вставить("ФизЛицо", Выборка.ФизЛицо);
                    Структура.Вставить("ДокументВид", Выборка.ДокументВид);
                    Структура.Вставить("ДокументСерия", Выборка.ДокументСерия);
                    Структура.Вставить("ДокументНомер", Выборка.ДокументНомер);
                    Структура.Вставить("ДокументДатаВыдачи", Выборка.ДокументДатаВыдачи);
                    Структура.Вставить("ДокументКемВыдан", Выборка.ДокументКемВыдан);
                    
                    ВыгрузитьПоПравилу(Структура, , , , "ПаспортныеДанныеФизЛиц");        
                КонецЦикла;
            КонецЕсли;  
            Структура = Неопределено;
            Выборка = Неопределено;    
КонецЕсли;    
Если НЕ Источник.ЭтоГруппа Тогда
        Запрос = Новый Запрос;

        Запрос.УстановитьПараметр("ФизЛицо" ,    ЗнОтбора);
        Запрос.УстановитьПараметр("Изображение" ,Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);        
        Запрос.Текст =        
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ХранилищеДополнительнойИнформации.Наименование,
        |    ХранилищеДополнительнойИнформации.Хранилище,
        |    ХранилищеДополнительнойИнформации.ИмяФайла,
        |    ХранилищеДополнительнойИнформации.Объект,
        |    ХранилищеДополнительнойИнформации.ПометкаУдаления,
        |    ХранилищеДополнительнойИнформации.Объект.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
        |ГДЕ
        |    ХранилищеДополнительнойИнформации.Объект = &ФизЛицо
        |    И ХранилищеДополнительнойИнформации.ВидДанных = &Изображение";
                
                ВыборкаИзображений = Запрос.Выполнить().Выбрать();

            //Сообщить(Источник);
            Если ВыборкаИзображений.Количество()>0 Тогда
                ВыборкаИзображений.Следующий();
                //Сообщить (Запись.Физлицо);
                Структура = Новый Структура("ВидДанных,ИмяФайла,Наименование,Объект,ПометкаУдаления,Хранилище,Ссылка");
                Структура.Вставить("ВидДанных", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);
                Структура.Вставить("ИмяФайла", ВыборкаИзображений.ИмяФайла);
                Структура.Вставить("Наименование", ВыборкаИзображений.Наименование);
                Структура.Вставить("Объект", ВыборкаИзображений.Объект);
                Структура.Вставить("ПометкаУдаления", ВыборкаИзображений.ПометкаУдаления);
                Структура.Вставить("Хранилище", ВыборкаИзображений.Хранилище);
                Структура.Вставить("Ссылка", ВыборкаИзображений.Ссылка);
                ВыгрузитьПоПравилу(Структура, , , , "ХранилищеДополнительнойИнформации");        
                Структура = Неопределено;
            КонецЕсли;
            ВыборкаИзображений = Неопределено;    
КонецЕсли;
Если НЕ Источник.ЭтоГруппа Тогда
        Запрос = Новый Запрос;
        Структура = Новый Структура("Объект,Тип,Вид,Представление,Поле1,Поле2,Поле3,Поле4,Поле5,Поле6,Поле7,Поле8,Поле9,Поле10,Комментарий,Активность,ЗначениеПоУмолчанию");
        Запрос.УстановитьПараметр("Объект" ,    ЗнОтбора);        
        Запрос.Текст =        
        "
        |ВЫБРАТЬ
        |    КонтактнаяИнформация.Объект,
        |    КонтактнаяИнформация.Тип,
        |    КонтактнаяИнформация.Вид,
        |    КонтактнаяИнформация.Представление,
        |    КонтактнаяИнформация.Поле1,
        |    КонтактнаяИнформация.Поле2,
        |    КонтактнаяИнформация.Поле3,
        |    КонтактнаяИнформация.Поле4,
        |    КонтактнаяИнформация.Поле5,
        |    КонтактнаяИнформация.Поле6,
        |    КонтактнаяИнформация.Поле7,
        |    КонтактнаяИнформация.Поле8,
        |    КонтактнаяИнформация.Поле9,
        |    КонтактнаяИнформация.Поле10,
        |    КонтактнаяИнформация.Комментарий,
        |    КонтактнаяИнформация.ЗначениеПоУмолчанию
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |ГДЕ
        |    КонтактнаяИнформация.Объект = &Объект";
                        
                Выборка = Запрос.Выполнить().Выбрать();

            
            Если Выборка.Количество()>0 Тогда
                Пока Выборка.Следующий() Цикл
                          
                    Структура.Вставить("Объект", Выборка.Объект);
                    Структура.Вставить("Тип", Выборка.Тип);
                    Структура.Вставить("Вид", Выборка.Вид);
                    Структура.Вставить("Представление", Выборка.Представление);
                    Структура.Вставить("Комментарий", Выборка.Комментарий);
                    Структура.Вставить("Поле1", Выборка.Поле1);
                    Структура.Вставить("Поле2", Выборка.Поле2);
                    Структура.Вставить("Поле3", Выборка.Поле3);
                    Структура.Вставить("Поле4", Выборка.Поле4);
                    Структура.Вставить("Поле5", Выборка.Поле5);
                    Структура.Вставить("Поле6", Выборка.Поле6);
                    Структура.Вставить("Поле7", Выборка.Поле7);
                    Структура.Вставить("Поле8", Выборка.Поле8);    
                    Структура.Вставить("Поле9", Выборка.Поле9);
                    Структура.Вставить("Поле10", Выборка.Поле10);
                    //Структура.Вставить("Активность",  Выборка.Активность);
                    ВыгрузитьПоПравилу(Структура, , , , "КонтактнаяИнформацияФизЛиц");        
                КонецЦикла;
            КонецЕсли;  
            Структура = Неопределено;
            Выборка = Неопределено;    
КонецЕсли;
12 gorakh
 
28.08.13
18:48
Соответственно иметь соответствующие правила выгрузки.
13 Ион
 
29.08.13
10:02
Спасибо большое , сейчас буду это дело внедрять
14 Ион
 
29.08.13
10:50
(11) И мне наверное нужно эти правила выгрузки
КонтактнаяИнформацияФизЛиц
ХранилищеДополнительнойИнформации
ПаспортныеДанныеФизЛиц
ФИОФизЛиц

отключить (на вкладке ПВД флажок ставлю слева от этих ПВД), так как нам не надо, чтобы по ним просто так выгружалось ничего - а мы программно по ним выгружаем , правильно ?
Независимо от того, куда вы едете — это в гору и против ветра!