Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

КД 2.0

КД 2.0
Я
   1c_nub
 
27.09.16 - 14:05
Добрый день.
Прошу подсказки от знающих людей.

Выгружаю справочник контрагентов. Поиск по ИД отключен. только поля поиска.
Следствие: группы контрагентов добавляются (видимо из-за отсутствия ИНН, КПП и т.д.)

Чтобы группы не задваивались, наверное нужно задать им другие поля поиска. Где и как прописать, чтобы группы искались по другим полям поиска, чем элементы?
 
 
   Лефмихалыч
 
1 - 27.09.16 - 14:07
добавь в список полей поиска поле ЭтоГруппа
   1c_nub
 
2 - 27.09.16 - 14:11
(1) добавлено, все равно создаются дубли групп.
   ks_83
 
3 - 27.09.16 - 14:12
В таких случаях я обычно для группы делаю отдельное ПКО.
   Alexor
 
4 - 27.09.16 - 14:13
В обработчике "поля поиска"

Если СвойстваПоиска.Получить("ЭтоГруппа") Тогда
    СтрокаИменСвойствПоиска="Наименование,ЭтоГруппа";
    
Иначе
    СтрокаИменСвойствПоиска="ИНН,КПП";
КонецЕсли;
   Alexor
 
5 - 27.09.16 - 14:16
+4 Наименование, ЭтоГруппа включить в поиск.
   ks_83
 
6 - 27.09.16 - 14:26
(4) Тоже сначала так морочился, но потом пришел к (3) Имхо, это удобнее, нагляднее и универсальнее.
   1c_nub
 
7 - 27.09.16 - 14:42
Сделал как в (4) Вообще странно выгружаю одну только группу с кодом "00000016" (Поставщики), а при загрузке он ее подставляет в "00000004" (заказчики).

Что-то пошло не так...
   hhhh
 
8 - 27.09.16 - 14:47
наверно поиск по ид всё-таки включен
   DailyLookingOnASunse
 
9 - 27.09.16 - 14:56
Чистить регистр соответствий надо после неудачных переносов.
   1sanekmaloi1
 
10 - 27.09.16 - 14:56
+(8) Или в регистре сопоставления объектов есть запись Поставщики->Заказчики
 
 Рекламное место пустует
   1c_nub
 
11 - 27.09.16 - 15:12
Регистр пуст. Обмен происходит не через план обмена, а просто через универсальный.
   1c_nub
 
12 - 27.09.16 - 15:13
(8) УИДы у них разные.
   1c_nub
 
13 - 27.09.16 - 15:16
в Файле выгрузки посмотрел, там именно группа которую я выгружал, именно  "00000016" (Поставщики).

А при загрузке он привязывается к "00000004" (заказчики).
   DailyLookingOnASunse
 
14 - 27.09.16 - 15:19
А наименование в полях поиска есть? Флажок стоит?
   1c_nub
 
15 - 27.09.16 - 15:23
(14) V НаименованиеПолное
Наверное у групп нет полного наименования, потому и ищет неправильно?
   DailyLookingOnASunse
 
16 - 27.09.16 - 15:24
У групп конечно нет.
   1c_nub
 
17 - 27.09.16 - 15:28
Ок. элементы нужно сопоставлять только по полномуНаименованию.
В ПКО создал правило "ГруппыКонтрагентов" Там вчего 4 поля переношу: код, наименование, родитель, ЭтоГруппа.
Поиск: Наименование.

В правило для контрагентов в конвертации свойств к родителю проставил это новое ПКО.

А в Самом правиле по контрагенту, отключить поиск в поле "ЭтоГруппа" или оставить?
   DailyLookingOnASunse
 
18 - 27.09.16 - 15:29
конечно оставить
   1sanekmaloi1
 
19 - 27.09.16 - 15:47
(18)Зачем?
   ks_83
 
20 - 27.09.16 - 16:08
(17) Всегда в ПКО по иерархическим справочникам ставь поиск ЭтоГруппа, чтобы не было недоразумений вроде выгрузки групп как элементов и наоборот.
   1c_nub
 
21 - 27.09.16 - 16:25
Сделал как описал выше. Теперь группы не задваиваются, теперь другая проблемка: контрагент (элемент) загружается нормально, но создается второй элемент с заполненным кодом и наименованием. Похоже, что он создается правилом для групп, но я там "При загрузке" прописал:

Если не Объект.ЭтоГруппа Тогда
Сообщить ("Это не Группа " +Объект);
Отказ = Истина;        
КонецЕсли;
   1sanekmaloi1
 
22 - 27.09.16 - 16:25
(20)На каком основании ? Если правило используется только для элементов, то это поле нафик не упало. Как вы правильно написали для иерархического справочника это необходимо если ПКО одно, это ПКС служит для определения в базе приемнике какой конструктор использовать "Группа" или "Элемент" ну и поиск естественно.
   1sanekmaloi1
 
23 - 27.09.16 - 16:27
(21)В ПВД для контров напиши Если Этогруппа то ИмяПКО=ИмяПКОГруппы иначе ИМяПКО=ИМяДЛЯэлемента
   1c_nub
 
24 - 27.09.16 - 16:32
(23) в Перед выгрузкой?
   1sanekmaloi1
 
25 - 27.09.16 - 16:35
(24)Да.
   1sanekmaloi1
 
26 - 27.09.16 - 16:38
В ПКО для группыКонтров нужно обязательно ПКС ЭтоГруппа с флагом поиска, в параметрах ПКО включена галка поиск по уид и продолжить поиск по полям поиска
   1c_nub
 
27 - 27.09.16 - 16:42
(26) Галку включать не могу, т.е. есть объекты с одинаковыми уидами, но совсем разными наименованиями и т.д. Если поставить галку, то начнут привязываться совсем не те контрагенты, чем в источнике.
   1c_nub
 
28 - 27.09.16 - 16:47
А что, в ПКО ПриЗагрузке не работает Отказ = Истина?
   1sanekmaloi1
 
29 - 27.09.16 - 16:48
(27)Ну если базы наполнены уже и похоже обе базы сделаны из одной копии и какоето время жили разными жизнями то может так выйти что уиды одинаковые у совершенно разных элементов, тогда без галки поиск по уид поля поиска помогут
   1sanekmaloi1
 
30 - 27.09.16 - 16:50
(28) сейчас нет под рукой КД, на память не помню уже
   1sanekmaloi1
 
31 - 27.09.16 - 16:51
+(28)Должен быть обработчик ПередЗагрузкой, там отказ точно был, вроде. :)
   ks_83
 
32 - 27.09.16 - 16:53
(20) Есть, так сказать, неписаные правила хорошего тона при разработке по которым сразу можно определить быдлкодера. Игнорирвание поиска по ЭтоГруппа как раз является нарушением таких правил. Сегодня вы используете ПКО только для выгрузки элементов, а завтра может потребоваться для выгрузки всего справочника, а про то что там галка не стоит уже и забыли/не заметили и тут будет сюрприз.
   1c_nub
 
33 - 27.09.16 - 16:57
(32) Галка там стоит, я уже понял, что без галки создаются лишние элементы.
 
 
   1sanekmaloi1
 
34 - 27.09.16 - 17:02
(32)А для не иерархических справочников вы тоже поле  ЭтоГруппа заранее ставите?Ну мало ли вдруг справочник станет иерархическим когда либо а вы не предусмотрели этого.Не знаю вот таких правил которые говорили бы ставь галки на всякий случай.Если знаешь зачем нужны эти флаги, то проблем описанных вами не будет.И про правила тона можно подробнее основные огласить, а то может быдлокодю уже много лет?
   1c_nub
 
35 - 27.09.16 - 17:12
Странно, что в ПКО ПриЗагрузке не работает Отказ = Истина.
И после загрузки тоже. 
т.е. условие срабатывает Если ЭтоГруппа Тогда 
 Отказ = Истина

Но элемент все равно загружается
   1sanekmaloi1
 
36 - 27.09.16 - 17:19
(35)У вас просто сейчас не понятно что и как выгружается/загружается.Скорее всего куча кода от старых попыток мешает.
   1sanekmaloi1
 
37 - 27.09.16 - 17:24
нужно с самого начала определиться
1.Какие объекты нужно выгружать?Какие ПВД используете какие в них обработчики.
2.Какие ПКО есть, как настроены и какие ПКС для родителя контра.
3.Какие обработчики на стороне приемника т.д.

Очень тяжело по фотографии лечить.
   1c_nub
 
38 - 27.09.16 - 17:33
(37) 1. Выгружаю справочник Контрагенты . ПВД для контрагентов имеет обработчик перед выгрузкой 
Если  Объект.Этогруппа тогда
    ИмяПКО="КонтрагентыСвязанныеСОрганизациямиГруппы"; 
иначе 
    ИМяПКО="Контрагенты";
КонецЕсли;
2. ПКО (Контрагенты) 
обработчик ПослеЗагрузки:
Если Объект.ЭтоГруппа Тогда
Отказ = Истина;    
КонецЕсли;

ПКО (КонтрагентыСвязанныеСОрганизациямиГруппы)

обработчик ПослеЗагрузки:
Если не Объект.ЭтоГруппа Тогда
Отказ = Истина;    
КонецЕсли;

Поля поиска (Контрагенты) НаименованиеПолное, ИНН, КПП, ЭтоГруппа

Поля поиска (КонтрагентыСвязанныеСОрганизациямиГруппы) Наименование, ЭтоГруппа

Пример: Выгружаю контрагента у которого поля поиска совпадают, но наименование нет. Он его находит, но создает пустой элемент с наименованием источника.
   1sanekmaloi1
 
39 - 27.09.16 - 17:38
файл выгрузки есть?
   1sanekmaloi1
 
40 - 27.09.16 - 17:41
Обработчики ПослеЗагрузки не сработают никогда, т.к. По ПКО "Контрагенты" всегда выгружаются только элементы у них Объект.ЭтоГруппа = Ложь, ну и наоборот в групповом обработчике.
   1sanekmaloi1
 
41 - 27.09.16 - 17:45
В ПВД Контрагенты напиши в ПередВыгрузкой
Отказ = Объект.Этогруппа остальное сотри, ПКО по умолчанию оставь "Контрагент", в контрагенте ПКО для родителя укажи КонтрагентыСвязанныеСОрганизациямиГруппы, обработчики ПослеЗагрузки в ПКО удали.
   1sanekmaloi1
 
42 - 27.09.16 - 17:47
Смысл будет такой : группы выгружаться непосредственно не будут, но вместе с элементом по ПКС родитель будет выгружаться группа
   1c_nub
 
43 - 27.09.16 - 17:59
(42) Спасибо за советы. Сделал. Все равно появился незаполненный элемент. в файле выгрузки кусок кода такой:

</ПравилаОбмена>
<Объект Нпп="2" Тип="СправочникСсылка.Контрагенты" ИмяПравила="КонтрагентыСвязанныеСОрганизациямиГруппы" НеЗамещать="true"><Ссылка Нпп="2">
    <Свойство Имя="Наименование" Тип="Строка">
        <Значение>Поставщики</Значение>
    </Свойство>
    <Свойство Имя="ЭтоГруппа" Тип="Булево">
        <Значение>true</Значение>
    </Свойство>
</Ссылка>
    <Свойство Имя="Код" Тип="Строка">
        <Значение>000000161</Значение>
    </Свойство><Свойство Имя="Родитель" Тип="СправочникСсылка.Контрагенты">
    <Пусто/>
</Свойство>
    <Свойство Имя="Комментарий" Тип="Строка">
        <Значение>1</Значение>
    </Свойство>
</Объект>
<Объект Нпп="4" Тип="СправочникСсылка.Контрагенты" ИмяПравила="КонтрагентыСвязанныеСОрганизациямиГруппы" НеЗамещать="true"><Ссылка Нпп="4">
    <Свойство Имя="Наименование" Тип="Строка">
        <Значение>ФПК АО</Значение>
    </Свойство>
    <Свойство Имя="ЭтоГруппа" Тип="Булево">
        <Значение>false</Значение>
    </Свойство>
</Ссылка>
    <Свойство Имя="Код" Тип="Строка">
        <Значение>У00001126</Значение>
    </Свойство><Свойство Имя="Родитель" Тип="СправочникСсылка.Контрагенты"><Ссылка Нпп="2">
    <Свойство Имя="Наименование" Тип="Строка">
        <Значение>Поставщики</Значение>
    </Свойство>
    <Свойство Имя="ЭтоГруппа" Тип="Булево">
        <Значение>true</Значение>
    </Свойство>
</Ссылка>
</Свойство>
    <Свойство Имя="Комментарий" Тип="Строка">
        <Значение>1</Значение>
    </Свойство>
   1c_nub
 
44 - 27.09.16 - 18:00
ФПК АО Попало в правило КонтрагентыСвязанныеСОрганизациямиГруппы
   1sanekmaloi1
 
45 - 27.09.16 - 18:09
Что то вы не договариваете

В ПВД какое стоит правило конвертации по умолчанию?

Кусок правил обмена тоже не помешал бы, там все обработчики видны.

Файл правил выгрузки давайте проще у себя посмотреть
   1c_nub
 
46 - 27.09.16 - 18:14
   1c_nub
 
47 - 27.09.16 - 18:19
От компа вынужден уйти. завтра продолжу. Спасибо за помощь
   1sanekmaloi1
 
48 - 27.09.16 - 18:19
Какое пвд используете в обработке?
Галки напротив чего ставите?
   1sanekmaloi1
 
49 - 27.09.16 - 19:00
Вобщем у вас 3 ПВД для контрагентов(причем наименования одинаковые, как вы их в обработке выгрузки отличаете?Переименуйте ПВД, на закладке дополнительно есть поле Наименование) и во всех стоит разное правило по умолчанию.
Вы используете неверное ПВД поэтому у вас выгружается все по правилу КонтрагентыСвязанныеСОрганизациямиГруппы, в обработчике ПередОбработкой код "Отказ = не Объект.Этогруппа;" работать не будет, в этом обработчике нет объекта.  

Что я бы сделал:
1.Нужно зайти в ПВД КонтрагентыСвязанныеСОрганизациямиГруппы на закладку Дополнительно и изменить наименование на Контрагенты_Группы, аналогично в ПВД КонтрагентыСвязанныеСОрганизациямиНеЗоздавать Наименование Контрагенты_НеСоздавать.
2.При выгрузке выбрать одно ПДВ КонтрагентыСвязанныеСОрганизациями00001 имя Контрагенты в ваших правилах (у остальных 2х Контрагенты_Группы,Контрагенты_НеСоздавать не ставить галки) в нем по умолчанию стоит ПКО  
КонтрагентыСвязанныеСОрганизациями00001 и в обработчике ПередВыгрузкой Отказ = Объект.Этогруппа;

Все должно отработать правильно.
 
 Рекламное место пустует
   1c_nub
 
50 - 28.09.16 - 09:27
Сделал все как и написано. Итог тот же. Правилом для групп создается пустой контрагент.
Прописал в ПКО (ПриЗагрузке):

Отказ = не Объект.Этогруппа;

Все равно. Как не срабатывает.
   1c_nub
 
51 - 28.09.16 - 10:15
Понял куда копать. Похоже, если по ссылке загружается объект, то отказ на него не работает. Буду думать как обойти, по результату отпишусь


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует