Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 июн 2024, 07:20

Помогите с Циклом!!!

Автор TumenJan, 27 июн 2018, 04:59

0 Пользователей и 1 гость просматривают эту тему.

TumenJan

Не могу разобраться где поставить "Конец Цикла". Помогите плиз. Выложу здесь код:  (Могу удаленный доступ предоставить)
 
   Процедура ЗагрузитьСмартКомплекты(ДокументExcel) Экспорт
   
   ГруппаСистем = Справочники.Номенклатура.НайтиПоКоду("000000028  ");
      
   Документ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
   Документ.Дата = ТекущаяДата();
   Документ.НеПроводитьНулевыеЗначения = Истина;
   Документ.Комментарий = "цены были установлены из прайс-листа смарт-комплектов '" + ПутьКФайлу + "'";
   
   Форма = Документ.ПолучитьФорму("ФормаДокумента");
   
   ЦенаРозница = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розница");
   Валюта       = Справочники.Валюты.НайтиПоНаименованию("руб.");
   
   НоваяЦена = Документ.ТипыЦен.Добавить();
   НоваяЦена.ТипЦен = ЦенаРозница;
   
   ТЧТовары = Документ.Товары;
   
   МассивТипов = Новый Массив;
   МассивТипов.Добавить(Тип("Число"));
   КвалификаторЧисла = Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный);
   Числа = Новый ОписаниеТипов(МассивТипов,КвалификаторЧисла); 
   
   ТаблицаСчетчиков = Новый ТаблицаЗначений; // строки этой таблицы значений будут содержать начало и конец счетчика цикла,
   // нам это необходимо, поскольку в новом прейскуранте список систем разбит по разделам, и целиком пробежаться по списку не получится
   ТаблицаСчетчиков.Колонки.Добавить("НачалоЦикла", Числа); 
   ТаблицаСчетчиков.Колонки.Добавить("КонецЦикла", Числа);
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 87;
   НоваяСтрока.КонецЦикла = 89;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 91;
   НоваяСтрока.КонецЦикла = 94;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 96;
   НоваяСтрока.КонецЦикла = 99;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 101;
   НоваяСтрока.КонецЦикла = 104;
   
   // подгружаем цены ОВК и ОВК нашего региона, ОВК-Ф и ОВК-Ф ЮЛ нашего региона
   Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
      Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл
         
         НаименованиеСистемы = ДокументExcel.Sheets(2).Cells(Сч, 1).Value;
         
         ПозицияСноски = Найти(НаименованиеСистемы, " <*>");
         Если ПозицияСноски > 0 Тогда
            НаименованиеСистемы = СокрЛП(Лев(НаименованиеСистемы, ПозицияСноски - 1));   
         КонецЕсли;
               
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(2).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 2 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВК = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК, ЮЛ нашего региона", Истина, , Номенклатура);
         Если ХарОВК <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВК;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
         
         Если Найти(НаименованиеСистемы, "Базовый") = 0 Тогда
            ХарОВКФ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК-Ф, ЮЛ нашего региона", Истина, , Номенклатура);
            Если ХарОВКФ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
               НоваяСтрока = ТЧТовары.Добавить();         
               НоваяСтрока.Номенклатура             = Номенклатура;
               НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКФ;
               НоваяСтрока.Валюта                   = Валюта;
               НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
               НоваяСтрока.ПроцентСкидкиНаценки       = 0;
               НоваяСтрока.ТипЦен                   = ЦенаРозница;
               НоваяСтрока.Цена                   = ЦенаСистемы;
            КонецЕсли;
         КонецЕсли;
      КонецЦикла;
      КонецЦикла;
      
          ТаблицаСчетчиков.Очистить();
         
         НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 87;
           НоваяСтрока.КонецЦикла = 88;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 91;
           НоваяСтрока.КонецЦикла = 93;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 96;
           НоваяСтрока.КонецЦикла = 98;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 101;
           НоваяСтрока.КонецЦикла = 103;
         
         Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
          Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

         НаименованиеСистемы = ДокументExcel.Sheets(10).Cells(Сч, 1).Value;
         
         ПозицияСноски = Найти(НаименованиеСистемы, " <*>");
         Если ПозицияСноски > 0 Тогда
            НаименованиеСистемы = СокрЛП(Лев(НаименованиеСистемы, ПозицияСноски - 1));   
         КонецЕсли;
               
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(10).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 10 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВКЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК", Истина, , Номенклатура);
         Если ХарОВКЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКЮЛ;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
         
         Если Найти(НаименованиеСистемы, "Базовый") = 0 Тогда
            ХарОВКФЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК-Ф", Истина, , Номенклатура);
            Если ХарОВКФЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
               НоваяСтрока = ТЧТовары.Добавить();         
               НоваяСтрока.Номенклатура             = Номенклатура;
               НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКФЮЛ;
               НоваяСтрока.Валюта                   = Валюта;
               НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
               НоваяСтрока.ПроцентСкидкиНаценки       = 0;
               НоваяСтрока.ТипЦен                   = ЦенаРозница;
               НоваяСтрока.Цена                   = ЦенаСистемы;
            КонецЕсли;
         КонецЕсли;
         
      КонецЦикла;
      
      КонецЦикла;   
   ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВП и ОВП нашего региона
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 94;
   НоваяСтрока.КонецЦикла = 95;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 99;
   НоваяСтрока.КонецЦикла = 100;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 104;
   НоваяСтрока.КонецЦикла = 105;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 109;
   НоваяСтрока.КонецЦикла = 110;
   
   // подгружаем цены ОВП и ОВП, ЮЛ нашего региона
   Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
      Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл
         
         НаименованиеСистемы = ДокументExcel.Sheets(4).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(4).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 4 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВП = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП, ЮЛ нашего региона", Истина, , Номенклатура);
         Если ХарОВП <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВП;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
         
         ТаблицаСчетчиков.Очистить();
         
         НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 87;
           НоваяСтрока.КонецЦикла = 89;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 91;
           НоваяСтрока.КонецЦикла = 94;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 96;
           НоваяСтрока.КонецЦикла = 99;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 101;
           НоваяСтрока.КонецЦикла = 104;

         Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
          Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

         НаименованиеСистемы = ДокументExcel.Sheets(12).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(12).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 12 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВПЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП", Истина, , Номенклатура);
         Если ХарОВПЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВПЮЛ;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;   
      КонецЦикла;
      
        КонецЦикла;
   ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВМ1, ОВМ1 нашего региона, ОВМ2, ОВМ2 нашего региона
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 88;
   НоваяСтрока.КонецЦикла = 88;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 92;
   НоваяСтрока.КонецЦикла = 92;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 97;
   НоваяСтрока.КонецЦикла = 98;
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 102;
   НоваяСтрока.КонецЦикла = 103;
   
   // подгружаем цены ОВМ1 и ОВМ2, ОВМ1 и ОВМ2 ЮЛ нашего региона
   Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
      Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл
         
         НаименованиеСистемы = ДокументExcel.Sheets(6).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(6).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 6 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВM1 = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ1, ЮЛ нашего региона", Истина, , Номенклатура);
         Если ХарОВM1 <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM1;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
      КонецЦикла;   
      
          ТаблицаСчетчиков.Очистить();
         
         НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 93;
           НоваяСтрока.КонецЦикла = 94;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 97;
           НоваяСтрока.КонецЦикла = 99;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 102;
           НоваяСтрока.КонецЦикла = 104;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 107;
           НоваяСтрока.КонецЦикла = 109;
   
   
            Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
          Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

         
         НаименованиеСистемы = ДокументExcel.Sheets(8).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(8).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 8 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВM2 = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ2, ЮЛ нашего региона", Истина, , Номенклатура);
         Если ХарОВM2 <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM2;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
      КонецЦикла;
        КонецЦикла;
      
          ТаблицаСчетчиков.Очистить();
         
         НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 94;
           НоваяСтрока.КонецЦикла = 95;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 99;
           НоваяСтрока.КонецЦикла = 100;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 104;
           НоваяСтрока.КонецЦикла = 105;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 109;
           НоваяСтрока.КонецЦикла = 110;
   
   
            Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
          Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

         
         НаименованиеСистемы = ДокументExcel.Sheets(14).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(14).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 14 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВM1ЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ1", Истина, , Номенклатура);
         Если ХарОВM1ЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM1ЮЛ;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
      КонецЦикла;
         КонецЦикла;
      
          ТаблицаСчетчиков.Очистить();
         
         НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 93;
           НоваяСтрока.КонецЦикла = 94;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 97;
           НоваяСтрока.КонецЦикла = 99;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 102;
           НоваяСтрока.КонецЦикла = 104;
   
           НоваяСтрока = ТаблицаСчетчиков.Добавить();
           НоваяСтрока.НачалоЦикла = 107;
           НоваяСтрока.КонецЦикла = 109;
   
   
            Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
          Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

         
         НаименованиеСистемы = ДокументExcel.Sheets(16).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(16).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 16 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВM2ЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ2", Истина, , Номенклатура);
         Если ХарОВM2ЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM2ЮЛ;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;   
      КонецЦикла;
      КонецЦикла;
   
   ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВМ1, ОВМ1 нашего региона, ОВМ2, ОВМ2 нашего региона
   
   НоваяСтрока = ТаблицаСчетчиков.Добавить();
   НоваяСтрока.НачалоЦикла = 38;
   НоваяСтрока.КонецЦикла = 40;
      
   // подгружаем цены ОВМ1 и ОВМ2, ОВМ1 и ОВМ2 ЮЛ нашего региона
   Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл
         
      Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл
         
         НаименованиеСистемы = ДокументExcel.Sheets(20).Cells(Сч, 1).Value;
         
         ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(20).Cells(Сч, 6).Value);
         ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);
         
         Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
         Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Страница 20 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
            Продолжить;
         КонецЕсли;
               
         ХарОВП = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП", Истина, , Номенклатура);
         Если ХарОВП <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВП;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
         
         ХарОВК = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК", Истина, , Номенклатура);
         Если ХарОВК <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
            НоваяСтрока = ТЧТовары.Добавить();
            НоваяСтрока.Номенклатура             = Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВК;
            НоваяСтрока.Валюта                   = Валюта;
            НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
            НоваяСтрока.ПроцентСкидкиНаценки       = 0;
            НоваяСтрока.ТипЦен                   = ЦенаРозница;
            НоваяСтрока.Цена                   = ЦенаСистемы;
         КонецЕсли;
КонецЦикла;
         
КонецЦикла;   

   
   Форма.Открыть();
   
КонецПроцедуры


А вот ошибка при проверке процедуры:

{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1193,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1193,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1193,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1192,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1192,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1192,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗагрузкаЦенНоменклатурыИзПрайса2018.МодульОбъекта(1192,1)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>КонецПроцедуры (Проверка: Толстый клиент (обычное приложение))


wise

(0) НОРМАЛЬНО отформатируйте и станет СРАЗУ видно...
или подсчитай количество открытий цикла и количество закрытий, закрытий на ОДИН меньше...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Sy4a

Пометил места //ВОТ ЗДЕСЬ  и //И ВОТ ЗДЕСЬ
короче много где)
и искать легко же, ставишь курсор рядом со словом ДЛЯ и если для подсветилась значит она закрыта если нет то нет)

Процедура ЗагрузитьСмартКомплекты(ДокументExcel) Экспорт

ГруппаСистем = Справочники.Номенклатура.НайтиПоКоду("000000028  ");

Документ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
Документ.Дата = ТекущаяДата();
Документ.НеПроводитьНулевыеЗначения = Истина;
Документ.Комментарий = "цены были установлены из прайс-листа смарт-комплектов '" + ПутьКФайлу + "'";

Форма = Документ.ПолучитьФорму("ФормаДокумента");

ЦенаРозница = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розница");
Валюта       = Справочники.Валюты.НайтиПоНаименованию("руб.");

НоваяЦена = Документ.ТипыЦен.Добавить();
НоваяЦена.ТипЦен = ЦенаРозница;

ТЧТовары = Документ.Товары;

МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("Число"));
КвалификаторЧисла = Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный);
Числа = Новый ОписаниеТипов(МассивТипов,КвалификаторЧисла); 

ТаблицаСчетчиков = Новый ТаблицаЗначений; // строки этой таблицы значений будут содержать начало и конец счетчика цикла,
// нам это необходимо, поскольку в новом прейскуранте список систем разбит по разделам, и целиком пробежаться по списку не получится
ТаблицаСчетчиков.Колонки.Добавить("НачалоЦикла", Числа); 
ТаблицаСчетчиков.Колонки.Добавить("КонецЦикла", Числа);

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 87;
НоваяСтрока.КонецЦикла = 89;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 91;
НоваяСтрока.КонецЦикла = 94;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 96;
НоваяСтрока.КонецЦикла = 99;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 101;
НоваяСтрока.КонецЦикла = 104;

// подгружаем цены ОВК и ОВК нашего региона, ОВК-Ф и ОВК-Ф ЮЛ нашего региона
Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(2).Cells(Сч, 1).Value;

ПозицияСноски = Найти(НаименованиеСистемы, " <*>");
Если ПозицияСноски > 0 Тогда
НаименованиеСистемы = СокрЛП(Лев(НаименованиеСистемы, ПозицияСноски - 1));   
КонецЕсли;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(2).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 2 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВК = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК, ЮЛ нашего региона", Истина, , Номенклатура);
Если ХарОВК <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВК;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;

Если Найти(НаименованиеСистемы, "Базовый") = 0 Тогда
ХарОВКФ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК-Ф, ЮЛ нашего региона", Истина, , Номенклатура);
Если ХарОВКФ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();         
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКФ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;

ТаблицаСчетчиков.Очистить();

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 87;
НоваяСтрока.КонецЦикла = 88;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 91;
НоваяСтрока.КонецЦикла = 93;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 96;
НоваяСтрока.КонецЦикла = 98;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 101;
НоваяСтрока.КонецЦикла = 103;

Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(10).Cells(Сч, 1).Value;

ПозицияСноски = Найти(НаименованиеСистемы, " <*>");
Если ПозицияСноски > 0 Тогда
НаименованиеСистемы = СокрЛП(Лев(НаименованиеСистемы, ПозицияСноски - 1));   
КонецЕсли;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(10).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 10 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВКЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК", Истина, , Номенклатура);
Если ХарОВКЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКЮЛ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;

Если Найти(НаименованиеСистемы, "Базовый") = 0 Тогда
ХарОВКФЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК-Ф", Истина, , Номенклатура);
Если ХарОВКФЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();         
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВКФЮЛ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЕсли;

КонецЦикла;

КонецЦикла;   
ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВП и ОВП нашего региона

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 94;
НоваяСтрока.КонецЦикла = 95;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 99;
НоваяСтрока.КонецЦикла = 100;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 104;
НоваяСтрока.КонецЦикла = 105;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 109;
НоваяСтрока.КонецЦикла = 110;

// подгружаем цены ОВП и ОВП, ЮЛ нашего региона
Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(4).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(4).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 4 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВП = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП, ЮЛ нашего региона", Истина, , Номенклатура);
Если ХарОВП <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВП;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;

КонецЦикла; //ВОТ ЗДЕСЬ
КонецЦикла;  // И ВОТ ЗДЕСЬ
ТаблицаСчетчиков.Очистить();

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 87;
НоваяСтрока.КонецЦикла = 89;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 91;
НоваяСтрока.КонецЦикла = 94;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 96;
НоваяСтрока.КонецЦикла = 99;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 101;
НоваяСтрока.КонецЦикла = 104;

Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(12).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(12).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 12 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВПЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП", Истина, , Номенклатура);
Если ХарОВПЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВПЮЛ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;   
КонецЦикла;

КонецЦикла;


ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВМ1, ОВМ1 нашего региона, ОВМ2, ОВМ2 нашего региона

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 88;
НоваяСтрока.КонецЦикла = 88;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 92;
НоваяСтрока.КонецЦикла = 92;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 97;
НоваяСтрока.КонецЦикла = 98;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 102;
НоваяСтрока.КонецЦикла = 103;

// подгружаем цены ОВМ1 и ОВМ2, ОВМ1 и ОВМ2 ЮЛ нашего региона
Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(6).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(6).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 6 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВM1 = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ1, ЮЛ нашего региона", Истина, , Номенклатура);
Если ХарОВM1 <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM1;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЦикла;   
КонецЦикла;//И ВОТ ЗДЕСЬ
конецЦИкла;//И ВОТ ЗДЕСЬ
ТаблицаСчетчиков.Очистить();

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 93;
НоваяСтрока.КонецЦикла = 94;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 97;
НоваяСтрока.КонецЦикла = 99;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 102;
НоваяСтрока.КонецЦикла = 104;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 107;
НоваяСтрока.КонецЦикла = 109;


Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл


НаименованиеСистемы = ДокументExcel.Sheets(8).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(8).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 8 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВM2 = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ2, ЮЛ нашего региона", Истина, , Номенклатура);
Если ХарОВM2 <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM2;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЦикла;
КонецЦикла;

ТаблицаСчетчиков.Очистить();

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 94;
НоваяСтрока.КонецЦикла = 95;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 99;
НоваяСтрока.КонецЦикла = 100;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 104;
НоваяСтрока.КонецЦикла = 105;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 109;
НоваяСтрока.КонецЦикла = 110;


Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл


НаименованиеСистемы = ДокументExcel.Sheets(14).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(14).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 14 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВM1ЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ1", Истина, , Номенклатура);
Если ХарОВM1ЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM1ЮЛ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЦикла;
КонецЦикла;

ТаблицаСчетчиков.Очистить();

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 93;
НоваяСтрока.КонецЦикла = 94;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 97;
НоваяСтрока.КонецЦикла = 99;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 102;
НоваяСтрока.КонецЦикла = 104;

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 107;
НоваяСтрока.КонецЦикла = 109;


Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл


НаименованиеСистемы = ДокументExcel.Sheets(16).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(16).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 16 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВM2ЮЛ = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВМ2", Истина, , Номенклатура);
Если ХарОВM2ЮЛ <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВM2ЮЛ;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;   
КонецЦикла;
КонецЦикла;

ТаблицаСчетчиков.Очистить(); // очищаем счетчики, теперь нам необходимы новые для загрузки цен ОВМ1, ОВМ1 нашего региона, ОВМ2, ОВМ2 нашего региона

НоваяСтрока = ТаблицаСчетчиков.Добавить();
НоваяСтрока.НачалоЦикла = 38;
НоваяСтрока.КонецЦикла = 40;

// подгружаем цены ОВМ1 и ОВМ2, ОВМ1 и ОВМ2 ЮЛ нашего региона
Для Каждого СтрокаТЗ Из ТаблицаСчетчиков Цикл

Для Сч = СтрокаТЗ.НачалоЦикла По СтрокаТЗ.КонецЦикла Цикл

НаименованиеСистемы = ДокументExcel.Sheets(20).Cells(Сч, 1).Value;

ЦенаСистемы = СокрЛП(ДокументExcel.Sheets(20).Cells(Сч, 6).Value);
ЦенаСистемы = Окр(Число(ЦенаСистемы), 2, РежимОкругления.Окр15как20);

Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеСистемы, Истина, ГруппаСистем);
Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
Сообщить("Страница 20 прейскуранта: не найдена номенклатура " + НаименованиеСистемы + ". Проверьте наименование!");
Продолжить;
КонецЕсли;

ХарОВП = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВП", Истина, , Номенклатура);
Если ХарОВП <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВП;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;

ХарОВК = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("ОВК", Истина, , Номенклатура);
Если ХарОВК <> Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда
НоваяСтрока = ТЧТовары.Добавить();
НоваяСтрока.Номенклатура             = Номенклатура;
НоваяСтрока.ХарактеристикаНоменклатуры = ХарОВК;
НоваяСтрока.Валюта                   = Валюта;
НоваяСтрока.ЕдиницаИзмерения          = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт", Истина, , Номенклатура);
НоваяСтрока.ПроцентСкидкиНаценки       = 0;
НоваяСтрока.ТипЦен                   = ЦенаРозница;
НоваяСтрока.Цена                   = ЦенаСистемы;
КонецЕсли;
КонецЦикла;

КонецЦикла;   


Форма.Открыть();

КонецПроцедуры

AIFrame

Товарищ начинающий программист, начинай свои коды разносить на процедуры и функции.
Простыня в 200-300 строк чистых if elif for тебе же самому нечитаема.
Вот ты тут по 50 раз пишешь НоваяСтрока = ТЧТовары.Добавить(); НоваяСтрока.а = а;
Делай структуру, наполняй и изменяй ее в отдельных процедурах и код основной процедуры у тебя сократится раза в 2.
НоваяСтрока = ТЧТовары.Добавить();
Структура.а = б;
НоваяСтрока.Заполнить(Структура);

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск