Добавление колонки Процент оплат в список документов реализаций, минуя сложные расчеты

11.04.26

Задачи пользователя - Адаптация типовых решений

Тут описан способ вывода процента оплат в список документов по реализациям. Задача решена путем помещения расчетного значения в динамический список, не меняя его запроса.

Выдали мне следующее задание. В список документов реализаций нужно добавить колонку, отображающую процент оплат по документу.

 

 

Если мы откроем список документов “Заказ клиента”, то обнаружим похожую колонку cо значением процента оплаты. А если посмотреть, откуда выводится значение процента, то видно, что получается он из регистра сведений “Состояния заказов клиентов”.  А вот для документов реализаций такого регистра нет. Как быть тогда? Где-то эти расчеты должны же быть. Если мы зайдем в документ реализаций, то увидим гиперссылку “Оплачено”.

 

 

Глобальным поиском я ввел слово “Оплачено”, поиск вывел большое количество ссылок, я обратил внимание на Процедуру “ ОбновитьТекстГиперссылкиСостояниеРасчетов”, из нее вызывается функция СостояниеВзаиморасчетов”, в которой рассчитывается нужный нам “ПроцентОплаты”.  Расчет процента оплаты показался крайне сложным. Там запрос собранный из нескольких частей массивом с параметрами. Если обратиться к этим параметрам, то они укажут на функции, в которых также есть огромные запросы. Как все это поместить в динамический список? Пробовал разные варианты расчета.

Остановился на следующем варианте.

Добавил общий модуль “ВзаиморасчетыСервер” в расширение и скопировал процедуру “ОбновитьТекстГиперссылкиСостояниеРасчетов” в свое расширение. Сделал из этой процедуры функцию “ПолучитьПроцентОплатыПоРеализациям” Для проверки вызываю эту функцию при открытии документа. 

&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)   
ПроцентОплаты=ВзаиморасчетыСервер.ПолучитьПроцентОплатыПоРеализациям(ЭтаФорма, ПроцентОплаты);
    Сообщить("Процент оплаты " + ПроцентОплаты);
КонецПроцедуры

Открываем документ и видим

 

 

Отсюда видно, что значение процента выводится корректно.

Затем добавил форму списка Реализаций в расширение и программно откорректировал немного запрос списка документов. Программно добавил колонку “Процент оплаты”. В модуле списка объекта такой код:

&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	Расш1_ДинамическийСписокМодицифкация();  
	
	ПолеПеред = Элементы.СписокРеализацииТоваровУслугВалюта; 
    ДобавитьКолонкуСписка(ЭтаФорма, "ПроцентОплаты", "Процент оплаты", Элементы.СписокРеализацииТоваровУслуг, ПолеПеред);
  	
КонецПроцедуры

В процедуру Расш1_ДинамическийСписокМодицифкация() помещаем текст запроса списка документов.

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


КонецПроцедуры

Затем:

&НаСервереБезКонтекста
Процедура Расш1_СписокРеализацииТоваровУслугПриПолученииДанныхНаСервереПосле(ИмяЭлемента, Настройки, Строки)

	ВыводВСписокАктуальныхДанных(Строки);
		
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВыводВСписокАктуальныхДанных(Строки)  

	
	Документ = Строки.ПолучитьКлючи();
	
	Если Не Строки[Документ[0]].Данные.Свойство("ПроцентОплаты") Тогда
	    Возврат;
	КонецЕсли;

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

КонецПроцедуры 
&НаСервере
Функция ДобавитьКолонкуСписка(Форма, Имя, Заголовок, ЭлементСписка, ПолеПеред) Экспорт
   
    Элемент = Форма.Элементы.Вставить("дор_" + Имя, Тип("ПолеФормы"), ЭлементСписка, ПолеПеред);
    Элемент.Вид = ВидПоляФормы.ПолеНадписи;
    Элемент.ПутьКДанным = "СписокРеализацииТоваровУслуг." + Имя; 
	Элемент.АвтоМаксимальнаяШирина = ложь;
    Элемент.РастягиватьПоГоризонтали = ложь;
    Элемент.Заголовок = Заголовок;
  
КонецФункции

Пробую открывать список документов. Ошибка! Захожу в свою функцию, кумекаю и понимаю, что она предназначена для работы с формой. Код данной функции был заимствован из процедуры "ОбновитьТекстГиперссылкиСостояниеРасчетов" общего модуля "Взаиморасчеты". После внесения корректировок, алгоритм выглядит так:

 

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

КонецФункции // ()

Затем запускаем список документов Реализации, и видим колонку "Процент оплаты". Процент совпадает с тем, что указано  в форме документа реализации.

 

 

Но и это еще не все. Нужно же вытащить колонку с процентом оплаты в список документов продаж, однако там данный маневр не дал ожидаемого результата. Но я решил просто добавить кнопочку, которая из обработки документов продаж откроет  список реализаций с процентами. Считаю такое решение логичным. Если кто знает способ получше, попрошу написать, будет интересно. Возможно, мой способ не самый лучший, но он работает, как показала практика. Я еще многого не знаю)) как-то так.

Вступайте в нашу телеграмм-группу Инфостарт

Документ Реализация товаров и услуг Заказ клиента Процент оплат по документам реализаций Взаиморасчеты Функция Обновить гиперссылку Форма Объект. Поместить значение из расчета в динамический список

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Адаптация типовых решений Зарплата Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Абонемент ($m)

ЗУП 3.1.10 значительно изменил функционал формы отчетов по сравнению с 3.1.9, 3.1.8 и т.д.. В отчетах в отборах с видом сравнения: В списке, В группе из списка - неприятно, но стали пропадать из списков не отмеченные флажком элементы. Данное расширение решает проблему, не изменяя типовой функционал.

1 стартмани

31.07.2019    21652    7    sapervodichka    6    

28

Адаптация типовых решений Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

История небольшого расследования - сломались дополнительные реквизиты, или как НЕ НАДО использовать УИД в программном коде.

04.07.2019    24754    Enigma    38    

47

Адаптация типовых решений Системный администратор Программист Пользователь Бесплатно (free)

Статистика выпуска релизов фирмы "1С". Взгляд со стороны рядового разработчика. А также немного BI, GitHub и др.

24.06.2019    19989    Infostart    68    

105

Адаптация типовых решений Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Краткая инструкция по добавлению функционала доп обработок/отчетов в собственную подсистему.

24.05.2019    51608    login1020    15    

108

Адаптация типовых решений Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Бесплатно (free)

Есть проект на 1С:ERP. В рамках проекта надо организовать учет материалов по сериям с помощью штрихкодов. Нужно подключить сканеры штрихкодов, разработать систему штрихкодирования с учетом серий, разработать печать этикеток для штрихкодов на листах А4 и принтерах этикеток, создать рабочее место для учета израсходованных материалов. Пишу, в том числе и для себя, пригодится на других проектах. С поправкой на ветер можно использовать в УТ11.

20.05.2019    17912    milkers    8    

35

Адаптация типовых решений Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

В статье написано, как создать внешнюю печатную форму (для конфигураций с БСП) в формате Word.

1 стартмани

17.05.2019    71305    ВикторП    33    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oloy 3 14.04.26 00:48 Сейчас в теме
привет.
ты учитываешь только доки, где есть строка "Оплачено", а как с остальными? например, 17, 18, 19 доки. в них не "Оплачено", а "Расчеты по договору". их ведь тоже надо учитывать.
я тоже ковырялся долго в этом, делал индикатор "оплачено/частично/не оплачено", как в унф. тут есть подобная обработка (https://infostart.ru/1c/reports/2624855/). не знаю, насколько точно она отображает реальные данные, т.к. не могу её потестить :)
но я решил проблему с использованием регистров "РегистрНакопления.РасчетыСПоставщикамиПоСрокам" (для закупок) и "РегистрНакопления.РасчетыСКлиентамиПоСрокам" (для продаж) и сразу формирую всё в родном модифицированном запросе динамического списка. в целом получилось почти близко к точным значениям. в частности для 17 дока показывает "оплачено", 18 и 19 - "частично".
и, кстати, я тоже совсем ещё "зелёный" и практического опыта, считай, вообще нет.

пользуясь случаем. готов пойти в "подмастерья" к опытномоу спецу.
DS_cl0d93; +1 Ответить
2. DS_cl0d93 1 14.04.26 21:41 Сейчас в теме
(1) Привет! По этим документам (17, 18, 19) порядок расчета идет по договорам контрагентов. Процент оплаты там в самой оригинальной процедуре не рассчитан. Есть лишь значение Долга клиента.
Прикрепленные файлы:
3. oloy 3 15.04.26 05:47 Сейчас в теме
я об этом и говорю. но разве их не надо учитывать? это ведь тоже реализация ;)

зы. что-то не туда ответил, сорян
Для отправки сообщения требуется регистрация/авторизация