Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

передать значение переменной между процедурами модуля

передать значение переменной между процедурами модуля
Я
   Zika
 
20.08.21 - 16:37
ут11.4.8
сильно допереписанная поэтому не обновлялась весьма давно.
добавил макет для новой версии упд, нужно заполнять строку 5а.
в модуле обработки "печать общих форм" сначала процедура заполнения шапки, потом процедура заполнения табличной части, в которой считается собственно количество строк.
Вот мне это количество нужно передавать в заполнение шапки как-то.
темы читал, пробовал но не получилось, видимо где то чтото все таки не так делал.
Я не программист 1с вообще поэтому прошу сильно не глумиться.
   ДенисЧ
 
1 - 20.08.21 - 16:41
Предлагаю или стать программистом 1с или пригласить такового
   polosov
 
2 - 20.08.21 - 16:42
(0) "Не лезь туда, д..., б...! Она тебя сожрет!"
   lodger
 
3 - 20.08.21 - 16:43
а забить болт на 5а не желаете? https://www.diadoc.ru/blog/7979
   Zika
 
4 - 20.08.21 - 16:50
(3) А если бумажный?
   Zika
 
5 - 20.08.21 - 16:51
(2) все еще не сожрало... и к сожалению как показывает практика работы с программистами реально на простых задачах получается проще и быстрее сделать самому...

когда в чеках ндс сделали неделю моск мучали.. сам сделал.
а тут вот один маленький нюансик
   Kassern
 
6 - 20.08.21 - 16:55
(5) да маленький, если понимать как работать с печатными формами, как редактировать макеты и задавать параметры, как это выводить и откуда цеплять данные, а так да, плевое дело
   Kassern
 
7 - 20.08.21 - 16:57
имхо, вам проще скачать рабочую обработку, или расширение, которое УПДшку правит и не парится, пару килорублей заплатите, зато без головняка.
   Zika
 
8 - 20.08.21 - 17:02
(6) как работать с макетами и задавать параметры я знаю. это все работает.
я могу просто тупо так же пересчет строк прописать и в обработке шапки да но это путь неправильный. я так понимаю вы сами не знаете что именно делать.
скачать рабочую я с радостью, не подскажете где?
расширение которое правит я бы опасался так как у нас посторюсь 1с не стандартная.
   Kassern
 
9 - 20.08.21 - 17:04
   Kassern
 
10 - 20.08.21 - 17:05
(8) ну раз с макетами умеете управляться, то добавьте там эту строчку с параметром, посмотрите как пункт 5 заполняется и в каком месте, рядышком заполните 5а ваш нужными данными (заполните ваш параметр/шаблон) для области шапки.
   Zika
 
11 - 20.08.21 - 17:20
(10) у меня все заполняется кроме номера последней строки. в 5 строке просто номер какого то документа другого он нормально заполняется по другому... вы по моему невнимательно читаете в чем у меня затык.
строка 5а - заполнение
номера строк документа с 1 по конечную (вот ее мне не передать), номер документа дата документа.
   Kassern
 
12 - 20.08.21 - 17:22
(11) вы не можете получить количество строк документа? Обращаетесь к табличной части и метод Количество() вам вернет количество строк.
   Kassern
 
13 - 20.08.21 - 17:22
(11) скиньте кусок кода где у вас затык
   Zika
 
14 - 20.08.21 - 17:26
(12) количество получается но в другой процедуре, где выводится сама табличная часть.
а мне их количество надо вывести в шапке.
добраться до кода смогу через час где то
   Zika
 
15 - 20.08.21 - 18:33
Из второй процедуры надо в первую передать КоличествоСтрок

Процедура ЗаполнитьРеквизитыШапкиУПД(ДанныеПечати, СведенияОПоставщике, ДанныеКонтрагентов, Макет, ТабличныйДокумент)
    
    СведенияОГрузоотправителе = СведенияОГрузоотправителе(ДанныеПечати);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета,
        ДанныеПечати.Ссылка);
    ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
    
    ПараметрыШапки = Новый Структура;
    
    ПараметрыШапки.Вставить("Номер", НомерСчетаФактурыНаПечать(ДанныеПечати.Номер, ДанныеПечати.ИндексПодразделения));
    ПараметрыШапки.Вставить("Дата", Формат(ДанныеПечати.Дата, "ДЛФ=ДД"));
    ПараметрыШапки.Вставить("НомерИсправления", ?(ДанныеПечати.Исправление, ДанныеПечати.НомерИсправления, "--"));
    ПараметрыШапки.Вставить("ДатаИсправления",
        ?(ДанныеПечати.Исправление, Формат(ДанныеПечати.ДатаИсправления, "ДЛФ=ДД"), "--"));
    
    // Выводим данные о поставщике.

    ПредставлениеПоставщика = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        СведенияОПоставщике.ОфициальноеНаименование);
    
    АдресПоставщика = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес"));
    
    ИННПоставщика = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1%2'"),
        ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ИНН", Ложь),
        ?(Не ПустаяСтрока(ДанныеПечати.КПППоставщика), "/" + ДанныеПечати.КПППоставщика, ""));
        
    //ТекстДокументыОбОтгрузке = "";

    
        
    ПараметрыШапки.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
    ПараметрыШапки.Вставить("АдресПоставщика", АдресПоставщика);
    ПараметрыШапки.Вставить("ИННПоставщика", ИННПоставщика);
    //СтрокаТовары = ВыборкаПоДокументам.Выбрать();

    //КоличествоСтрок = СтрокаТовары.Количество();

    ВыборкаПоДокументам = ДанныеПечати.РезультатПоТабличнойЧасти.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
    ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
    СтрокаТовары = ВыборкаПоДокументам.Выбрать();
    КоличествоСтрок = СтрокаТовары.Количество();

    
    ПараметрыШапки.Вставить("КоличествоСтрок", КоличествоСтрок);

    
    
    // Выводим данные грузоотправителя.

    ТекстГрузоотправителя = "";
    Если ДанныеПечати.ТолькоУслуги ИЛИ ДанныеПечати.Грузоотправитель = Неопределено Тогда
        ТекстГрузоотправителя = "--";
    ИначеЕсли ДанныеПечати.Организация = ДанныеПечати.Грузоотправитель Тогда
        ТекстГрузоотправителя = НСтр("ru='он же'");
    Иначе
        ТекстГрузоотправителя = ФормированиеПечатныхФорм.ОписаниеОрганизации(
            СведенияОГрузоотправителе, "ПолноеНаименование,ФактическийАдрес");
    КонецЕсли;
    
    ПредставлениеГрузоотправителя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        ТекстГрузоотправителя);
    
    ПараметрыШапки.Вставить("ПредставлениеГрузоотправителя", ПредставлениеГрузоотправителя);
    
    // Выводим данные грузополучателя и покупателя.

    ТекстГрузополучателя = "--";
    
    ПредставлениеГрузополучателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        ТекстГрузополучателя);
    СтрокаПоДокументу = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        ?(ПустаяСтрока(ДанныеПечати.СтрокаПоДокументу),
            НСтр("ru='-- от --'"),
            ДанныеПечати.СтрокаПоДокументу));
    
    ПараметрыШапки.Вставить("ПоДокументу", СтрокаПоДокументу);
    
    ЕстьГрузополучатель = Не ДанныеПечати.ТолькоУслуги;
    
    ТаблицаКонтрагентов = ТаблицаКонтрагентовСчетаФактуры(ДанныеПечати, ДанныеКонтрагентов);
    
    ПредставлениеПокупателя       = "";
    ПредставлениеАдресаПокупателя = "";
    ПредставлениеИННПокупателя    = "";
    ПредставлениеГрузополучателя  = "";
    
    Для Каждого СтрокаТаблицы Из ТаблицаКонтрагентов Цикл
        
        СведенияОПокупателе = СтрокаТаблицы.СведенияОПокупателе;
        
        ПредставлениеПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='%1; %2'"),
            ПредставлениеПокупателя,
            ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование", Ложь));
        
        ПредставлениеАдресаПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='%1; %2'"),
            ПредставлениеАдресаПокупателя,
            ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес", Ложь));
            
        ПредставлениеИННПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='%1; %2%3'"),
            ПредставлениеИННПокупателя,
            ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ИНН", Ложь),
            ?(Не ПустаяСтрока(СтрокаТаблицы.КПП), "/" + СтрокаТаблицы.КПП, ""));
        
        Если ЕстьГрузополучатель Тогда
            СведенияОГрузополучателе = СтрокаТаблицы.СведенияОГрузополучателе;
            ПредставлениеГрузополучателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru='%1; %2'"),
                ПредставлениеГрузополучателя,
                ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ФактическийАдрес", Ложь));
        КонецЕсли;
        
    КонецЦикла;
    
    ПредставлениеПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        Сред(ПредставлениеПокупателя, 3));
    
    ПредставлениеАдресаПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        Сред(ПредставлениеАдресаПокупателя, 3));
    
    ПредставлениеИННПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        Сред(ПредставлениеИННПокупателя, 3));
        
    ПредставлениеГрузополучателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru='%1'"),
        ?(ЕстьГрузополучатель, Сред(ПредставлениеГрузополучателя, 3), "--"));
        
    ПараметрыШапки.Вставить("ПредставлениеПокупателя", ПредставлениеПокупателя);
    ПараметрыШапки.Вставить("АдресПокупателя", ПредставлениеАдресаПокупателя);
    ПараметрыШапки.Вставить("ИННПокупателя", ПредставлениеИННПокупателя);
    ПараметрыШапки.Вставить("ПредставлениеГрузополучателя", ПредставлениеГрузополучателя);
    ПараметрыШапки.Вставить("Валюта", НСтр("ru='Российский рубль, 643'"));
    
    СтруктураПараметровИдентификаторГосКонтракта = Новый Структура("ИдентификаторГосКонтракта");
    ЗаполнитьЗначенияСвойств(СтруктураПараметровИдентификаторГосКонтракта, ДанныеПечати);
    Если ДействуетПостановление981(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления) Тогда
        ПредставлениеИдентификаторГосКонтракта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='%1'"),
            СокрЛП(СтруктураПараметровИдентификаторГосКонтракта.ИдентификаторГосКонтракта));
    Иначе
        ПредставлениеИдентификаторГосКонтракта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='%1'"),
            СокрЛП(СтруктураПараметровИдентификаторГосКонтракта.ИдентификаторГосКонтракта));
    КонецЕсли;
    ПараметрыШапки.Вставить("ИдентификаторГосКонтракта", ПредставлениеИдентификаторГосКонтракта);
    
    ОбластьМакета.Параметры.Заполнить(ПараметрыШапки);
    
    ТабличныйДокумент.Вывести(ОбластьМакета);
    
КонецПроцедуры



Процедура ЗаполнитьТабличныйДокументУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати) Экспорт
    
    
    ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
    
    МакетУПД = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент");
    МакетУПД_625 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент_625");
    МакетУПД_981 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент981");
    МакетУПД_534 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьОбщихФорм.ПФ_MXL_УниверсальныйПередаточныйДокумент534");//Дима 30.06.21

    
    ДанныеПечати        = ДанныеДляПечати.РезультатПоШапке.Выбрать();
    ВыборкаПоДокументам = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Если ДанныеДляПечати.Свойство("РезультатПоКонтрагентам") Тогда
        ВыборкаКонтрагентов = ДанныеДляПечати.РезультатПоКонтрагентам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Иначе
        ВыборкаКонтрагентов = Неопределено;
    КонецЕсли;
    Если ДанныеДляПечати.Свойство("РезультатПоИсходнымДанным") Тогда
        ВыборкаОснований = ДанныеДляПечати.РезультатПоИсходнымДанным.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Иначе
        ВыборкаОснований = Неопределено;
    КонецЕсли;
    
    ЕстьПостановление981 = ЛОЖЬ;
    ЕстьПостановление1137_625 = ЛОЖЬ;
    ЕстьПостановление1137 = ЛОЖЬ;
    ЕстьПостановление534 = ЛОЖЬ;          //Дима 30.06.21


    
    ПервыйДокумент = Истина;
    Пока ДанныеПечати.Следующий() Цикл
        
        // Данное условие срабатывает, когда печать ведется из учетного документа (не из СФ),

        // но при этом требуется печать СФ (в этом случае нужно печатать УПД в статусе 1).

        // Условие "ТребуетсяНаличиеСФ" добавлено для документов, для которых необходимо

        // печатать УПД в статусе 2, но наличия СФ не обязательно.

        // Например, Возврат товаров между организациями и Возврат товаров поставщику.

        Если ДанныеПечати.СтатусУПД = 2
            И ЗначениеЗаполнено(ДанныеПечати.НалогообложениеНДС)
            И ДанныеПечати.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС
            И НЕ ДанныеПечати.ЭтоПередачаНаКомиссию
            И ДанныеПечати.ТребуетсяНаличиеСФ Тогда
            
            Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'Для документа %1 не введен %2'"),
                ДанныеПечати.Ссылка,
                ДанныеПечати.ПредставлениеДокумента);
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка,
                ,
                "ТекстСчетФактура");
                
            Продолжить;
        КонецЕсли;
        
        Если ДействуетПостановление534(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда            //Дима 30.06.21

            Макет = МакетУПД_534;                                                                        //Дима 30.06.21

            ЕстьПостановление534 = Истина;                                                              //Дима 30.06.21

        ИначеЕсли ДействуетПостановление981(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда      //Дима 30.06.21

            Макет = МакетУПД_981;
            ЕстьПостановление981 = Истина;
        ИначеЕсли ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда
            Макет = МакетУПД_625;
            ЕстьПостановление1137_625 = Истина;
        Иначе
            Макет = МакетУПД;
            ЕстьПостановление1137 = Истина;
        КонецЕсли;
        
        Если ЕстьПостановление1137_625 И ЕстьПостановление1137 Тогда
            
            Текст = НСтр("ru = 'Недоступна одновременная печать универсальных передаточных документов,
                |сформированных до и после начала применения постановления Правительства РФ №625 от 25 мая 2017 г.'");
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
            
            ТабличныйДокумент.Очистить();
            Прервать;
            
        КонецЕсли;
        
        Если (ЕстьПостановление1137_625 ИЛИ ЕстьПостановление1137) И ЕстьПостановление981 Тогда
            
            Текст = НСтр("ru = 'Недоступна одновременная печать универсальных передаточных документов,
                |сформированных до и после начала применения постановления Правительства РФ №981 от 19 августа 2017 г.'");
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                Текст,
                ДанныеПечати.Ссылка);
            
            ТабличныйДокумент.Очистить();
            Прервать;
            
        КонецЕсли;
        
        
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
            
        // Выводим общие реквизиты шапки

        СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата);
        ЗаполнитьРеквизитыШапкиУПД(ДанныеПечати, СведенияОбОрганизации, ВыборкаКонтрагентов, Макет, ТабличныйДокумент);
        
        // Выводим заголовок таблицы

        ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
        ТабличныйДокумент.Вывести(ЗаголовокТаблицы);
        
        НомерСтраницы = 1;
        
        // Инициализация итогов в документе

        ИтоговыеСуммы = СтруктураИтоговыеСуммы();
        
        // Создаем массив для проверки вывода

        МассивВыводимыхОбластей = Новый Массив;
        
        // Выводим многострочную часть документа

        ОбластьСтрокаСтандарт = Макет.ПолучитьОбласть("Строка");
        ОбластьИтого = Макет.ПолучитьОбласть("Итого");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");   
        Если Макет = МакетУПД_534 Тогда
        ОбластьПодвалНакладной = Макет.ПолучитьОбласть("ПодвалНакладной");  // дима

        КонецЕсли;
        
        ЗаполнитьРеквизитыПодвалаУПД(ОбластьПодвал, ДанныеПечати, СведенияОбОрганизации, ВыборкаКонтрагентов);
        Если Макет = МакетУПД_534 Тогда
        ЗаполнитьРеквизитыПодвалаУПД(ОбластьПодвалНакладной, ДанныеПечати, СведенияОбОрганизации, ВыборкаКонтрагентов);
        КонецЕсли;
        
        Если ДанныеДляПечати.РезультатПоШапке.Колонки.Найти("ВыводитьКодНоменклатуры") <> Неопределено Тогда
            ВыводитьКодНоменклатуры = ДанныеПечати.ВыводитьКодНоменклатуры;
        Иначе
            ВыводитьКодНоменклатуры = Истина;
        КонецЕсли;
        
        СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
        ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска);
            
        ИспользоватьНаборы = Ложь;
        Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ВыборкаПоДокументам, "ЭтоНабор") Тогда
            ИспользоватьНаборы = Истина;
            ОбластьСтрокаНабор         = Макет.ПолучитьОбласть("СтрокаНабор");
            ОбластьСтрокаКомплектующие = Макет.ПолучитьОбласть("СтрокаКомплектующие");
        КонецЕсли;
        
        ВыводитьКодыТНВЭД = ВыводитьКодыТНВЭД(ДанныеПечати, ЕстьПостановление981);
        
        ОперацияОблагаетсяНДСУПокупателя = Ложь;
        Если ДанныеПечати.СтатусУПД = 1
        И ДанныеПечати.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДСУПокупателя Тогда
            ОперацияОблагаетсяНДСУПокупателя = Истина;
        КонецЕсли;
        
        СтрокаТовары = ВыборкаПоДокументам.Выбрать();
        КоличествоСтрок = СтрокаТовары.Количество();
        //КвоСтрок = КоличествоСтрок;

        
        ТолькоСтавкаБезНДС = Истина;
        НомерСтроки = 0;
        Пока СтрокаТовары.Следующий() Цикл
            
            Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.ОтчетКомиссионера")
                ИЛИ ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.ОтчетПоКомиссииМеждуОрганизациями") Тогда
                Если СтрокаТовары.Покупатель <> ДанныеПечати.Покупатель
                    И СтрокаТовары.Покупатель <> НЕОПРЕДЕЛЕНО Тогда
                        Продолжить;
                КонецЕсли;
            КонецЕсли;
            
            Если НаборыСервер.ИспользоватьОбластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
                ОбластьСтрока = ОбластьСтрокаНабор;
            ИначеЕсли НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
                ОбластьСтрока = ОбластьСтрокаКомплектующие;
            Иначе
                ОбластьСтрока = ОбластьСтрокаСтандарт;
            КонецЕсли;
            
            Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
                ЗаполнитьРеквизитыСтрокиТовара(СтрокаТовары, ОбластьСтрока, Неопределено, , ВыводитьКодыТНВЭД);
            Иначе
                НомерСтроки = НомерСтроки + 1;
                ЗаполнитьРеквизитыСтрокиТовара(СтрокаТовары, ОбластьСтрока, НомерСтроки, , ВыводитьКодыТНВЭД);
                ПроставитьПрочеркиВПустыеПоляСтроки(ОбластьСтрока);
            КонецЕсли;
            
            СтруктураПараметров = Новый Структура;
            Если ОперацияОблагаетсяНДСУПокупателя Тогда
                СтруктураПараметров.Вставить("СтавкаНДС", НСтр("ru='НДС исчисляется налоговым агентом'"));
                СтруктураПараметров.Вставить("СуммаСНДС", "--");
                ТолькоСтавкаБезНДС = Ложь;
            ИначеЕсли СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
                СтруктураПараметров.Вставить("СтавкаНДС", НСтр("ru='без НДС'"));
                СтруктураПараметров.Вставить("СуммаНДС", НСтр("ru='без НДС'"));
            ИначеЕсли СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
                СтруктураПараметров.Вставить("СуммаНДС", 0);
                ТолькоСтавкаБезНДС = Ложь;
            Иначе
                ТолькоСтавкаБезНДС = Ложь;
            КонецЕсли;
            Если Не НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
                СтруктураПараметров.Вставить("Акциз", НСтр("ru='без акциза'"));
            КонецЕсли;
            ОбластьСтрока.Параметры.Заполнить(СтруктураПараметров);
            
            МассивВыводимыхОбластей.Очистить();
            МассивВыводимыхОбластей.Добавить(ОбластьСтрока);
            
            Если НомерСтроки = КоличествоСтрок Тогда
                МассивВыводимыхОбластей.Добавить(ОбластьИтого);
                МассивВыводимыхОбластей.Добавить(ОбластьПодвал);
            КонецЕсли;
            
            Если НомерСтроки <> 1 И НЕ ТабличныйДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
                
                НомерСтраницы = НомерСтраницы + 1;
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                
                ОбластьНумерацияЛистов = Макет.ПолучитьОбласть("НумерацияЛистов");
                ОбластьНумерацияЛистов.Параметры.Номер = НомерСчетаФактурыНаПечать(ДанныеПечати.Номер, ДанныеПечати.ИндексПодразделения);
                Если ДействуетПостановление534(ДанныеПечати.Дата, ДанныеПечати.ДатаИсправления) Тогда              //Дима 30.06.21

                    ОбластьНумерацияЛистов.Параметры.НомерЛиста = НомерСтраницы;                                  //Дима 30.06.21

                Иначе                                                                                              //Дима 30.06.21

                    ОбластьНумерацияЛистов.Параметры.Дата = Формат(ДанныеПечати.Дата, "ДЛФ=ДД; ДП=--");
                    ОбластьНумерацияЛистов.Параметры.НомерСтраницы = НомерСтраницы;
                КонецЕсли;                                                                                        //Дима 30.06.21


                ТабличныйДокумент.Вывести(ОбластьНумерацияЛистов);
                ТабличныйДокумент.Вывести(ЗаголовокТаблицы);
                
            КонецЕсли;
            
            ТабличныйДокумент.Вывести(ОбластьСтрока);
            
            Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда
                РассчитатьИтоговыеСуммы(ИтоговыеСуммы, СтрокаТовары);
            КонецЕсли;
        КонецЦикла;
        КвоСтрок = НомерСтроки;
        Сообщить (КвоСтрок);
        СтруктураПараметров.Вставить("КвоСтрок", КвоСтрок);
        // Выводим итоги по документу

        ДобавитьИтоговыеДанныеПодвала(ИтоговыеСуммы, НомерСтроки, ВалютаРегламентированногоУчета);
        
        Если ТолькоСтавкаБезНДС Тогда
            ИтоговыеСуммы.ИтогоСуммаНДС = НСтр("ru='без НДС'");
        КонецЕсли;
        
        Если ОперацияОблагаетсяНДСУПокупателя Тогда
            ИтоговыеСуммы.Вставить("ИтогоСуммаСНДС", "--");
            ИтоговыеСуммы.Вставить("ИтогоСуммаСНДСНаСтранице", "--");
        КонецЕсли;
        
        ОбластьИтого.Параметры.Заполнить(ИтоговыеСуммы);
        ПроставитьПрочеркиВПустыеПоляСтроки(ОбластьИтого);
        ТабличныйДокумент.Вывести(ОбластьИтого);
        
        КоличествоСтраниц = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Документ составлен на %1 %2'"),
            НомерСтраницы,
            ОбщегоНазначенияУТКлиентСервер.ФормаМножественногоЧисла(
                НСтр("ru = 'листе'"), НСтр("ru = 'листах'"), НСтр("ru = 'листах'"), НомерСтраницы));
        СтруктураПараметров = Новый Структура("КоличествоСтраниц", КоличествоСтраниц);
        ОбластьПодвал.Параметры.Заполнить(СтруктураПараметров);
        ТабличныйДокумент.Вывести(ОбластьПодвал);
        Если Макет = МакетУПД_534 Тогда
        ТабличныйДокумент.Вывести(ОбластьПодвалНакладной);
        КонецЕсли;
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
            ДанныеПечати.Ссылка);
            
    КонецЦикла;
    
КонецПроцедуры
   ДедМорроз
 
16 - 20.08.21 - 19:40
Так шапка-то поди это ВыборкаИзРезультатаЗапроса - в нее можно поместить только то,что в запросе.
Видимо,придется менять логику и переносить заполнение после выборки всех данных.
   hhhh
 
17 - 20.08.21 - 19:46
(14) количество строк равно
ДанныеПечати.Ссылка.Товары.Количество()

а вторую процедуру шлите лесом
   Zika
 
18 - 20.08.21 - 20:05
(17) поле объекта не обнаружено
   Zika
 
19 - 20.08.21 - 20:09
(16) во второй процедуре есть обращение к процедуре заполнения шапки.
правда до получения количества
   hawksib
 
20 - 20.08.21 - 20:25
(15) КоличествоСтрок = СтрокаТовары.Количество(); 


в процедуре ЗаполнитьРеквизитыШапкиУПД не правильное значение показывает?
   Zika
 
21 - 20.08.21 - 20:34
(20) это я пробовал кусок из второй процедуры перенести - это не родное и не работает :)
   Хосе
 
22 - 20.08.21 - 20:35
(15) поищите, есть ли в структуре данных ЭДО ссылка, напишите свой подсчет количества и выведите его в шапку.
   Хосе
 
23 - 20.08.21 - 20:35
https://infostart.ru/1c/articles/1453038/ вот тут можете почитать, ксатит
   hawksib
 
24 - 20.08.21 - 20:45
(21) не работает, зачем я это читаю и пытаюсь разобраться? зачем ты это кинул? не делай так
передать значение из процедуры которая сейчас работает в ту, которая уже выполнилась, не возможно
считать количество трок придётся или при заполнении шапки, что не очень, наверно, правильно, или после заполнения подвала и возвращаясь к области шапки, что мне тоже не очень нравится, поэтому, так как ты сам указал, что не являешься разработчиком, предложение по обращению к профессионалам я бы поддержал
   Zika
 
25 - 20.08.21 - 20:47
(24) забыл убрать после эксперимента... там 4 строки
   Zika
 
26 - 20.08.21 - 20:48
(22) не очень понял при чем тут эдо но почитаю, но опять же у нас версия от середины 19 года
   hawksib
 
27 - 20.08.21 - 20:53
(18) как табличная часть у документа называется?
   hawksib
 
28 - 20.08.21 - 20:58
(27) в документах ОтчетКомиссионера и ОтчетПоКомиссииМеждуОрганизациями
   Zika
 
29 - 20.08.21 - 21:33
(28) это название вкладки или в конфигураторе надо смотреть?

но мы обычные реализации товаров и услуг используем.
   hawksib
 
30 - 20.08.21 - 21:51
(29) не надо изучать программирование через форум, начни с книжги Радченко "Практическое пособие разработчика", все через него проходят
 
 
   Zika
 
31 - 20.08.21 - 22:04
(30) теоретически я программирование (и даже на 1с) изучал...
но это был обычный 8 и в общем то прошло 15 лет, и оно мне и нужно было для минимальных правок и тд и тп...
повторюсь это сейчас слегка внезапно оказалось с вот этой штукой

тут слишком мудреная у них все....
   Злопчинский
 
32 - 21.08.21 - 00:00
Выведи строки, после вывода строк запихни это в графу 5а. всё. на клюшках - без проблем.
   Zika
 
33 - 21.08.21 - 00:09
(32) я не очень понял что значит на клюшках.
вы мне предлагаете переменную указанную в шаблоне в во второй процедуре просто присвоить значение а не  первой?
   hawksib
 
34 - 21.08.21 - 05:45
(31) обычно, тот кто маломальски понимает в программировании 1С, не задаёт вопросы типа "что такое табличная часть"
   Zika
 
35 - 21.08.21 - 18:04
(34) я знаючто такое табличная часть, я 1 не знаю где именно смотреть ее название и 2 не понимаю при чем тут отчет комиссионера
   Zika
 
36 - 21.08.21 - 18:06
все получилось
спасибо за (24)  я подвинул все процедуры вывода данных в макет, и сдвинул обращение к процедуре шапки после расчета строк, и тогда количество нормально передалось и все вывелось.


Список тем форума
 
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.