|
передать значение переменной между процедурами модуля | ☑ | ||
---|---|---|---|---|
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) я подвинул все процедуры вывода данных в макет, и сдвинул обращение к процедуре шапки после расчета строк, и тогда количество нормально передалось и все вывелось. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |