Имя: Пароль:
1C
1С v8
Правила регистрации регистрируют то что не нужно
0 Gluk
 
30.01.14
20:19
Синхронизирую Розницу 2.1.2.5 - УТ 11.1.4.10
Типовые правила регистрации и конвертации. Ордерная схема.

Проверяю состав отправляемых данных, там только один документ - приходный ордер на основании перемещения.

Смотрю большой файл обмена - 6Мб. Там почему то есть номенклатура, которой нет в документе.

Лезу в КД, там в ПРО ордера есть два обработчика событий:
При обработке:
ИспользоватьКэш = Ложь;    
МассивТоваров = Объект.Товары.ВыгрузитьКолонку("Номенклатура");
ПараметрыЗапроса.Вставить("МассивТоваров", МассивТоваров);

ТекстЗапроса = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ПланОбменаОсновнаяТаблица.Ссылка КАК Ссылка
|ИЗ
|    ПланОбмена.ОбменУправлениеТорговлейРозница КАК ПланОбменаОсновнаяТаблица
|ЛЕВОЕ СОЕДИНЕНИЕ
|    (    ВЫБРАТЬ ПЕРВЫЕ 1
|            СправочникНоменклатура.Ссылка КАК Номенклатура
|        ИЗ
|            Справочник.Номенклатура КАК СправочникНоменклатура
|        ГДЕ
|        СправочникНоменклатура.Ссылка В(&СвойствоОбъекта_МассивТоваров)
|        И СправочникНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
|    ) КАК ТаблицаТоваров
|ПО ИСТИНА
|ГДЕ
|    ПланОбменаОсновнаяТаблица.ДатаНачалаВыгрузкиДокументов <= &СвойствоОбъекта_Дата
|    И НЕ ПланОбменаОсновнаяТаблица.Ссылка = &ОбменУправлениеТорговлейРозницаЭтотУзел
|    И НЕ ПланОбменаОсновнаяТаблица.ПометкаУдаления
|    И НЕ ТаблицаТоваров.Номенклатура ЕСТЬ NULL
|[УсловиеОтбораПоРеквизитуФлагу]
|";

При обработке (доп):
ИспользоватьКэш = Ложь;
ПередаватьДокумент = Истина;
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
|    Товары.Номенклатура КАК Номенклатура
|ИЗ
|    Документ.ПриходныйОрдерНаТовары.Товары КАК Товары
|ГДЕ
|    Товары.Ссылка = &Ссылка
|    И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
|");

Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ПередаватьДокумент = НЕ РезультатЗапроса.Пустой();

МассивТоваров = Объект.Товары.ВыгрузитьКолонку("Номенклатура");
ПараметрыЗапроса.Вставить("ПередаватьДокумент", ПередаватьДокумент);

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

Как проверить где они цепляют лишнюю номенклатуру?
1 Gluk
 
30.01.14
20:36
Неужели ошиблись в параметре "СвойствоОбъекта_МассивТоваров" вместо "МассивТоваров"? Почему тогда не ругается? Или "СвойствоОбъекта_МассивТоваров" устанавливается в другом месте?
2 Gluk
 
30.01.14
20:42
Блин нет, там "ВЫБРАТЬ ПЕРВЫЕ 1"
3 Gluk
 
30.01.14
21:13
ни у кого розницы нет?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн