Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешняя печатная форма
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
gorik77
Создал внешнюю печатную форму, все выводит нормально


Функция ПечатьПоступлениеТоваров()
//взята из документа поступление товаров и услуг    
КонецФункции // ПечатьПоступлениеТоваров()

Функция Печать() Экспорт
    ТабДокумент = ПечатьПоступлениеТоваров();

    Возврат ТабДокумент;


    
КонецФункции




Теперь стоит задача добавить в ету форму тип цен номенклатуры, вернее цифру из опредиленного типа цены номенклатуры.
Нашел где непосредственно формируется строка, и хочу тут через номенклатуру добраться до ее типа цен, но ничего не получается.

Цикл в котором хочу добавить ТипЦенНоменклатуры:
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 


        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьМакета.Параметры.Товар                 = СокрЛП(ВыборкаСтрокТовары.Товар);
        товар                                         = ОбластьМакета.Параметры.Товар;
        ОбластьМакета.Параметры.ЦенаЗакупки           = СсылкаНаОбъект.товар.ТипыЦенНоменклатуры.ОсновнаяЦенаЗакупки;

        ОбластьМакета.Параметры.НомерСтроки           = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        
        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Если НЕ ЭтоНТТ Тогда
                Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
                Продолжить;
            Иначе    
                // для НТТ при отсутствии номенклатуры печатаем некий текст
                ОбластьМакета.Параметры.Товар = НСтр("ru='Товары в ассортименте';uk='Товари в асортименті'",КодЯзыкаПечать);
            КонецЕсли;
        КонецЕсли;
        
        ТабДокумент.Вывести(ОбластьМакета);

        Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
        СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;

    КонецЦикла;


поравьте если думаю в не правильном направлении.
Потому что ничего не получается ((
Vofka
Что это за жесть?

Попробуйте как-то так:

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


        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьМакета.Параметры.Товар                 = СокрЛП(ВыборкаСтрокТовары.Товар);
        товар                                         = ОбластьМакета.Параметры.Товар; // это шо за фигня?
        ОбластьМакета.Параметры.ЦенаЗакупки           = ВыборкаСтрокТовары.Товар.ТипыЦенНоменклатуры.ОсновнаяЦенаЗакупки;

        ОбластьМакета.Параметры.НомерСтроки           = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        
        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Если НЕ ЭтоНТТ Тогда
                Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
                Продолжить;
            Иначе    
                // для НТТ при отсутствии номенклатуры печатаем некий текст
                ОбластьМакета.Параметры.Товар = НСтр("ru='Товары в ассортименте';uk='Товари в асортименті'",КодЯзыкаПечать);
            КонецЕсли;
        КонецЕсли;
        
        ТабДокумент.Вывести(ОбластьМакета);

        Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
        СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;

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