public void ЗаполнитьТаблицуДокументовРасчетовСКонтрагентом(/*ДокументОбъект, СтруктураПараметров*/)
{
if(true/*НЕ ЗначениеЗаполнено(СтруктураПараметров.ДоговорКонтрагента)
ИЛИ НЕ СтруктураПараметров.ВестиПоДокументамРасчетовСКонтрагентом*/)
{
//ДокументОбъект.ДокументыРасчетовСКонтрагентом.Очистить();
}
//СделкаВШапкеДокумента = НЕ СтруктураПараметров.Свойство("ТаблицаСделок");
if(true/*СделкаВШапкеДокумента*/)
{
//ТаблицаСделок = Новый ТаблицаЗначений;
//ТаблицаСделок.Колонки.Добавить("Сделка");
//ТаблицаСделок.Колонки.Добавить("СуммаВзаиморасчетов", Новый ОписаниеТипов("Число"));
//СтрокаСделки = ТаблицаСделок.Добавить();
if(true/*НЕ ЗначениеЗаполнено(СтруктураПараметров.Сделка)
ИЛИ СтруктураПараметров.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом*/)
{
//СтрокаСделки.Сделка = Неопределено;
}
//СтрокаСделки.СуммаВзаиморасчетов = СтруктураПараметров.СуммаВзаиморасчетов;
}
//Направление = СтруктураПараметров.Направление;
//ВидЗаполнения = СтруктураПараметров.ВидЗаполнения;
//УчетСуммыДокумента = СтруктураПараметров.УчетСуммыДокумента;
/*// Выбираем из оперативных итогов все остатки по документам с датой оплаты меньше даты поступления (реализации)
*/
//Запрос = Новый Запрос;
/*Запрос.Текст =
"ВЫБРАТЬ
| ВзаиморасчетыПоДокументамОстатки.Сделка КАК Сделка,
| ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &Множитель КАК СуммаВзаиморасчетов,
| ВзаиморасчетыПоДокументамОстатки.СуммаРеглОстаток * &Множитель КАК СуммаРегл,
| ВЫБОР
| КОГДА &ЭтоВозврат
| ТОГДА &ПустаяДата
| КОГДА (НЕ &ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента)
| И НАЧАЛОПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ) = НАЧАЛОПЕРИОДА(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ)
| ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
| ИНАЧЕ КОНЕЦПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ)
| КОНЕЦ КАК ДатаОплаты,
| ВЫБОР
| КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка В (&СделкиДокумента)
| ТОГДА 1
| КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка = НЕОПРЕДЕЛЕНО
| ТОГДА 2
| ИНАЧЕ 3
| КОНЕЦ КАК Приоритет
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
| ,
| ДоговорКонтрагента = &ДоговорКонтрагента
| И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом
| И УпрУчет = &УпрУчет) КАК ВзаиморасчетыПоДокументамОстатки
|ГДЕ
| ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &Множитель > 0
| И ВЫБОР
| КОГДА &ЭтоВозврат
| ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
| КОГДА (НЕ &ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента)
| И НАЧАЛОПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ) = НАЧАЛОПЕРИОДА(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ)
| ТОГДА ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата
| ИНАЧЕ КОНЕЦПЕРИОДА(ЕСТЬNULL(ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.ДатаОплаты, ВзаиморасчетыПоДокументамОстатки.ДокументРасчетовСКонтрагентом.Дата), ДЕНЬ)
| КОНЕЦ < &Дата
| И ВЫБОР
| КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка В (&СделкиДокумента)
| ТОГДА 1
| КОГДА ВзаиморасчетыПоДокументамОстатки.Сделка = НЕОПРЕДЕЛЕНО
| ТОГДА 2
| ИНАЧЕ 3
| КОНЕЦ <= &МаксПриоритет
|
|УПОРЯДОЧИТЬ ПО
| Приоритет,
| Сделка,
| ДокументРасчетовСКонтрагентом
|АВТОУПОРЯДОЧИВАНИЕ";*/
if(true/*ДокументОбъект.ЭтоНовый()*/)
{
//Запрос.УстановитьПараметр("Дата", КонецДня(СтруктураПараметров.Дата));
}
//Запрос.УстановитьПараметр("ДоговорКонтрагента", СтруктураПараметров.ДоговорКонтрагента);
if(true/*СтруктураПараметров.Свойство("ОтражатьВУправленческомУчете")*/)
{
//Запрос.УстановитьПараметр("УпрУчет", СтруктураПараметров.ОтражатьВУправленческомУчете);
}
//СделкиДокумента = ОбщегоНазначения.УдалитьПовторяющиесяЭлементыМассива(ТаблицаСделок.ВыгрузитьКолонку("Сделка"));
//Запрос.УстановитьПараметр("СделкиДокумента", СделкиДокумента);
/*ВидРасчетовСКонтрагентом = ?(Направление = "Поступление", Перечисления.ВидыРасчетовСКонтрагентами.ПоПриобретению,
Перечисления.ВидыРасчетовСКонтрагентами.ПоРеализации);*/
//Запрос.УстановитьПараметр("ВидРасчетовСКонтрагентом", ВидРасчетовСКонтрагентом);
if(true/*Направление = "Поступление"*/)
{
//МножительНаправления = 1;
}
if(true/*СтруктураПараметров.Свойство("ЭтоВозврат")*/)
{
//МножительВозврата = ?(СтруктураПараметров.ЭтоВозврат = Истина, -1, 1);
//Запрос.УстановитьПараметр("ЭтоВозврат", ?(ТипЗнч(СтруктураПараметров.ЭтоВозврат) = Тип("Булево"), СтруктураПараметров.ЭтоВозврат, Ложь));
}
//Множитель = МножительНаправления * МножительВозврата;
//Запрос.УстановитьПараметр("Множитель", Множитель);
if(true/*ВидЗаполнения = "только по заказам"*/)
{
//МаксПриоритет = 1;
}
//ОпределениеВремениПроведенияПлатежногоДокумента = глЗначениеПеременной("ОпределениеВремениПроведенияПлатежногоДокумента");
//Запрос.УстановитьПараметр("МаксПриоритет", МаксПриоритет);
//Запрос.УстановитьПараметр("ОпределениеВремениПроведенияПлатежногоДокументаПоКонцуДняРегистрацииДокумента", ОпределениеВремениПроведенияПлатежногоДокумента = Перечисления.СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоКонцуДняРегистрацииДокумента);
//Запрос.УстановитьПараметр("ПустаяДата", '00010101');
//Результат = Запрос.Выполнить();
//ТаблицаОстатков = Результат.Выгрузить();
//ТаблицаПредоплат = ДокументОбъект.ДокументыРасчетовСКонтрагентом.Выгрузить();
//ТаблицаПредоплат.Очистить();
if(true/*МаксПриоритет = 3 И НЕ УчетСуммыДокумента*/)
{
/*// Заполняем всеми доступными остатками. Выбрать нужные должен будет пользователь,
*/
/*// удалив лишние строки или откорректировав суммы
*/
}
//ДокументОбъект.ДокументыРасчетовСКонтрагентом.Загрузить(ТаблицаПредоплат);
}