Как вывести в печатную форму данные о задолженности клиента. УТ 11

1. seregapplk 20.08.21 15:40 Сейчас в теме
Нужно в печатную форму добавить долг клиента.
Откуда правильно взять и как добавить?
По теме из базы знаний
Найденные решения
12. DenisVol 2 21.08.21 09:36 Сейчас в теме
Запрос2 = Новый Запрос(

		"ВЫБРАТЬ
		|	РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
		|	РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
		|	РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Регистратор
		|ИЗ
		|	РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК РасчетыСКлиентамиОстаткиИОбороты
		|ГДЕ
		|	РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
		|	И РасчетыСКлиентамиОстаткиИОбороты.Период = &Регистратор" );
		
		Запрос2.УстановитьПараметр("Контрагент", ДанныеПечати.Получатель);
		Запрос2.УстановитьПараметр("Регистратор", ДанныеПечати.Дата);
		Результат2 = Запрос2.Выполнить();
		
		ВыборкаДетальныеЗаписи2 = Результат2.Выбрать();

		Если ВыборкаДетальныеЗаписи2.Следующий() Тогда
			КонечныйДолг = ВыборкаДетальныеЗаписи2.СуммаКонечныйОстаток;
			Если КонечныйДолг < 0 Тогда
				ОбластьМакета.Параметры.ДолгИнфа = "Предоплата контрагента с учетом этой накладной составляет  " + (-1)*КонечныйДолг + " руб.";
			Иначе
				ОбластьМакета.Параметры.ДолгИнфа = "Задолженность контрагента с учетом этой накладной составляет  " + КонечныйДолг + " руб.";
			КонецЕсли;	
		Иначе
			ОбластьМакета.Параметры.ДолгИнфа = "";
		КонецЕсли;

Показать


вот такой у меня пример печати долга контрагента в расходной накладной. Можите под себя его подрехтовать
RacePeaceDiy; sergdmt; seregapplk; +3 Ответить
13. seregapplk 21.08.21 10:23 Сейчас в теме
Спасибо в накладной пусто, я чтото сделал не так.
// Выводим шапку накладной
		ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
		ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
		
		ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Расходная накладная';uk='Видаткова накладна'",КодЯзыкаПечать), КодЯзыкаПечать);
		
		СтруктураДанныхШапки = Новый Структура;
		СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ТекстЗаголовка);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		СведенияОПоставщике	= ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетОрганизации);	
		СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель,  ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетКонтрагента);

		ОбластьМакета                                   = Макет.ПолучитьОбласть("Поставщик");
		ПредставлениеПоставщика                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование",,КодЯзыкаПечать);
		РеквизитыПоставщика                             = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НомерСчета,Банк,МФО,/,ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов,",,КодЯзыкаПечать);
		
		СтруктураДанныхПоставщик = Новый Структура;
		СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
		СтруктураДанныхПоставщик.Вставить("Поставщик", ДанныеПечати.Организация);
		СтруктураДанныхПоставщик.Вставить("РеквизитыПоставщика", РеквизитыПоставщика);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		ОбластьМакета                                   = Макет.ПолучитьОбласть("Покупатель");
		ПредставлениеПолучателя                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование",,КодЯзыкаПечать);
		РеквизитыПокупателя                             = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ФактическийАдрес,Телефоны,",,КодЯзыкаПечать);
				СтруктураДанныхПокупатель = Новый Структура;
		СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя);
		СтруктураДанныхПокупатель.Вставить("Получатель", ДанныеПечати.Получатель);
		СтруктураДанныхПокупатель.Вставить("РеквизитыПокупателя", РеквизитыПокупателя);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		//+++
		 Запрос2 = Новый Запрос(

        "ВЫБРАТЬ
        |    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
        |    РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
        |    РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Регистратор
        |ИЗ
        |    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК РасчетыСКлиентамиОстаткиИОбороты
        |ГДЕ
        |    РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
        |    И РасчетыСКлиентамиОстаткиИОбороты.Период = &Регистратор" );
        
        Запрос2.УстановитьПараметр("Контрагент", ДанныеПечати.Получатель);
        Запрос2.УстановитьПараметр("Регистратор", ДанныеПечати.Дата);
        Результат2 = Запрос2.Выполнить();
        
        ВыборкаДетальныеЗаписи2 = Результат2.Выбрать();

        Если ВыборкаДетальныеЗаписи2.Следующий() Тогда
            КонечныйДолг = ВыборкаДетальныеЗаписи2.СуммаКонечныйОстаток;
            Если КонечныйДолг < 0 Тогда
                ОбластьМакета.Параметры.ДолгИнфа = "Предоплата контрагента с учетом этой накладной составляет  " + (-1)*КонечныйДолг + " руб.";
            Иначе
                ОбластьМакета.Параметры.ДолгИнфа = "Задолженность контрагента с учетом этой накладной составляет  " + КонечныйДолг + " руб.";
            КонецЕсли;    
        Иначе
            ОбластьМакета.Параметры.ДолгИнфа = "";
        КонецЕсли;
		// Выводим дополнительно информацию о договоре и заказе        
Показать
=
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Guyer 21 20.08.21 15:56 Сейчас в теме
Ну в макете сделать новое поле
Долг взять из Регистра РасчетыСКлиентами
3. Guyer 21 20.08.21 15:56 Сейчас в теме
В Пользовательском режиме явно не получится
4. seregapplk 20.08.21 15:57 Сейчас в теме
можно менять конфигурацию
5. Guyer 21 20.08.21 16:00 Сейчас в теме
Да причём тут можно или нельзя, расширениями делается 90%
8. M_A_D 193 20.08.21 16:45 Сейчас в теме
(5) да и расширения - лишнее, можно сделать ВПФ))
Тогда и расширения не нужно делать))
9. seregapplk 20.08.21 16:48 Сейчас в теме
где найти ПФ в Конфигураторе,
у меня еще и языки же (
6. seregapplk 20.08.21 16:01 Сейчас в теме
регистр накопления?
7. seregapplk 20.08.21 16:05 Сейчас в теме
10. seregapplk 20.08.21 17:00 Сейчас в теме
Помогите с постройкой запроса
11. seregapplk 21.08.21 08:59 Сейчас в теме
Нашел форму печатную, в обработке ПечатьОбщихФорм
документ РеализацияТоваровУселуг
В Печатной форме добавил (В области "покупатель") ячейку с параметром <ДолгПолучателя>
КАК правильно выставить запрос, или не запрос, как правильно сделать?
в
Функцию ЗаполнитьТабличныйДокументРасходнаяНакладная
12. DenisVol 2 21.08.21 09:36 Сейчас в теме
Запрос2 = Новый Запрос(

		"ВЫБРАТЬ
		|	РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
		|	РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
		|	РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Регистратор
		|ИЗ
		|	РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК РасчетыСКлиентамиОстаткиИОбороты
		|ГДЕ
		|	РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
		|	И РасчетыСКлиентамиОстаткиИОбороты.Период = &Регистратор" );
		
		Запрос2.УстановитьПараметр("Контрагент", ДанныеПечати.Получатель);
		Запрос2.УстановитьПараметр("Регистратор", ДанныеПечати.Дата);
		Результат2 = Запрос2.Выполнить();
		
		ВыборкаДетальныеЗаписи2 = Результат2.Выбрать();

		Если ВыборкаДетальныеЗаписи2.Следующий() Тогда
			КонечныйДолг = ВыборкаДетальныеЗаписи2.СуммаКонечныйОстаток;
			Если КонечныйДолг < 0 Тогда
				ОбластьМакета.Параметры.ДолгИнфа = "Предоплата контрагента с учетом этой накладной составляет  " + (-1)*КонечныйДолг + " руб.";
			Иначе
				ОбластьМакета.Параметры.ДолгИнфа = "Задолженность контрагента с учетом этой накладной составляет  " + КонечныйДолг + " руб.";
			КонецЕсли;	
		Иначе
			ОбластьМакета.Параметры.ДолгИнфа = "";
		КонецЕсли;

Показать


вот такой у меня пример печати долга контрагента в расходной накладной. Можите под себя его подрехтовать
RacePeaceDiy; sergdmt; seregapplk; +3 Ответить
13. seregapplk 21.08.21 10:23 Сейчас в теме
Спасибо в накладной пусто, я чтото сделал не так.
// Выводим шапку накладной
		ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
		ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
		
		ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(ДанныеПечати, НСтр("ru='Расходная накладная';uk='Видаткова накладна'",КодЯзыкаПечать), КодЯзыкаПечать);
		
		СтруктураДанныхШапки = Новый Структура;
		СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ТекстЗаголовка);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		СведенияОПоставщике	= ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетОрганизации);	
		СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Получатель,  ДанныеПечати.Дата,,ДанныеПечати.БанковскийСчетКонтрагента);

		ОбластьМакета                                   = Макет.ПолучитьОбласть("Поставщик");
		ПредставлениеПоставщика                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование",,КодЯзыкаПечать);
		РеквизитыПоставщика                             = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НомерСчета,Банк,МФО,/,ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов,",,КодЯзыкаПечать);
		
		СтруктураДанныхПоставщик = Новый Структура;
		СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика);
		СтруктураДанныхПоставщик.Вставить("Поставщик", ДанныеПечати.Организация);
		СтруктураДанныхПоставщик.Вставить("РеквизитыПоставщика", РеквизитыПоставщика);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		ОбластьМакета                                   = Макет.ПолучитьОбласть("Покупатель");
		ПредставлениеПолучателя                         = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование",,КодЯзыкаПечать);
		РеквизитыПокупателя                             = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ФактическийАдрес,Телефоны,",,КодЯзыкаПечать);
				СтруктураДанныхПокупатель = Новый Структура;
		СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя);
		СтруктураДанныхПокупатель.Вставить("Получатель", ДанныеПечати.Получатель);
		СтруктураДанныхПокупатель.Вставить("РеквизитыПокупателя", РеквизитыПокупателя);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
		ТабличныйДокумент.Вывести(ОбластьМакета);
		//+++
		 Запрос2 = Новый Запрос(

        "ВЫБРАТЬ
        |    РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
        |    РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
        |    РасчетыСКлиентамиОстаткиИОбороты.Регистратор КАК Регистратор
        |ИЗ
        |    РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(, , Регистратор, Движения, ) КАК РасчетыСКлиентамиОстаткиИОбороты
        |ГДЕ
        |    РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
        |    И РасчетыСКлиентамиОстаткиИОбороты.Период = &Регистратор" );
        
        Запрос2.УстановитьПараметр("Контрагент", ДанныеПечати.Получатель);
        Запрос2.УстановитьПараметр("Регистратор", ДанныеПечати.Дата);
        Результат2 = Запрос2.Выполнить();
        
        ВыборкаДетальныеЗаписи2 = Результат2.Выбрать();

        Если ВыборкаДетальныеЗаписи2.Следующий() Тогда
            КонечныйДолг = ВыборкаДетальныеЗаписи2.СуммаКонечныйОстаток;
            Если КонечныйДолг < 0 Тогда
                ОбластьМакета.Параметры.ДолгИнфа = "Предоплата контрагента с учетом этой накладной составляет  " + (-1)*КонечныйДолг + " руб.";
            Иначе
                ОбластьМакета.Параметры.ДолгИнфа = "Задолженность контрагента с учетом этой накладной составляет  " + КонечныйДолг + " руб.";
            КонецЕсли;    
        Иначе
            ОбластьМакета.Параметры.ДолгИнфа = "";
        КонецЕсли;
		// Выводим дополнительно информацию о договоре и заказе        
Показать
=
14. DenisVol 2 21.08.21 10:25 Сейчас в теме
вообще пусто? или не показало долг?
seregapplk; +1 Ответить
15. seregapplk 21.08.21 10:30 Сейчас в теме
16. DenisVol 2 21.08.21 10:33 Сейчас в теме
вы водите его в отдельно области или в области "покупатель"?
seregapplk; +1 Ответить
17. seregapplk 21.08.21 10:34 Сейчас в теме
Тут же все верно?
Прикрепленные файлы:
18. DenisVol 2 21.08.21 10:34 Сейчас в теме
если в области "покупатель", то по коду вы вывели область раньше, чем получили долг
RacePeaceDiy; seregapplk; +2 Ответить
19. DenisVol 2 21.08.21 10:35 Сейчас в теме
перенесите строку ТабличныйДокумент.Вывести(ОбластьМакета); после получения долга
RacePeaceDiy; seregapplk; +2 Ответить
20. DenisVol 2 21.08.21 10:36 Сейчас в теме
через сообщить или отладчиком проверьте "ДолгИнфа"
21. seregapplk 21.08.21 10:39 Сейчас в теме
Спасибо огромное, просто огромное! сейчас языки подправлю и в бой))
22. DenisVol 2 21.08.21 10:44 Сейчас в теме
я вам и на Про1с ответил нажмите там спасибо для рейтинга
23. DenisVol 2 21.08.21 10:44 Сейчас в теме
и тут выберите, что это решение Вашей задачи
RacePeaceDiy; seregapplk; +2 Ответить
24. RacePeaceDiy 05.06.25 13:41 Сейчас в теме
Не понравилось описанное здесь решение. Данная схема считает долг по текущему документу, по которому печатается форма. Если Вам нужно выводить общий долг клиента на текущий момент, то можете использовать следующий способ:
ЗапросДолга = Новый Запрос(                                                                                                                                                                                           
		"ВЫБРАТЬ                                                                                                   
		|	РасчетыСКлиентамиОстатки.АналитикаУчетаПоПартнерам.Контрагент КАК АналитикаУчетаПоПартнерамКонтрагент, 
		|	РасчетыСКлиентамиОстатки.КОплатеОстаток КАК Долг                                                    
		|ИЗ                                                                                                     
		|	РегистрНакопления.РасчетыСКлиентами.Остатки КАК РасчетыСКлиентамиОстатки                            
		|ГДЕ                                                                                                   
		|	РасчетыСКлиентамиОстатки.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент");                      

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

В таком случае, будет выводиться общий долг клиента на текущий момент времени (с учетом текущего документа). Может быть кому-нибудь пригодиться.
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот