Имя: Пароль:
1C
 
Помогите с построителем отчета в обмене с сайтом
0 seregapplk
 
01.10.19
16:34
Перехожу с ут10,3
на ут для украины 2,3
в обмене с сайтом нет отбора по - категория номенклатуры
как добавить, потому что выгружает чуш,

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

КонецПроцедуры

Процедура ЗаполнитьОтборПостроителя(ПостроительОбъект) Экспорт
    
    ОтборКоличество = ПостроительОбъект.Отбор.Количество();
    Для Н = 1 По ОтборКоличество Цикл
        ПостроительОбъект.Отбор.Удалить(ОтборКоличество - Н);
    КонецЦикла;    
    
    ПостроительОбъект.Отбор.Добавить("Номенклатура", , "Номенклатура");
        
    ПостроительОбъект.Отбор.Добавить("ТипЦен", , "Тип цен");
    ПостроительОбъект.ДоступныеПоля.ТипЦен.Представление = "Тип цен";
    ПостроительОбъект.Отбор.Добавить("Склад", , "Остатки по складам");
    ПостроительОбъект.ДоступныеПоля.Склад.Представление = "Остатки по складам";
    ПостроительОбъект.Отбор.Добавить("Остаток", , "Остаток");
    ПостроительОбъект.ДоступныеПоля.Остаток.Представление = "Остаток";
     ПостроительОбъект.Отбор.Добавить("КатегорияНоменклатуры", , "Категория номенклатуры");
    ПостроительОбъект.ДоступныеПоля.КатегорияНоменклатуры.Представление = "Категория номенклатуры";
1 palsergeich
 
01.10.19
16:36
Пл моему проще переписать
2 FIXXXL
 
01.10.19
16:50
по хорошему, надо переписать на СКД...
3 seregapplk
 
01.10.19
16:57
ПостроительОбъект.Отбор.Добавить("КатегорияНоменклатуры", , "Категория номенклатуры");
    ПостроительОбъект.ДоступныеПоля.КатегорияНоменклатуры.Представление = "Категория номенклатуры";
это неправильно это я дописал
вот этот код добваляет в построитель отбор по контрагенту, как сделать чтобы отбирать по категориям?
ДоступныеПоля = Построитель.Отбор.ПолучитьДоступныеПоля();
        Поле = ДоступныеПоля.Добавить("Контрагент", "Контрагент",
        Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
        Поле.Отбор = Истина;
4 ам794123
 
01.10.19
17:08
Отбор это коллекция элементов отбора. Элемент отбора имеет свойства ВидСравнения, Использование, Значение и т.д. и метод - Установить. Исходите из этого, а подробности можно узнать в синтаксис-помощнике
5 seregapplk
 
02.10.19
07:48
Нет в коллекции категорий как в ут 10.3 код сильно отличается
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший