Имя: Пароль:
1C
 
Написание аналогичной работы УТП в ERP
0 vladis222
 
31.07.19
11:49
Подскажите,пожалуйста - есть в УТП обработка - и там для заполнения макета необходимо выбрать информацию из регистра себестоимости + штрихкод на номенклатуру. В УТП это реализовано так:
/Запрос выбирает инфу из регистра себестоимости+штрихкод на номенклатуру.
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Контрагент",ЭтотОбъект.Поставщик);
    Запрос.УстановитьПараметр("ДатаНач",ЭтотОбъект.ДатаНачала);
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(ЭтотОбъект.ДатаКонец));
    Запрос.УстановитьПараметр("ДоговорКонтрагента",ЭтотОбъект.Договор);
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПродажиСебестоимость.Подразделение.ЦПС КАК ПодразделениеЦПС,
                   |    Штрихкоды.Штрихкод,
                   |    ПродажиСебестоимость.Номенклатура КАК Номенклатура,
                   |    ПродажиСебестоимость.ХарактеристикаНоменклатуры,
                   |    СУММА(ПродажиСебестоимость.Количество) КАК Количество,
                   |    СУММА(ПродажиСебестоимость.Стоимость) КАК Стоимость
                   |ИЗ
                   |    РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
                   |        ПО ПродажиСебестоимость.Номенклатура = Штрихкоды.Владелец
                   |            И ПродажиСебестоимость.ХарактеристикаНоменклатуры = Штрихкоды.ХарактеристикаНоменклатуры
                   |ГДЕ
                   |    ПродажиСебестоимость.ДокументОприходования.Контрагент = &Контрагент
                   |    И ПродажиСебестоимость.ДокументОприходования.ДоговорКонтрагента = &ДоговорКонтрагента
                   |    И ПродажиСебестоимость.Период МЕЖДУ &ДатаНач И &ДатаКон
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ПродажиСебестоимость.Номенклатура,
                   |    ПродажиСебестоимость.ХарактеристикаНоменклатуры,
                   |    Штрихкоды.Штрихкод,
                   |    ПродажиСебестоимость.Подразделение.ЦПС
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ПодразделениеЦПС,
                   |    ПродажиСебестоимость.Номенклатура.Наименование
                   |ИТОГИ
                   |    СУММА(Количество),
                   |    СУММА(Стоимость)
                   |ПО
                   |    ПодразделениеЦПС";
    Результат = Запрос.Выполнить();
    ВыборкаЦПС = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПодразделениеЦПС");
    ИтогСумма = 0;
    ИтогКоличество = 0;
    НомерСтроки = 0;
    Пока ВыборкаЦПС.Следующий() Цикл
        ЦПС.Параметры.ЦПС = ВыборкаЦПС.ПодразделениеЦПС;
        ИтогСумма = ИтогСумма + ВыборкаЦПС.Стоимость;
        ИтогКоличество = ИтогКоличество + ВыборкаЦПС.Количество;
        ЦПС.Параметры.Количество = ВыборкаЦПС.Количество;
        ЦПС.Параметры.Сумма  = ВыборкаЦПС.Стоимость;
        ТабДок.Вывести(ЦПС);
        ВыборкаНоменклатура = ВыборкаЦПС.Выбрать();
        ТабДок.НачатьГруппуСтрок();
        Пока ВыборкаНоменклатура.Следующий() Цикл
            НомерСтроки = НомерСтроки +1;
            Таблица.Параметры.НомерСтроки = НомерСтроки;
            Таблица.Параметры.Штрихкод = ВыборкаНоменклатура.Штрихкод;
            Таблица.Параметры.Номенклатура = ВыборкаНоменклатура.Номенклатура;
            Таблица.Параметры.Характеристика = ВыборкаНоменклатура.ХарактеристикаНоменклатуры;
            Таблица.Параметры.Количество = ВыборкаНоменклатура.Количество;
            Таблица.Параметры.Сумма =  ВыборкаНоменклатура.Стоимость;
            ТабДок.Вывести(Таблица);
        КонецЦикла;
        ТабДок.ЗакончитьГруппуСтрок();
    КонецЦикла;    
    Итог.Параметры.ИтогКоличество = ИтогКоличество;
    Итог.Параметры.ИтогСумма      = ИтогСумма;
    ТабДок.Вывести(Итог);
    
    Подвал.Параметры.ИтогСумма = ИтогСумма;
    Если Выборка.Количество()> 0 Тогда
        Подвал.Параметры.Менеджер = Выборка[Выборка.Количество()-1].Наименование;
        Подвал.Параметры.Должность = Трег(Выборка[Выборка.Количество()-1].Должность);
    Иначе
        Подвал.Параметры.Менеджер  = "";
        Подвал.Параметры.Должность = "";
    КонецЕсли;
    
    ТабДок.Вывести(Подвал);

Подскажите,пожалуйста,как в ERP можно сделать по аналогии?
1 shuhard
 
31.07.19
11:50
(0) по аналогии в полном объёме
2 vladis222
 
31.07.19
11:52
(1) просто вся соль в том,что в ЕРП по иному называются таблицы и регистры, нежели в УТП