Имя: Пароль:
1C
1С v8
Проблема с выгрузкой номенклатуры 1С
0 Shrek_yar
 
30.09.13
17:02
При обмене есть две номенклатуры с GUID

товар1  e9210a9d-edea-11e2-93e8-001517ee85bd
товар2  e9210a9e-edea-11e2-93e8-001517ee85bd

почему то при загрузке товар2 замещает товар1
В правилах обмена стоит поиск по GUID, почему не создает новый? А замещает?
1 Холодильник
 
30.09.13
17:08
Обмен как организован?
РС СоответствтиеОбъектовОбмена смотрел?
2 Fram
 
30.09.13
17:14
(0) КД?.. Тогда установлен поиск по каким то реквизитам
3 Shrek_yar
 
30.09.13
17:23
(2)КД. поиск стоит по коду, наименованию, этогруппа
в настройках ПКО "номенклатура" галка стоит только на поиск по GUID и создавать новый в случае если не нашел.
4 Shrek_yar
 
30.09.13
17:24
при обмена первый GUID в базе не создается, только товар2
5 Shrek_yar
 
30.09.13
17:29
6 Fram
 
30.09.13
17:30
(3) "поиск стоит по коду, наименованию, этогруппа"
противоречит
"в настройках ПКО "номенклатура" галка стоит только на поиск по GUID"

Определись!
7 Shrek_yar
 
30.09.13
17:32
(6)в стандартных правилах обмена так же сделано
УТ11 - БП2.0
галки стоят напротив этих пунктаз, как на скриншоте,  а в настрояках только по ГУИД поиск
8 Fram
 
30.09.13
17:32
(5) 2 и 3 скриншоты к теме не относятся
9 Shrek_yar
 
30.09.13
17:34
(8)во втором, я скинул что написано в ПКО "номенклатура"
10 Fram
 
30.09.13
17:34
(7) я не так понял. слово "только" относится к галкам, а не к поиску?
Значит у товар1 и товар2 совпадают код, наименование, этогруппа
11 Shrek_yar
 
30.09.13
17:36
(10)у них совпадает наименование, и этоГРупаа, но коды разные
у товара1 МТ-00007354
у товара2 МТ-00007359
12 Fram
 
30.09.13
17:38
(11) "поиск стоит по коду, наименованию, этогруппа "
скриншот покажи
13 Shrek_yar
 
30.09.13
17:40
14 Fram
 
30.09.13
17:50
(13) хм.. вроде все ok. значит путаница где то в файлах. не тот файл правил загружается.
проверь от и до все.
1. сформируй заново правило выгрузки. лучше файл обозвать отлично от того как он назывался ранее
2. выгрузи обе номенклатуры, используя только что выгруженное правило
3. загрузи
4. проверь результат
15 Shrek_yar
 
30.09.13
18:06
(14)не помогло, все так же.
16 Shrek_yar
 
30.09.13
18:07
я заметил что если отличается GUID по последним символам, то все нормально, я создал новую номенлатуру просто
17 hhhh
 
30.09.13
18:10
(16) а (1) смотрел?
18 Shrek_yar
 
30.09.13
18:12
(17)товар1 не переноситься в базу БП, как смотеть соотвестивие тогда
19 Shrek_yar
 
30.09.13
18:12
товар1 заменяется товар2, не знаю почему так происходит.
20 SUA
 
30.09.13
18:17
возможно проблема в скрине3 в (5) - входящие данные уже могут быть неверными
21 Fram
 
30.09.13
18:19
(20) +1 Покажии ка код формирования входящих данных
22 Shrek_yar
 
30.09.13
18:22

ПриходныйОрдерНаТовары = Неопределено;
Если ТипЗнч(ВходящиеДанные) = Тип("Структура") И ВходящиеДанные.Свойство("ПриходныйОрдерНаТовары", ПриходныйОрдерНаТовары) Тогда
    //сообщить("ПередВыгрузкой распоряжение =  " + Источник.Ссылка);
    //сообщить("перед выгрузкой ссылка = " + ПриходныйОрдерНаТовары.Ссылка );
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПриходныйОрдерНаТоварыТовары.Номенклатура,
    |    ПриходныйОрдерНаТоварыТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    1 КАК Коэффициент,
    |    ПриходныйОрдерНаТоварыТовары.Количество,
    |    ВЫРАЗИТЬ(ПриходныйОрдерНаТоварыТовары.Количество * ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество КАК ЧИСЛО(15, 2)) КАК Сумма,
    |    ПоступлениеТоваровУслугТовары.Сумма / ПоступлениеТоваровУслугТовары.Количество КАК Цена,
    |    ПоступлениеТоваровУслугТовары.СтавкаНДС,
    |    ВЫРАЗИТЬ(ПриходныйОрдерНаТоварыТовары.Количество * ПоступлениеТоваровУслугТовары.СуммаНДС / ПриходныйОрдерНаТоварыТовары.Количество КАК ЧИСЛО(15, 2)) КАК СуммаНДС,
    |    ПоступлениеТоваровУслугТовары.НомерГТД,
    //|    ВЫБОР
    //|        КОГДА ЕСТЬNULL(ПоступлениеТоваровУслугТовары.НомерГТД, "0" ) <> "0"
    //|            ТОГДА ЕСТЬNULL(ПоступлениеТоваровУслугТовары.НомерГТД.СтранаПроисхождения, "" )
    //|        ИНАЧЕ ""
    //|    КОНЕЦ КАК СтранаПроисхождения,
    |    ПоступлениеТоваровУслугТовары.НомерГТД.СтранаПроисхождения КАК СтранаПроисхождения,
    |    0 КАК ЦенаВРознице,
    |    0 КАК СуммаВРознице,
    |    НЕОПРЕДЕЛЕНО КАК СтавкаНДСВРознице
    |ИЗ
    |    (ВЫБРАТЬ
    |        ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |        ПоступлениеТоваровУслугТовары.СтавкаНДС КАК СтавкаНДС,
    |        ПоступлениеТоваровУслугТовары.НомерГТД КАК НомерГТД,
    |        СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
    |        СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма,
    |        СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС) КАК СуммаНДС
    |    ИЗ
    |        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |    ГДЕ
    |        ПоступлениеТоваровУслугТовары.Ссылка = &Распоряжение
    |        И ПоступлениеТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ПоступлениеТоваровУслугТовары.СтавкаНДС,
    |        ПоступлениеТоваровУслугТовары.Номенклатура,
    |        ПоступлениеТоваровУслугТовары.НомерГТД
    |    
    |    ИМЕЮЩИЕ
    |        СУММА(ПоступлениеТоваровУслугТовары.Количество) > 0) КАК ПоступлениеТоваровУслугТовары
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходныйОрдерНаТовары.Товары КАК ПриходныйОрдерНаТоварыТовары
    |        ПО (ПриходныйОрдерНаТоварыТовары.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура)
    |ГДЕ
    |    ПриходныйОрдерНаТоварыТовары.Ссылка = &Ссылка";    
    Запрос.УстановитьПараметр("Ссылка", ПриходныйОрдерНаТовары.Ссылка);
    Запрос.УстановитьПараметр("Распоряжение", Источник.Ссылка);

    //сообщить("выгрузка начало");
    //сообщить(Запрос.Текст);
    ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
    //сообщить("выгрузка конец");
    
    ВходящиеДанные.Вставить("Товары", ТаблицаТоваров);
    ВходящиеДанные.Вставить("Услуги", Новый ТаблицаЗначений);
    ВходящиеДанные.Вставить("СуммаДокумента", ТаблицаТоваров.Итог("Сумма"));
    
Иначе
    
    ДанныеСкладаПолучателя = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Источник.Склад, "ТипСклада,РозничныйВидЦены");

    Если ДанныеСкладаПолучателя.ТипСклада = Перечисления.ТипыСкладов.РозничныйМагазин
        И ЗначениеЗаполнено(ДанныеСкладаПолучателя.РозничныйВидЦены) Тогда
        
        Запрос = Запросы.ТоварыИзПоступленияТоваровСЦенамиДляРозницы;
        Запрос.УстановитьПараметр("Дата",    КонецДня(Источник.Дата));
        Запрос.УстановитьПараметр("Валюта", Константы.ВалютаРегламентированногоУчета.Получить());
        Запрос.УстановитьПараметр("ВидЦен", ДанныеСкладаПолучателя.РозничныйВидЦены);
        
    Иначе
        Запрос = Запросы.ТоварыИзПоступленияТоваров;
    КонецЕсли;
    
    Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
    РезультатыЗапроса = Запрос.ВыполнитьПакет();
    ВходящиеДанные.Вставить("Товары", РезультатыЗапроса[1].Выгрузить());
    ВходящиеДанные.Вставить("Услуги", РезультатыЗапроса[2].Выгрузить());

    ВходящиеДанные.Вставить("СуммаДокумента", ВходящиеДанные.Товары.Итог("СуммаСНДС") + ВходящиеДанные.Услуги.Итог("СуммаСНДС"));
КонецЕсли;
23 Shrek_yar
 
30.09.13
18:23
проверял в консоле запрос, все нормально было
24 Shrek_yar
 
30.09.13
18:23
условие попадает в первое условие
25 Fram
 
30.09.13
18:24
Я спросил, чтобы убедиться, что нет записи Номенклатуры.
А может есть где то в другом модуле правил?
26 Shrek_yar
 
30.09.13
18:27
(25)там после записи алгоритмя, но они стандартные, к товару тоже отношения не имеют
спасибо за помощь, буду искать
27 Shrek_yar
 
30.09.13
18:27
+ может кто знате как отладкой пройтись по правилам
28 Fram
 
30.09.13
18:27
Так.. а вот в этой фразе "почему то при загрузке товар2 замещает товар1" что имеется ввиду под словом "замещает"?
29 Shrek_yar
 
30.09.13
18:30
(28) ищменяю товар1 и товар2, и попадает товар2 только, изменяю товар1 только то товар1 заменяет товар2, ХОТЯ ГУИД у них разные, смотрел в файле выгрузки.
30 floody
 
30.09.13
18:42
Может ГУИД сравнивается не весь, а только вторая половина например? Ну скажем, первая часть до дефиса означает м.б. сам  справочник? Ну это я как вариант.
31 Shrek_yar
 
30.09.13
18:45
(30)я хотел тоже узнать, что значит первая половина
32 Мимохожий Однако
 
30.09.13
19:24
(0)У каждого товара GUID одинаковые. Сначала находится первый, потом успешно находится второй. Первому места не находится. Убери из файла загрузки наличие второго идентификатора или в исходной базе замени на другой.
33 Fram
 
30.09.13
19:30
(32) Уважаемый протираем глаза и видим что гуиды разные )
34 Мимохожий Однако
 
30.09.13
19:50
(33)Протёр. Так и есть ))
35 Славен
 
30.09.13
21:05
да пилять сто пудов что в соответствии объектов двум гуидам соответсвует 1 товар в приемнике. Иначе никак
36 hhhh
 
30.09.13
22:23
(18) регистр сведений "Соответствие информационных баз" смотрите. наверняка у вас задано соответствие между гуидами этих двух товаров там.
37 Shrek_yar
 
01.10.13
11:27
(36),да, помогло, два гуида на идин товар ссылались.
А есть какая обработка для проверки такого задвоения?
38 Холодильник
 
01.10.13
11:45
мда. а ведь ответил в первом же сообщении((
больше не буду помогать
39 Shrek_yar
 
01.10.13
11:47
(38)если знал бы что смотреть там.
я искал что должен быть создан объект...,а не то что два гуида -> на один справочник
40 Холодильник
 
01.10.13
11:53
(39) ну так - открыл справку к РС, почитал, подумал..