Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Процедура Сформировать()
СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
СпрКонтр.ВыбратьЭлементы();
Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
Сообщить(СпрКонтр.Наименование);
Спр = СоздатьОбъект("Справочник.ТорговыеТочки");
Спр.ИспользоватьВладельца(СпрКонтр.ТекущийЭлемент());
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Сообщить(Спр.Наименование);
Х = СокрЛп(Спр.Код);
У = "";
Если Х="80002963" Тогда У = "68000550";
ИначеЕсли Х="80002964" Тогда У = "68000549";
ИначеЕсли Х="80004172" Тогда У = "68000551";
....................................
ИначеЕсли Х="80004503" Тогда У = "68000811";
ИначеЕсли Х="80003952" Тогда У = "68001300";
КонецЕсли;
Если У <> "" Тогда
Спр.CASID = У;
Спр.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;
Сообщить("Обработка завершена!");
КонецПроцедуры
Прислали обработку проставления определенного значения реквизита... Чуть со стула не упали... Всего 619 условий...
А накуя? Для "заполнения" этого кода подразделение передало (внимание!) CSV-файл... Не судьба была организовать построчное считывание этого файла и занесение информации?
При этом, вместо тупого перебора всего справочника было бы проще и бысрее использованить "НайтиПоКоду".
Это ещё цветочки. Видел, как при проведении документов вместо запросов перебирались справочники. Девочка, дописывавшая это, не осилила простые запросы с несколькими условиями в 7.7.
Процедура Сформувати()
ДовКонтр = СтворитиОб'єкт("Довідник.Контрагенти");
ДовКонтр.ВибратиЕлементи();
Доки ДовКонтр.ОтриматиЕлемент()=1 Цикл
Повідомити(ДовКонтр.Найменування);
Дов = СтворитиОб'єкт("Довідник.ТорговіТочки");
Дов.ВикористовуватиВласника(ДовКонтр.ПоточнийЕлемент());
Дов.ВибратиЕлементи();
Доки Дов.ОтриматиЕлемент()=1 Цикл
Повідомити(Дов.Найменування);
Х = СкорЛп(Дов.Код);
У = "";
Якщо Х="80002963" Тоді У = "68000550";
ІнакшеЯкщо Х="80002964" Тоді У = "68000549";
ІнакшеЯкщо Х="80004172" Тоді У = "68000551";
....................................
ІнакшеЯкщо Х="80004503" Тоді У = "68000811";
ІнакшеЯкщо Х="80003952" Тоді У = "68001300";
КінецьЯкщо;
Якщо У <> "" Тоді
Дов.CASID = У;
Дов.Записати();
КінецьЯкщо;
КінецьЦиклу;
КінецьЦиклу;
Повідомити("Обробка завершена!");
КінецьПроцедури
При этом, вместо тупого перебора всего справочника было бы проще и бысрее использованить "НайтиПоКоду".
От і циклу кінець, а хто слухав - молодець.
Здоров, небо у хмарах,
Здоров, юність в чоботях,
Зникни ти, моя туга,
Ось він я, привіт, війска!
Ех, колії-поїзди,
Як я потрапив сюди?
Тут не те що в громадянці,
На якоїсь громадянці,
Життя зовні й із вивороту
Сам попробуй вивчи.
Для смутку немає причин.
Важко бути собою,
Якщо ступають ряди.
Тільки серце птахом б'ється,
І радіє, і сміється,
І йому не вдається
Під конвоєм співати в груди.
Знати б, що там надалі.
Десь інде тече річка,
Десь інде дім, де чекають нас взад.
Це не смуток трохи,
Оце вітер лоскоче очі.
Побачь, як хлопець наяривае...