Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Значение Товары.Ост2822 в печ форму
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
Документ Реализ Тов и Услуг
Добавил реквизит товары.ост2821 и товары.2822
Необходимо в печ формы получить значение, создал в печ форме параметры и присвоить этим параметрам значение из запроса никак блин
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    НомерТЧ,
    |    НомерСтрокиТЧ,
    |    Номенклатура,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |    Номенклатура.Код     КАК Код,
    |    Номенклатура."+ ТекстКодАртикул + " КАК КодАртикул,
    |    Количество,
    |    КоличествоМест,
    |    ЕдиницаИзмерения.Представление КАК ЕдиницаЦены,
    |    ЕдиницаИзмеренияМест.Представление КАК ЕдиницаМест,
    |    Цена,
    |    Сумма,
    |    СуммаНДС,
    |    ПроцентСкидкиНаценки КАК Скидка,
    |    ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    |    ХарактеристикаНоменклатуры КАК Характеристика,
    |    СерияНоменклатуры КАК Серия
    |ИЗ
    |    (ВЫБРАТЬ
    |        1 КАК НомерТЧ,
    |        МИНИМУМ(НомерСтроки) КАК НомерСтрокиТЧ,
    |        Номенклатура         КАК Номенклатура,
    |        ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
  | Ост2822 КАК Ост2822,
       |    Ост2821 КАК Ост2821,

    |        ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
    |        Цена                 КАК Цена,
    |        СтавкаНДС            КАК СтавкаНДС,
    |        ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    |        ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
    |        СерияНоменклатуры    КАК СерияНоменклатуры,
    |        ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |        СУММА(Количество)    КАК Количество,
    |        СУММА(КоличествоМест)КАК КоличествоМест,
    |        СУММА(Сумма)         КАК Сумма,
    |        СУММА(СуммаНДС)      КАК СуммаНДС
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
    |    ГДЕ
    |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |    СГРУППИРОВАТЬ ПО
    |        Номенклатура,
        |        Ост2822,
                |        Ост2821,
    |        ЕдиницаИзмерения,
    |        ЕдиницаИзмеренияМест,
    |        Цена,
    |        СтавкаНДС,
    |        ПроцентСкидкиНаценки,
    |        ПроцентАвтоматическихСкидок,
    |        СерияНоменклатуры,

    |        ХарактеристикаНоменклатуры
    |    ) КАК ВложенныйЗапросПоТоварам
    |
    |ОБЪЕДИНИТЬ
    |
    |ВЫБРАТЬ
    |   2,
    |   РеализацияТоваровУслуг.НомерСтроки,
    |    РеализацияТоваровУслуг.Номенклатура,
    |    " + СтрокаВыборкиПоляСодержания + ",
    |    Номенклатура.Код     КАК Код,
    |    Номенклатура."+ ТекстКодАртикул + " КАК КодАртикул,
    |    Количество,
    |    NULL,
    |    Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаЦены,
    |    NULL,
    |    Цена,
    |    Сумма,
    |    СуммаНДС,
    |    ПроцентСкидкиНаценки,
    |    ПроцентАвтоматическихСкидок,
    |    NULL,
    |    NULL
    |    
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
    |
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерТЧ, НомерСтрокиТЧ
    |";
    
    ЗапросТовары = Запрос.Выполнить().Выгрузить();




........



ОбластьМакета.Параметры.Ост1 = ВыборкаСтрокТовары.Ост2821;
                ОбластьМакета.Параметры.Ост2 = ВыборкаСтрокТовары.Ост2822;
logist
А как это у Вас - результат запроса ТЗ - а в макет идет Выборка?
И что мешало назвать параметры в макете так же как в запросе, что бы установить их через Параметры.Заполнить()
bereznoy
Цитата(logist @ 12.04.12, 23:02) необходимо зарегистрироваться для просмотра ссылки
А как это у Вас - результат запроса ТЗ - а в макет идет Выборка?
И что мешало назвать параметры в макете так же как в запросе, что бы установить их через Параметры.Заполнить()

Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл 

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьМакета.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ОбластьМакета.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);


........


И что мешало назвать параметры в макете так же как в запросе, что бы установить их через Параметры.Заполнить()


Оооо...я не знал что так можно, сейчас попробую, но все равно поулчить не могу как я изначально пытался
logist
Цитата(bereznoy @ 12.04.12, 23:11) необходимо зарегистрироваться для просмотра ссылки
но все равно поулчить не могу как я изначально пытался

Отладчиком на результате запроса остановитесь и гляньте что там в ТЗ выбралось, если пусто, ищите проблему в запросе.

вероятно в запросе проблема и есть, смотрите первую секцию ВЫБРАТЬ.
bereznoy
Цитата(logist @ 12.04.12, 23:47) необходимо зарегистрироваться для просмотра ссылки
Отладчиком на результате запроса остановитесь и гляньте что там в ТЗ выбралось, если пусто, ищите проблему в запросе.

вероятно в запросе проблема и есть, смотрите первую секцию ВЫБРАТЬ.

Все получилось
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.