|   |   | 
| 
 | передать значение переменной между процедурами модуля | ☑ | ||
|---|---|---|---|---|
| 0
    
        Zika 20.08.21✎ 16:37 | 
        ут11.4.8
 сильно допереписанная поэтому не обновлялась весьма давно. добавил макет для новой версии упд, нужно заполнять строку 5а. в модуле обработки "печать общих форм" сначала процедура заполнения шапки, потом процедура заполнения табличной части, в которой считается собственно количество строк. Вот мне это количество нужно передавать в заполнение шапки как-то. темы читал, пробовал но не получилось, видимо где то чтото все таки не так делал. Я не программист 1с вообще поэтому прошу сильно не глумиться. | |||
| 1
    
        ДенисЧ 20.08.21✎ 16:41 | 
        Предлагаю или стать программистом 1с или пригласить такового     | |||
| 2
    
        polosov 20.08.21✎ 16:42 | 
        (0) "Не лезь туда, д..., б...! Она тебя сожрет!"     | |||
| 3
    
        lodger 20.08.21✎ 16:43 | 
        а забить болт на 5а не желаете? https://www.diadoc.ru/blog/7979     | |||
| 4
    
        Zika 20.08.21✎ 16:50 | 
        (3) А если бумажный?     | |||
| 5
    
        Zika 20.08.21✎ 16:51 | 
        (2) все еще не сожрало... и к сожалению как показывает практика работы с программистами реально на простых задачах получается проще и быстрее сделать самому...
 когда в чеках ндс сделали неделю моск мучали.. сам сделал. а тут вот один маленький нюансик | |||
| 6
    
        Kassern 20.08.21✎ 16:55 | 
        (5) да маленький, если понимать как работать с печатными формами, как редактировать макеты и задавать параметры, как это выводить и откуда цеплять данные, а так да, плевое дело     | |||
| 7
    
        Kassern 20.08.21✎ 16:57 | 
        имхо, вам проще скачать рабочую обработку, или расширение, которое УПДшку правит и не парится, пару килорублей заплатите, зато без головняка.     | |||
| 8
    
        Zika 20.08.21✎ 17:02 | 
        (6) как работать с макетами и задавать параметры я знаю. это все работает.
 я могу просто тупо так же пересчет строк прописать и в обработке шапки да но это путь неправильный. я так понимаю вы сами не знаете что именно делать. скачать рабочую я с радостью, не подскажете где? расширение которое правит я бы опасался так как у нас посторюсь 1с не стандартная. | |||
| 9
    
        Kassern 20.08.21✎ 17:04 | 
        (8) как пример https://infostart.ru/public/1468487/     | |||
| 10
    
        Kassern 20.08.21✎ 17:05 | 
        (8) ну раз с макетами умеете управляться, то добавьте там эту строчку с параметром, посмотрите как пункт 5 заполняется и в каком месте, рядышком заполните 5а ваш нужными данными (заполните ваш параметр/шаблон) для области шапки.     | |||
| 11
    
        Zika 20.08.21✎ 17:20 | 
        (10) у меня все заполняется кроме номера последней строки. в 5 строке просто номер какого то документа другого он нормально заполняется по другому... вы по моему невнимательно читаете в чем у меня затык.
 строка 5а - заполнение номера строк документа с 1 по конечную (вот ее мне не передать), номер документа дата документа. | |||
| 12
    
        Kassern 20.08.21✎ 17:22 | 
        (11) вы не можете получить количество строк документа? Обращаетесь к табличной части и метод Количество() вам вернет количество строк.     | |||
| 13
    
        Kassern 20.08.21✎ 17:22 | 
        (11) скиньте кусок кода где у вас затык     | |||
| 14
    
        Zika 20.08.21✎ 17:26 | 
        (12) количество получается но в другой процедуре, где выводится сама табличная часть.
 а мне их количество надо вывести в шапке. добраться до кода смогу через час где то | |||
| 15
    
        Zika 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 | 
        Так шапка-то поди это ВыборкаИзРезультатаЗапроса - в нее можно поместить только то,что в запросе.
 Видимо,придется менять логику и переносить заполнение после выборки всех данных. | |||
| 17
    
        hhhh 20.08.21✎ 19:46 | 
        (14) количество строк равно
 ДанныеПечати.Ссылка.Товары.Количество() а вторую процедуру шлите лесом | |||
| 18
    
        Zika 20.08.21✎ 20:05 | 
        (17) поле объекта не обнаружено     | |||
| 19
    
        Zika 20.08.21✎ 20:09 | 
        (16) во второй процедуре есть обращение к процедуре заполнения шапки.
 правда до получения количества | |||
| 20
    
        hawksib 20.08.21✎ 20:25 | 
        (15) КоличествоСтрок = СтрокаТовары.Количество(); 
 в процедуре ЗаполнитьРеквизитыШапкиУПД не правильное значение показывает? | |||
| 21
    
        Zika 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/ вот тут можете почитать, ксатит     | |||
| 24
    
        hawksib 20.08.21✎ 20:45 | 
        (21) не работает, зачем я это читаю и пытаюсь разобраться? зачем ты это кинул? не делай так
 передать значение из процедуры которая сейчас работает в ту, которая уже выполнилась, не возможно считать количество трок придётся или при заполнении шапки, что не очень, наверно, правильно, или после заполнения подвала и возвращаясь к области шапки, что мне тоже не очень нравится, поэтому, так как ты сам указал, что не являешься разработчиком, предложение по обращению к профессионалам я бы поддержал | |||
| 25
    
        Zika 20.08.21✎ 20:47 | 
        (24) забыл убрать после эксперимента... там 4 строки     | |||
| 26
    
        Zika 20.08.21✎ 20:48 | 
        (22) не очень понял при чем тут эдо но почитаю, но опять же у нас версия от середины 19 года     | |||
| 27
    
        hawksib 20.08.21✎ 20:53 | 
        (18) как табличная часть у документа называется?     | |||
| 28
    
        hawksib 20.08.21✎ 20:58 | 
        (27) в документах ОтчетКомиссионера и ОтчетПоКомиссииМеждуОрганизациями     | |||
| 29
    
        Zika 20.08.21✎ 21:33 | 
        (28) это название вкладки или в конфигураторе надо смотреть?
 но мы обычные реализации товаров и услуг используем. | |||
| 30
    
        hawksib 20.08.21✎ 21:51 | 
        (29) не надо изучать программирование через форум, начни с книжги Радченко "Практическое пособие разработчика", все через него проходят     | |||
| 31
    
        Zika 20.08.21✎ 22:04 | 
        (30) теоретически я программирование (и даже на 1с) изучал...
 но это был обычный 8 и в общем то прошло 15 лет, и оно мне и нужно было для минимальных правок и тд и тп... повторюсь это сейчас слегка внезапно оказалось с вот этой штукой тут слишком мудреная у них все.... | |||
| 32
    
        Злопчинский 21.08.21✎ 00:00 | 
        Выведи строки, после вывода строк запихни это в графу 5а. всё. на клюшках - без проблем.     | |||
| 33
    
        Zika 21.08.21✎ 00:09 | 
        (32) я не очень понял что значит на клюшках.
 вы мне предлагаете переменную указанную в шаблоне в во второй процедуре просто присвоить значение а не первой? | |||
| 34
    
        hawksib 21.08.21✎ 05:45 | 
        (31) обычно, тот кто маломальски понимает в программировании 1С, не задаёт вопросы типа "что такое табличная часть"     | |||
| 35
    
        Zika 21.08.21✎ 18:04 | 
        (34) я знаючто такое табличная часть, я 1 не знаю где именно смотреть ее название и 2 не понимаю при чем тут отчет комиссионера     | |||
| 36
    
        Zika 21.08.21✎ 18:06 | 
        все получилось
 спасибо за (24) я подвинул все процедуры вывода данных в макет, и сдвинул обращение к процедуре шапки после расчета строк, и тогда количество нормально передалось и все вывелось. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |