1С 7.7 Предприятие
Если Знач1=Знач2 Тогда
Сообщить(Совпадение);
КонецЕсли;
Если Знач2=Знач3 Тогда
Сообщить(Совпадение);
КонецЕсли;
Если Знач3=Знач4 Тогда
Сообщить(Совпадение);
КонецЕсли;
... и таких 20 значений
напишите.
4andriy, положить все в массив и сделать 2 цикла. Что-то вроде такого (псевдокод):
Для ъ=0 По ъ=КоличествоВМассиве Цикл
Для ъъ = 0 По ъъ=КоличествоВМассиве Цикл
Если ъ <> ъъ И Массив[ъ] == Массив[ъъ] Тогда
Сообщить("Совпадение " + ъ + " и " + ъъ);
КонецЕсли;
КонецЦикла;
КонецЦикла;
4andriy @ Сегодня, 10:37
,
Ще можна так:
Функция ВернутьЗначенияДляСравнения()
лпЧетные = 2;
лпНечетные = 3;
лпСписЗнач = СоздатьОбъект("СписокЗначений");
Для лпНомСписка = 1 По 20 Цикл
Если лпНомСписка % 2 = 0 Тогда
лпСписЗнач.ДобавитьЗначение(лпЧетные);
Иначе
лпСписЗнач.ДобавитьЗначение(лпНечетные);
КонецЕсли;
КонецЦикла;
Возврат лпСписЗнач;
КонецФункции
//======================================================================
Процедура СравнитьЗначения(прСписЗнач,прНомер)
лпЗначениеКотороеНужноСравнить = прСписЗнач.ПолучитьЗначение(прНомер);
лпРазмерСписка = прСписЗнач.РазмерСписка();
Для лпНомСписка = 1 По лпРазмерСписка Цикл
Если лпНомСписка = прНомер Тогда
Продолжить;
КонецЕсли;
лпЗначение = прСписЗнач.ПолучитьЗначение(лпНомСписка);
Если лпЗначениеКотороеНужноСравнить = лпЗначение Тогда
Сообщить("Значение в списке № "+лпНомСписка+" = искомому значению № "+прНомер+" т.е. = "+лпЗначение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры // СравнитьЗначения
//======================================================================
Процедура Сформировать()
лпСписЗнач = ВернутьЗначенияДляСравнения();
лпРазмерСписка = лпСписЗнач.РазмерСписка();
Для лпНомСписка = 1 По лпРазмерСписка Цикл
СравнитьЗначения(лпСписЗнач,лпНомСписка);
КонецЦикла;
КонецПроцедуры // Сформировать
Вставлю и свои 5 копеек.
Я так проверяю в табличной части документа на дубли контрагентов. Легко можно переделать на проверку на дубли в таблице значений или списке значений. Тут отработает быстрее чем цикл в цикле
сз=СоздатьОбъект("СписокЗначений");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
зн=Контрагент.Код;
поз=сз.НайтиЗначение(зн);
Если поз<>0 Тогда
СтараСтрічка="";
тмп=сз.ПолучитьЗначение(поз,СтараСтрічка);
сообщить("Однаковий Контрагент: "+Контрагент+" в рядках: "+СтараСтрічка+" і "+НомерСтроки,"!");
КонецЕсли;
сз.ДобавитьЗначение(зн,""+НомерСтроки);
КонецЦикла;
лпПустоеЗначение = ПолучитьПустоеЗначение("Справочник.Контрагенты");
лпТаблЧасть = СоздатьОбъект("ТаблицаЗначений");//Копія табличної частини для отримання номерів строк
лпТаблЗнач = СоздатьОбъект("ТаблицаЗначений");//Місце пошуку дублів
ВыгрузитьТабличнуюЧасть(лпТаблЧасть,"Контрагент");
лпТаблЗнач.Загрузить(лпТаблЧасть);
лпТаблЗнач.НоваяКолонка("Количество");//Для підрахунку кількості дублів
лпТаблЗнач.Заполнить(1,,,"Количество");
лпТаблЗнач.Свернуть("Контрагент","Количество");
лпТаблЗнач.Сортировать("Количество");//Сортуємо
лпКвоСтрок = лпТаблЗнач.КоличествоСтрок();
Для лпСчетчик = 1 По лпКвоСтрок Цикл
лпНомСтроки = (лпКвоСтрок+1)-лпСчетчик;//Йдемо знизу вверх
лпКвоПовтор = лпТаблЗнач.ПолучитьЗначение(лпНомСтроки,"Количество");
Если лпКвоПовтор = 1 Тогда// Продовжувати пошук не потрібно, вище дублів немає
Прервать;
КонецЕсли;
лпКонтрагент = лпТаблЗнач.ПолучитьЗначение(лпНомСтроки,"Контрагент");
Если ПустоеЗначение(лпКонтрагент) = 1 Тогда//Може бути і таке, це не основне завдання.
Продолжить;
КонецЕсли;
лпИскомаяСтрока = "";
лпТекст = "";
Пока лпТаблЧасть.НайтиЗначение(лпКонтрагент,лпИскомаяСтрока,"Контрагент") = 1 Цикл
Если ПустаяСтрока(лпТекст) = 1 Тогда
лпТекст = " разів в стрічках № "+лпИскомаяСтрока;
Иначе
лпТекст = лпТекст+", "+лпИскомаяСтрока;
КонецЕсли;
лпТаблЧасть.УстановитьЗначение(лпИскомаяСтрока,"Контрагент",лпПустоеЗначение);//Затираємо знайденого
лпИскомаяСтрока = "";
КонецЦикла;
Сообщить("Дублюється контрагент "+СокрЛП(Строка(лпКонтрагент))+" "+лпКвоПовтор+лпТекст,"!");
КонецЦикла;
Sharzem @ Сегодня, 9:59
,
Спеціально для мене заморочились? Звичайно це набагато краще. (оптимізовувати код можна до бескінечності). але і буковок набагато більше писати потрібно було,
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua