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

Исключить строки при печати документа 1с 8.1

Автор NeProfi, 25 янв 2017, 09:13

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

NeProfi

Добрый день!
Имеется справочник "АналогиНоменклатура", который содержит Эталон и Аналоги(элементы которые, аналогичны Эталону, содержатся в табличной части). Пытаюсь реализовать возможность, чтобы при выводе на печать табличнй части "ИсходныеКомплектующие" справочника "СпецификацииНоменклатуры", исключались аналоги, если они есть.
Написал часть кода, проверки только на Эталон, выдает на печать пустой документ.

Функция ПроверкаНаЭталон(Эталон)
   
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийЭлемент", ЭтотОбъект.Ссылка);
    Запрос.Текст = "ВЫБРАТЬ
                   |    АналогиНоменклатура.Эталон,
                   |    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура
                   |ИЗ
                   |    Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие,
                   |    Справочник.АналогиНоменклатура КАК АналогиНоменклатура
                   |ГДЕ
                   |    СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = АналогиНоменклатура.Эталон
                   | ИЛИ СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = АналогиНоменклатура.Аналоги.Аналог";
     
       Выборка = Запрос.Выполнить().Выбрать();
     Пока Выборка.Следующий() = Истина Цикл
        Эталон =  Выборка.Эталон;
        Прервать;
    КонецЦикла;
    Возврат Эталон
   
    КонецФункции


Функция ПечатьБезАналогов()
   
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_БезАналогов";

    Макет = ПолучитьМакет("БезАналогов");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаб");
    ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаб");
   
    ОбластьШапка.Параметры.НаименованиеСпецификации = Наименование;
    ОбластьШапка.Параметры.КодСпецификации = Код;
    ТабДокумент.Вывести(ОбластьШапка);
   
    ТабДокумент.Вывести(ОбластьШапкаТаблицы);
       
    Для Каждого СтрокаИсходныеКомпл Из ИсходныеКомплектующие Цикл
       
        Если  ПроверкаНаЭталон(СтрокаИсходныеКомпл.Номенклатура)= Истина Тогда
           
            ОбластьСтрокаТаблицы.Параметры.Номенклатура = СтрокаИсходныеКомпл.Номенклатура;
            ОбластьСтрокаТаблицы.Параметры.Код = СтрокаИсходныеКомпл.Номенклатура.Артикул;
            ОбластьСтрокаТаблицы.Параметры.Наименование = СтрокаИсходныеКомпл.Номенклатура.Наименование;
            ОбластьСтрокаТаблицы.Параметры.КолВИзд = СтрокаИсходныеКомпл.Количество;
            ОбластьСтрокаТаблицы.Параметры.ПоНорме = СтрокаИсходныеКомпл.Норма;
            ОбластьСтрокаТаблицы.Параметры.ЕдИзм = СтрокаИсходныеКомпл.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование;
            ТабДокумент.Вывести(ОбластьСтрокаТаблицы);     
        Иначе           
        КонецЕсли;
    КонецЦикла;
    Возврат ТабДокумент;
КонецФункции

Golickoff

Какой тип значения у реквизита АналогиНоменклатура.Эталон?
Не совсем по теме: Если в качестве условия вы делаете проверку, является ли что-либо истиной или ложью, достаточно написать
Если ПроверкаНаЭталон(СтрокаИсходныеКомпл.Номенклатура) Тогда
Аналогично
Пока Выборка.Следующий() Цикл
Точно так же
Если ПроверкаНаЭталон(СтрокаИсходныеКомпл.Номенклатура) = Ложь Тогда равнозначно Если Не ПроверкаНаЭталон(СтрокаИсходныеКомпл.Номенклатура) Тогда
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

NeProfi

Цитата: Golickoff от 25 янв 2017, 14:41
Какой тип значения у реквизита АналогиНоменклатура.Эталон?
Тип значения СправочникСсылка.Номенклатура, так же как у СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.

Теги: 1С 8.1 печать 

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

Рейтинг@Mail.ru Rambler's Top100

Поиск