Для каждого СтрТабЧасти из ТЧ Цикл
таб1Контрагент=СтрТабЧасти.Контрагент;
таб1СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб1Контрагент);
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ2 Цикл
таб2Контрагент=СтрТабЧасти.Контрагент;
таб2СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб2Контрагент);
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ4 Цикл
таб4Контрагент=СтрТабЧасти.Контрагент;
таб4СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб4Контрагент);
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ Цикл
Если таб1Контрагент =таб2Контрагент и таб1Контрагент=таб4Контрагент
Тогда
//Если таб1Контрагент =таб2Контрагент и таб1Контрагент=таб4Контрагент
//сравниваем контрагентов для записи в счет если 3 все равны в счете 3 записи
//************======если не будет моб продумать!!!
Сообщить(таб1Контрагент);
//**Создаем счет
НовСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовСчет.Организация=Справочники.Организации.НайтиПоКоду("000000002");
НовСчет.Контрагент = таб1Контрагент;
Для каждого СтрТабЧасти из ТЧ Цикл
Для каждого СтрТабЧасти из ТЧ Цикл
таб1Контрагент=СтрТабЧасти.Контрагент;
таб1СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб1Контрагент);
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ2 Цикл
таб2Контрагент=СтрТабЧасти.Контрагент;
таб2СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб2Контрагент);
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ4 Цикл
таб4Контрагент=СтрТабЧасти.Контрагент;
таб4СуммаСУСН=СтрТабЧасти.СуммаСусн;
//Сообщить(таб4Контрагент);
КонецЦикла;
Если таб1Контрагент =таб2Контрагент и таб1Контрагент=таб4Контрагент
Тогда
//Если таб1Контрагент =таб2Контрагент и таб1Контрагент=таб4Контрагент
//сравниваем контрагентов для записи в счет если 3 все равны в счете 3 записи
//************======если не будет моб продумать!!!
Сообщить(таб1Контрагент);
//**Создаем счет
НовСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовСчет.Организация=Справочники.Организации.НайтиПоКоду("000000002");
НовСчет.Контрагент = таб1Контрагент;
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ Цикл
таб1Контрагент=СтрТабЧасти.Контрагент;
таб1СуммаСУСН=СтрТабЧасти.СуммаСусн;
Для каждого СтрТабЧасти из ТЧ2 Цикл
таб2Контрагент=СтрТабЧасти.Контрагент;
таб2СуммаСУСН=СтрТабЧасти.СуммаСусн;
Если таб1Контрагент =таб2Контрагент Тогда
Для каждого СтрТабЧасти из ТЧ4 Цикл
таб4Контрагент=СтрТабЧасти.Контрагент;
таб4СуммаСУСН=СтрТабЧасти.СуммаСусн;
Если таб2Контрагент=таб4Контрагент Тогда
НовСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовСчет.Организация=Справочники.Организации.НайтиПоКоду("000000002");
НовСчет.Контрагент = таб1Контрагент;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для каждого СтрТабЧасти из ТЧ Цикл
флУсл=0;
таб1Контрагент=СтрТабЧасти.Контрагент;
таб1СуммаСУСН=СтрТабЧасти.СуммаСусн;
Для каждого СтрТабЧасти2 из ТЧ2 Цикл
таб2Контрагент=СтрТабЧасти2.Контрагент;
таб2СуммаСУСН=СтрТабЧасти2.СуммаСусн;
Если таб1Контрагент =таб2Контрагент Тогда
флУсл=флУсл+1;
Иначе
прервать;
КонецЕсли;
КонецЦикла;
Для каждого СтрТабЧасти3 из ТЧ4 Цикл
таб4Контрагент=СтрТабЧасти3.Контрагент;
таб4СуммаСУСН=СтрТабЧасти3.СуммаСусн;
Если таб1Контрагент=таб4Контрагент Тогда
флУсл=флУсл+1;
Иначе
прервать;
КонецЕсли;
КонецЦикла;
Если флУсл=2 Тогда
НовСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовСчет.Организация=Справочники.Организации.НайтиПоКоду("000000002");
НовСчет.Контрагент = таб1Контрагент;
КонецЕсли;
КонецЦикла;
Поэтому:
МассивКонтрагентов = Новый Массив; //от задубления, как вариант
Для Каждого СтрокаТЧ Из ТЧ Цикл
Если МассивКонтрагентов.Найти(СтрокаТЧ.Контрагент) = Неопределено
И ТЧ2.Найти(СтрокаТЧ.Контрагент) <> Неопределено
И ТЧ4.Найти(СтрокаТЧ.Контрагент) <> Неопределено
Тогда
МассивКонтрагентов.Добавить(СтрокаТЧ.Контрагент);
НовСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
//...
КонецЕсли;
КонецЦикла;
Функция ПолучитьСумму(МассивСтрок)
Если МассивСтрок.Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
Рез = 0;
Для Каждого СтрокаТЧ ИЗ МассивСтрок Цикл
Рез = Рез + СтрокаТЧСуммаСусн;
КонецЦикла;
Возврат Рез;
КонецФункции
//////////////////////////////////////////////////////////////////////////////
МассивКонтрагентов = Новый Массив; //от задубления, как вариант
СтруктураТЧ = Новый Структура("ТЧ1, ТЧ2, ТЧ4", 0, 0, 0)
СтрукОтбора = Новый Структура("Контрагент");
Для Каждого СтрокаТЧ ИЗ ТЧ Цикл
Если МассивКонтрагентов.Найти(СтрокаТЧ.контрагент) <> Неопределено Тогда
Продолжить;
Иначе
Массивконтрагентов.Добавить(СтрокаТЧ.Контрагент);
Конецесли;
СоздаватьДокумент = Истина;
Для Каждого КлючЗначение Из СтруктураТЧ Цикл
СтрукОтбора.Контрагент = СтрокаТЧ.Контрагент;
ТекСумма = ПолучитьСумму(ЭтаФорма[КлючЗначение.Ключ].НайтиСтроки(СтрукОтбора));
Если ТекСумма = Неопределено Тогда
СоздаватьДокумент = Ложь; //нет контрагента в одной из ТЧ
Прервать;
КонецЦикла;
//помещаем итоги сумм в структуру
СтруктураТЧ[КлючЗначение.Ключ] = ТекСумма;
КонецЦикла;
Если СоздаватьДокумент Тогда
//СоздатьДокумент()
КонецЕсли;
КонецЦикла;