Для каждого СтрТабЧасти из ТЧ Цикл таб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) СтрукОтбора = Новый Структура("Контрагент"); Для Каждого СтрокаТЧ ИЗ ТЧ Цикл Если МассивКонтрагентов.Найти(СтрокаТЧ.контрагент) <> Неопределено Тогда Продолжить; Иначе Массивконтрагентов.Добавить(СтрокаТЧ.Контрагент); Конецесли; СоздаватьДокумент = Истина; Для Каждого КлючЗначение Из СтруктураТЧ Цикл СтрукОтбора.Контрагент = СтрокаТЧ.Контрагент; ТекСумма = ПолучитьСумму(ЭтаФорма[КлючЗначение.Ключ].НайтиСтроки(СтрукОтбора)); Если ТекСумма = Неопределено Тогда СоздаватьДокумент = Ложь; //нет контрагента в одной из ТЧ Прервать; КонецЦикла; //помещаем итоги сумм в структуру СтруктураТЧ[КлючЗначение.Ключ] = ТекСумма; КонецЦикла; Если СоздаватьДокумент Тогда //СоздатьДокумент() КонецЕсли; КонецЦикла;