Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:17

Универсальный отчет, кривой запрос - дубликаты строк

Автор AIFrame, 01 сен 2015, 18:12

0 Пользователей и 1 гость просматривают эту тему.

AIFrame

В результате выполнения этого запроса я получаю в строках каждой номенклатуры по 4 экземпляра. Связано это с выводом штрихкодов, т.к. отчет выводит оба штрихкода во всех четырех комбинациях.
Где я ошибся?
Цитировать
блендер SA-6208CB 400Вт погружн +стакан черн   SA-6208CB   4620765244080 / 4620765244080
блендер SA-6208CB 400Вт погружн +стакан черн   SA-6208CB   4620765244080 / 4620765244097
блендер SA-6208CB 400Вт погружн +стакан черн   SA-6208CB   4620765244097 / 4620765244080
блендер SA-6208CB 400Вт погружн +стакан черн   SA-6208CB   4620765244097 / 4620765244097

ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Номенклатура.Ссылка КАК Номенклатура,
| Номенклатура.Артикул,
| Номенклатура.Производитель,
| Номенклатура.ОтветственныйМенеджерЗаПокупки КАК ОтветственныйЗаПокупки,
| Номенклатура.ЕдиницаХраненияОстатков.Вес КАК Вес,
| Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем,
| Номенклатура.Родитель,
| ТНСО.Остаток КАК Остаток,
| ТНСО.ТНСОН,
| ТНСО.Остаток * Номенклатура.ЕдиницаХраненияОстатков.Вес КАК СуммВес,
| ТНСО.Остаток * Номенклатура.ЕдиницаХраненияОстатков.Объем КАК СуммОбъем,
| НеоднПоле.Штрихкоды
|{ВЫБРАТЬ
| Номенклатура.*,
| Артикул,
| Производитель.*,
| ОтветственныйЗаПокупки.*,
| Вес,
| Объем,
| Родитель.*,
| Остаток,
| СуммВес,
| СуммОбъем,
| Штрихкоды}
|ИЗ
| (ВЫБРАТЬ
| ШК_КОР.КОР + "" / "" + ШК_ШТ.ШТ КАК Штрихкоды,
| ШК_ШТ.ШТ_Ед2 КАК ШТ_Ед2
| ИЗ
| (ВЫБРАТЬ
| Штрихкоды.Штрихкод КАК ШТ,
| Штрихкоды.Владелец.ЕдиницаХраненияОстатков КАК ШТ_Ед2
| ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды) КАК ШК_ШТ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Штрихкоды.Штрихкод КАК КОР,
| Штрихкоды.Владелец.ЕдиницаДляОтчетов КАК КОР_Ед1
| ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды) КАК ШК_КОР
| ПО ШК_ШТ.ШТ_Ед2.Владелец = ШК_КОР.КОР_Ед1.Владелец) КАК НеоднПоле
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
| ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК ТНСОН
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки) КАК ТНСО
| ПО Номенклатура.Ссылка = ТНСО.ТНСОН
| ПО (Номенклатура.ЕдиницаХраненияОстатков = НеоднПоле.ШТ_Ед2)
|{ГДЕ
| Номенклатура.Ссылка.* КАК Номенклатура,
| Номенклатура.Артикул,
| Номенклатура.Производитель.*,
| Номенклатура.ОтветственныйМенеджерЗаПокупки.* КАК ОтветственныйЗаПокупки,
| Номенклатура.ЕдиницаХраненияОстатков.Вес КАК Вес,
| Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Объем,
| Номенклатура.Родитель.*,
| ТНСО.Остаток}
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.Ссылка,
| Номенклатура.Артикул,
| Номенклатура.Производитель,
| Номенклатура.ОтветственныйМенеджерЗаПокупки,
| Номенклатура.ЕдиницаХраненияОстатков.Вес,
| Номенклатура.ЕдиницаХраненияОстатков.Объем,
| Номенклатура.Родитель,
| ТНСО.Остаток,
| ТНСО.ТНСОН,
| НеоднПоле.Штрихкоды
|{УПОРЯДОЧИТЬ ПО
| Производитель.*,
| ОтветственныйЗаПокупки.*,
| Родитель.*,
| Номенклатура.*}
|ИТОГИ
| СУММА(Остаток),
| СУММА(СуммВес),
| СУММА(СуммОбъем)
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Остаток,
| СуммВес,
| СуммОбъем,
| Производитель.*,
| ОтветственныйЗаПокупки.*,
| Родитель.*,
| Номенклатура.*}";



// Представления полей отчета.
// Необходимо вызывать для каждого поля запроса.
// УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>);
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Номенклатура", "Номенклатура");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Производитель", "Производитель");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Родитель", "Родитель");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ОтветственныйЗаПокупки", "Ответственный");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Объем", "Объем");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Вес", "Вес");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Артикул", "Артикул");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Остаток", "Остаток");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СуммОбъем", "СуммОбъем");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СуммВес", "СуммВес");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Штрихкоды", "Штрихкоды");
//УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СрокДействия", "Срок Действия");
//УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Сертификат", "Сертификат");

// Добавление показателей
// Необходимо вызывать для каждого добавляемого показателя.
// УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);
УниверсальныйОтчет.ДобавитьПоказатель("Остаток", "Остаток", Истина, "ЧЦ=15; ЧДЦ=0", "Остаток", "Остаток");
УниверсальныйОтчет.ДобавитьПоказатель("СуммОбъем", "Сумма - Объем", Истина, "ЧЦ=15; ЧДЦ=3", "Остаток", "Объем");
УниверсальныйОтчет.ДобавитьПоказатель("СуммВес", "Сумма - Вес", Истина, "ЧЦ=15; ЧДЦ=3", "Остаток", "Вес");


// Добавление предопределенных группировок строк отчета.
// Необходимо вызывать для каждой добавляемой группировки строки.
// УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Производитель");
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("ОтветственныйЗаПокупки");
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Родитель");

// Добавление предопределенных группировок колонок отчета.
// Необходимо вызывать для каждой добавляемой группировки колонки.
// УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>);

// Добавление предопределенных отборов отчета.
// Необходимо вызывать для каждого добавляемого отбора.
// УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>);
УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
УниверсальныйОтчет.ДобавитьОтбор("Артикул");
УниверсальныйОтчет.ДобавитьОтбор("Производитель");
УниверсальныйОтчет.ДобавитьОтбор("ОтветственныйЗаПокупки");
УниверсальныйОтчет.ДобавитьОтбор("Объем");
УниверсальныйОтчет.ДобавитьОтбор("Вес");
УниверсальныйОтчет.ДобавитьОтбор("Остаток");
//УниверсальныйОтчет.ДобавитьОтбор("Сертификат");
//УниверсальныйОтчет.ДобавитьОтбор("СрокДействия");

// Добавление предопределенных полей порядка отчета.
// Необходимо вызывать для каждого добавляемого поля порядка.
// УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>);

// Установка связи подчиненных и родительских полей
// УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДаннымРодитель>);

// Установка связи полей и измерений
// УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>);

// Установка представлений полей
УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);

// Установка типов значений свойств в отборах отчета
УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();

// Заполнение начальных настроек универсального отчета
УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);

// Добавление дополнительных полей
// Необходимо вызывать для каждого добавляемого дополнительного поля.
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Номенклатура");
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Артикул");
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Штрихкоды");
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Объем");
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Вес");
//УниверсальныйОтчет.ДобавитьДополнительноеПоле("Сертификат");
//УниверсальныйОтчет.ДобавитьДополнительноеПоле("СрокДействия");

AIFrame

Вопрос снят.
Вложенные таблицы ШК нужно было связывать по "Все".

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск