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

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

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

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

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