Имя: Пароль:
1C
 
Не загружаются контрагенты из Экселя
0 sergqwert
 
08.12.20
13:40
Загружаю номенклатуру из файла Эксель, данные нормально загружаются. По аналогии пытаюсь загрузить контрагентов, не грузятся вообще. В чем проблема, не могу понять. Конфигурация BAS УТ 3.2.

&НаКлиенте
Процедура ЗагрузитьНаСервере()
    
    Подключить();
    
    Если ДокExcel = Неопределено Тогда
        Возврат;    
    КонецЕсли;
    
    Попытка
        ПолучитьТЗ();    
        //ПолучитьТЗ1();
        ДокExcel.ActiveWorkbook.Close();
        ДокExcel.Quit();
    Исключение
        Сообщить(ОписаниеОшибки());
        ДокExcel.ActiveWorkbook.Close();
        ДокExcel.Quit();
        Возврат;
    КонецПопытки;

    ЗагрузитьНоменклатуруНаСервере("", ЭтаФорма.Отчет.Тип, ЭтаФорма.Отчет.ВнутреннийКод);
    ЗагрузитьКонтрагентыНаСервере("");
    //ЗагрузитьПартнерыНаСервере("");
    
КонецПроцедуры


&НаКлиенте
Функция ПолучитьТЗ()
        
    Ошибка = Ложь;
    ТаблицаНом.Очистить();
    
    //Разделитель = Найти(СписокКолонок, "-");
    
    Начало = 1;
    Конец  = 53;
    КолонкаПрохождения = 4;
    НомерСтроки = 1;
    НомерЛиста = 1;
    
    //Ошибки
    Если ПустаяСтрока(СокрЛП(Начало)) Тогда
        Начало = 0;
    Иначе    
        Попытка
            Начало = Число(Начало);
        Исключение
            Сообщить("В списке колонок должно быть числовое значение!", СтатусСообщения.Важное);
            Ошибка = Истина;
        КонецПопытки;
    КонецЕсли;
    
    Попытка
        Конец = Число(Конец);
    Исключение
        Сообщить("В списке колонок должно быть числовое значение!", СтатусСообщения.Важное);
        Ошибка = Истина;
    КонецПопытки;
    
    Если Конец < Начало Тогда
        Сообщить("Список колонок указаны не верно!", СтатусСообщения.Важное);    
        Ошибка = Истина;
    КонецЕсли;
    
    Если Ошибка Тогда
        Возврат Ошибка;    
    КонецЕсли;
    
    //ТЗ
    Пока (НЕ ДокExcel.Sheets(НомерЛиста).Cells(НомерСтроки, КолонкаПрохождения).Value = Неопределено Или НЕ СокрЛП(ДокExcel.Sheets(НомерЛиста).Cells(НомерСтроки, КолонкаПрохождения).Value) = "" ИЛИ НомерСтроки = 7) Цикл
        
        СтрокаТЗ = ТаблицаНом.Добавить();
        Для н = Начало По Конец Цикл
            
            СтрокаТЗ[Строка("Колонка"+н)] = ДокExcel.Sheets(НомерЛиста).Cells(НомерСтроки, н).Value;    
            
        КонецЦикла;
        
        НомерСтроки = НомерСтроки + 1;
        
    КонецЦикла;

    //Возврат ТЗ;
    
КонецФункции // ()

&НаСервере
Процедура ЗагрузитьКонтрагентыНаСервере(ИмяФайла)
    
    
    СпрКонтрагенты = Справочники.Контрагенты;
    СпрПартнеры = Справочники.Партнеры;
    //////xlLastCell = 11;
    //////НомерЛистаExcel = 1;
    //////Excel = Новый COMОбъект("Excel.Application");
    //////Excel.WorkBooks.Open(ИмяФайла);
    //КоличествоЛистов = Excel.Sheets.Count;
    НачатьТранзакцию();
    //////ExcelЛист = Excel.Sheets(НомерЛистаExcel);
    //////
    //////ТаблицаКонтрагентов = Неопределено;
    //////ПрочитатьЛистExcel(ТаблицаКонтрагентов, ExcelЛист, 2);
    //////
    //////Excel.ActiveWorkbook.Close();
    //////
    //////Excel.Quit();
    
    
    
    СоответствиеГрупп = Новый Соответствие;
    
    СчетчикЗаписей=0;
    КоличествоСчитано=0;
    КоличествоЗагружено=0;
    
    ДопСвойствоКод77     = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор("77b9e611-8d0b-11e9-80e3-ac1f6b01a2d7"));
    ДопСвойствоРодитель = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор("dd036191-cb29-11e9-ba8d-0cc47a4cd4c2"));
    ДопСвойствоКодВКПК  = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолучитьСсылку(Новый УникальныйИдентификатор("dd036192-cb29-11e9-ba8d-0cc47a4cd4c2"));
    Для каждого МассивТекСтроки Из ТаблицаКонтрагентов Цикл
        
        КодСтрока          = СокрЛП(МассивТекСтроки["Колонка6"]);
        НаименованиеК      = СокрЛП(МассивТекСтроки["Колонка7"]);
        ВидКонтрагента      = СокрЛП(МассивТекСтроки["Колонка9"]);
        КодПоЕДРПОУ      = СокрЛП(МассивТекСтроки["Колонка13"]);
        ИНН                  = СокрЛП(МассивТекСтроки["Колонка24"]);
        ПолнНаименование = СокрЛП(МассивТекСтроки["Колонка30"]);
        ПочтовыйАдрес      = СокрЛП(МассивТекСтроки["Колонка31"]);
        ЮридическийАдрес = СокрЛП(МассивТекСтроки["Колонка37"]);
        НомерСвидетельства = СокрЛП(МассивТекСтроки["Колонка27"]);
        Телефоны            = СокрЛП(МассивТекСтроки["Колонка36"]);
        ЭтоПокупатель        = СокрЛП(МассивТекСтроки["Колонка3"]);
        ЭтоПоставщик        = СокрЛП(МассивТекСтроки["Колонка2"]);
        КодВКПК            = СокрЛП(МассивТекСтроки["Колонка40"]);
        СтрДоговор            = СокрЛП(МассивТекСтроки["Колонка39"]);

        
        ЭтоГуппа = МассивТекСтроки["Колонка4"];
        
        Наименование = СокрЛП(МассивТекСтроки["Колонка1"]);
        ПолноеИмя = СокрЛП(МассивТекСтроки["Колонка5"]);
        
        ПолноеИмя = СтрЗаменить(ПолноеИмя, Наименование, "");
        
        МассивИерархии = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПолноеИмя, "/", Истина);
        
        ТекРодитель = Справочники.ЗначенияСвойствОбъектовИерархия.ПустаяСсылка();
        
        ЕстьРодитель = МассивИерархии.Количество() >= 1;
        
        Если ЕстьРодитель Тогда
            ИмяРодителя = СокрЛП(МассивИерархии[МассивИерархии.ВГраница()]);
            ТекРодитель = СоответствиеГрупп.Получить(ИмяРодителя);
            
            Если ТекРодитель = Неопределено Тогда
                ТекРодитель = Справочники.ЗначенияСвойствОбъектовИерархия.НайтиПоНаименованию(Наименование, , ТекРодитель, ДопСвойствоРодитель);
            КонецЕсли;
        КонецЕсли;
        
        Если ЭтоГуппа = "1" Тогда
            ТекГруппа = Справочники.ЗначенияСвойствОбъектовИерархия.НайтиПоНаименованию(Наименование, , ТекРодитель, ДопСвойствоРодитель);
            Если ТекГруппа.Пустая() Тогда
                СпрПапкаГР = Справочники.ЗначенияСвойствОбъектовИерархия.СоздатьЭлемент();
                СпрПапкаГР.Родитель = ТекРодитель;
                СпрПапкаГР.Наименование = Наименование;
                СпрПапкаГР.Владелец = ДопСвойствоРодитель;
                СпрПапкаГР.Записать();
                СоответствиеГрупп.Вставить(Наименование, СпрПапкаГР.Ссылка);
            Иначе
                СпрПапкаГР = ТекГруппа.ПолучитьОбъект();
                СпрПапкаГР.Родитель = ТекРодитель;
                СпрПапкаГР.Наименование = Наименование;
                СпрПапкаГР.Записать();
                СоответствиеГрупп.Вставить(Наименование, СпрПапкаГР.Ссылка);
            КонецЕсли;
            Продолжить;
        КонецЕсли;
        
        КонтрагентСсыка = НайтиКонтрагентаПоКоду(ДопСвойствоКод77, КодСтрока);
        
        Если НЕ КонтрагентСсыка = Неопределено Тогда
            КонтрагентОбъект = КонтрагентСсыка.ПолучитьОбъект();
        Иначе
            КонтрагентОбъект = СпрКонтрагенты.СоздатьЭлемент();
            нсДопРеквизиты = КонтрагентОбъект.ДополнительныеРеквизиты.Добавить();
            нсДопРеквизиты.Свойство = ДопСвойствоКод77;
            нсДопРеквизиты.Значение = КодСтрока;
        КонецЕсли;
        
        КонтрагентОбъект.Наименование = НаименованиеК;
        
        СтрокиМатТовар = КонтрагентОбъект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопСвойствоРодитель));
        Для Каждого элСтрокиМатТовар Из СтрокиМатТовар Цикл
            КонтрагентОбъект.ДополнительныеРеквизиты.Удалить(элСтрокиМатТовар);
        КонецЦикла;
                    
        нсДопРеквизит = КонтрагентОбъект.ДополнительныеРеквизиты.Добавить();
        нсДопРеквизит.Свойство = ДопСвойствоРодитель;
        нсДопРеквизит.Значение = ТекРодитель;
        
        
        СтрокиКодВКПК = КонтрагентОбъект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопСвойствоКодВКПК));
        Для Каждого элСтрокиКодВКПК Из СтрокиКодВКПК Цикл
            КонтрагентОбъект.ДополнительныеРеквизиты.Удалить(элСтрокиКодВКПК);
        КонецЦикла;
        
        Если ЗначениеЗаполнено(КодВКПК) Тогда
            нсДопРеквизит = КонтрагентОбъект.ДополнительныеРеквизиты.Добавить();
            нсДопРеквизит.Свойство = ДопСвойствоКодВКПК;
            нсДопРеквизит.Значение = КодВКПК;
        КонецЕсли;
        
        Если ВидКонтрагента = "Частное лицо" Тогда
            КонтрагентОбъект.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо;
            КонтрагентОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ИндивидуальныйПредприниматель;
        ИначеЕсли ВидКонтрагента = "Организация" Тогда
            КонтрагентОбъект.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
            КонтрагентОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
        КонецЕсли;
        КонтрагентОбъект.КодПоЕДРПОУ         = КодПоЕДРПОУ;
        КонтрагентОбъект.ИННПлательщикаНДС     = ИНН;
        КонтрагентОбъект.НаименованиеПолное = ПолнНаименование;
        КонтрагентОбъект.НомерСвидетельстваПлательщикаНДС = НомерСвидетельства;
        Если ПочтовыйАдрес <> "" Тогда
            СтрокиКИ = КонтрагентОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид,Тип",
                Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента, Перечисления.ТипыКонтактнойИнформации.Адрес));
                
            Если СтрокиКИ.Количество() = 0 Тогда
                НоваяСтрокаКИ = КонтрагентОбъект.КонтактнаяИнформация.Добавить();
                НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;
                НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                НоваяСтрокаКИ.Представление = ПочтовыйАдрес;
            Иначе
                СтрокиКИ[0].Представление = ПочтовыйАдрес;
            КонецЕсли;
        КонецЕсли;
        Если ЮридическийАдрес <> "" Тогда
            СтрокиКИ = КонтрагентОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид,Тип",
                Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента, Перечисления.ТипыКонтактнойИнформации.Адрес));
                
            Если СтрокиКИ.Количество() = 0 Тогда
                НоваяСтрокаКИ = КонтрагентОбъект.КонтактнаяИнформация.Добавить();
                НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
                НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
                НоваяСтрокаКИ.Представление = ЮридическийАдрес;
            Иначе
                СтрокиКИ[0].Представление = ЮридическийАдрес;
            КонецЕсли;
        КонецЕсли;
        
        Если Телефоны <> "" Тогда
            СтрокиКИ = КонтрагентОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид,Тип",
                Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, Перечисления.ТипыКонтактнойИнформации.Телефон));
                
            Если СтрокиКИ.Количество() = 0 Тогда
                НоваяСтрокаКИ = КонтрагентОбъект.КонтактнаяИнформация.Добавить();
                НоваяСтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
                НоваяСтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
                НоваяСтрокаКИ.Представление = Телефоны;
            Иначе
                СтрокиКИ[0].Представление = Телефоны;
            КонецЕсли;
        КонецЕсли;
            
        КонтрагентОбъект.Записать();
        
        Если ЗначениеЗаполнено(СтрДоговор) Тогда
            СтрДоговор = СтрЗаменить(СтрДоговор, "№ ", "№");
            ЕстьНомер = СтрНайти(СтрДоговор, "№") > 0;
            
            МассивИерархии = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрДоговор, " ", Истина);
            
              
            ДатаДоговораОконч = СокрЛП(МассивТекСтроки["Колонка10"]);


            ДатаДоговора     = Неопределено;
            НомерДоговора     = Неопределено;
            Если ЕстьНомер Тогда
                Для Каждого элМассивИерархии Из МассивИерархии Цикл
                    Если ПроверитьСтроку(элМассивИерархии, "\d{2}\.\d{2}\.\d{4}") Тогда
                        ДатаДоговора = Дата(Прав(элМассивИерархии, 4) + Сред(элМассивИерархии, 4, 2) + Лев(элМассивИерархии, 2));
                    КонецЕсли;
                    Если СтрНачинаетсяС(элМассивИерархии, "№") Тогда
                        НомерДоговора = СтрЗаменить(элМассивИерархии, "№", "");
                    КонецЕсли;
                КонецЦикла;
            Иначе
                Для Каждого элМассивИерархии Из МассивИерархии Цикл
                    Если ПроверитьСтроку(элМассивИерархии, "\d{2}\.\d{2}\.\d{4}") Тогда
                        ДатаДоговора = Дата(Прав(элМассивИерархии, 4) + Сред(элМассивИерархии, 4, 2) + Лев(элМассивИерархии, 2));
                    КонецЕсли;
                    Если ПроверитьСтроку(элМассивИерархии, "\d+/\d+") Тогда
                        НомерДоговора = элМассивИерархии;
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли;
            
            ДоговорСсылка = НайтиДоговор(СтрДоговор, КонтрагентОбъект.Ссылка);
            
            Если ДоговорСсылка = Неопределено Тогда
                ДоговорОбъект = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                ДоговорОбъект.Заполнить(Неопределено);
                
                Если ЭтоПокупатель = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПокупателем;
                ИначеЕсли ЭтоПоставщик = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПоставщиком;
                КонецЕсли;
                ДоговорОбъект.Наименование = СтрДоговор;
                ДоговорОбъект.Номер = НомерДоговора;
                ДоговорОбъект.Дата = ДатаДоговора;
                ДоговорОбъект.Контрагент = КонтрагентОбъект.Ссылка;
                //ДоговорОбъект.ДатаОкончанияДействия = Дата(Прав(ДатаДоговораОконч, 4) + Сред(ДатаДоговораОконч, 4, 2) + Лев(ДатаДоговораОконч, 2));
                ДоговорОбъект.ДатаОкончанияДействия = Дата(Сред(ДатаДоговораОконч, 7, 4) + Сред(ДатаДоговораОконч, 4, 2) + Лев(ДатаДоговораОконч, 2));
                ДоговорОбъект.Записать();
            КонецЕсли;
        КонецЕсли;
                  
        ДатаЛицензии     = СокрЛП(МассивТекСтроки["Колонка12"]);
        ДатаЛицензииРег    = СокрЛП(МассивТекСтроки["Колонка11"]);
        НомерЛиц        = СокрЛП(МассивТекСтроки["Колонка26"]);
        СерияЛиц        = СокрЛП(МассивТекСтроки["Колонка34"]);
        
        Если ЗначениеЗаполнено(НомерЛиц) И ДатаЛицензии <> "0" Тогда
            ITON_ЛицензииКлиентов = РегистрыСведений.ITON_ЛицензииКлиентов.СоздатьМенеджерЗаписи();
            ITON_ЛицензииКлиентов.Период = ?(ДатаЛицензииРег <> "0", Дата(Сред(ДатаЛицензииРег, 7, 4) + Сред(ДатаЛицензииРег, 4, 2) + Лев(ДатаЛицензииРег, 2)), Дата(2000,01,01));
            ITON_ЛицензииКлиентов.Контрагент = КонтрагентОбъект.Ссылка;
            ITON_ЛицензииКлиентов.Партнер = Справочники.Партнеры.НеизвестныйПартнер;
            ITON_ЛицензииКлиентов.Прочитать();
            
            Если НЕ ITON_ЛицензииКлиентов.Выбран() Тогда
                ITON_ЛицензииКлиентов.Партнер = Справочники.Партнеры.НеизвестныйПартнер;
                ITON_ЛицензииКлиентов.Период = ?(ДатаЛицензииРег <> "0", Дата(Сред(ДатаЛицензииРег, 7, 4) + Сред(ДатаЛицензииРег, 4, 2) + Лев(ДатаЛицензииРег, 2)), Дата(2000,01,01));
                ITON_ЛицензииКлиентов.Контрагент = КонтрагентОбъект.Ссылка;    
            КонецЕсли;
            
            ITON_ЛицензииКлиентов.ДатаОкончанияЛицензии = Дата(Сред(ДатаЛицензии, 7, 4) + Сред(ДатаЛицензии, 4, 2) + Лев(ДатаЛицензии, 2));
            ITON_ЛицензииКлиентов.Номер = НомерЛиц;
            ITON_ЛицензииКлиентов.Серия = СерияЛиц;
            ITON_ЛицензииКлиентов.Записать();
        КонецЕсли;
                          //Договор А-00000035 (03.01.17)

        СтрДоговорТорг = СокрЛП(МассивТекСтроки["Колонка29"]);
        Если ЗначениеЗаполнено(СтрДоговорТорг) Тогда
                            
            ДатаДоговораОконч = СокрЛП(МассивТекСтроки["Колонка10"]);

            ДатаДоговора    = Сред(СтрДоговорТорг, 21, 8);
            ДатаДоговора = Дата("20" + Прав(ДатаДоговора, 2) + Сред(ДатаДоговора, 4, 2) + Лев(ДатаДоговора, 2));
            НомерДоговора     = Сред(СтрДоговорТорг, 9, 10);
            ДоговорСсылка = НайтиДоговор(СтрДоговорТорг, КонтрагентОбъект.Ссылка);
            
            Если ДоговорСсылка = Неопределено Тогда
                ДоговорОбъект = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                ДоговорОбъект.Заполнить(Неопределено);
                
                Если ЭтоПокупатель = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПокупателем;
                ИначеЕсли ЭтоПоставщик = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПоставщиком;
                КонецЕсли;
                ДоговорОбъект.Наименование = СтрДоговорТорг;
                ДоговорОбъект.Номер = НомерДоговора;
                ДоговорОбъект.Дата = ДатаДоговора;
                ДоговорОбъект.Контрагент = КонтрагентОбъект.Ссылка;
                ДоговорОбъект.Записать();
            КонецЕсли;
        КонецЕсли;
        
        СтрДоговорХимия = СокрЛП(МассивТекСтроки["Колонка45"]);
        ДатаДоговорХимия = СокрЛП(МассивТекСтроки["Колонка48"]);
        ДатаДоговорХимияНач = СокрЛП(МассивТекСтроки["Колонка46"]);
        ДатаДоговорХимияКон = СокрЛП(МассивТекСтроки["Колонка47"]);
        
        ДатаДоговорХимия = ?(ДатаДоговорХимия = "0", Дата(01,01,01), Дата("20" + Прав(ДатаДоговорХимия, 2) + Сред(ДатаДоговорХимия, 4, 2) + Лев(ДатаДоговорХимия, 2)));
        
        Если ЗначениеЗаполнено(СтрДоговорХимия) Тогда
            
            СтрДоговорХимия = СтрЗаменить(СтрДоговорХимия, "№", "");
            
            ДатаДоговора = ДатаДоговорХимия;

            ДоговорСсылка = НайтиДоговорПоНомеру(СтрДоговорХимия, КонтрагентОбъект.Ссылка);
            
            Если ДоговорСсылка = Неопределено Тогда
                ДоговорОбъект = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                ДоговорОбъект.Заполнить(Неопределено);
                
                Если ЭтоПокупатель = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПокупателем;
                ИначеЕсли ЭтоПоставщик = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПоставщиком;
                КонецЕсли;
                ДоговорОбъект.Наименование = "Договор №" + СтрДоговорХимия + " (" + ДатаДоговорХимия + ")";
                ДоговорОбъект.Номер = НомерДоговора;
                ДоговорОбъект.Дата = ДатаДоговора;
                ДоговорОбъект.Контрагент = КонтрагентОбъект.Ссылка;
                ДоговорОбъект.ДатаНачалаДействия     = Дата("20" + Прав(ДатаДоговорХимияНач, 2) + Сред(ДатаДоговорХимияНач, 4, 2) + Лев(ДатаДоговорХимияНач, 2));
                ДоговорОбъект.ДатаОкончанияДействия = Дата("20" + Прав(ДатаДоговорХимияКон, 2) + Сред(ДатаДоговорХимияКон, 4, 2) + Лев(ДатаДоговорХимияКон, 2));
                ДоговорОбъект.Записать();
            КонецЕсли;
        КонецЕсли;
        
        СтрДоговорПлюс = СокрЛП(МассивТекСтроки["Колонка45"]);
        ДатаДоговорПлюс = СокрЛП(МассивТекСтроки["Колонка48"]);
        ДатаДоговорПлюсНач = СокрЛП(МассивТекСтроки["Колонка46"]);
        ДатаДоговорПлюсКон = СокрЛП(МассивТекСтроки["Колонка47"]);
        
        Если ЗначениеЗаполнено(СтрДоговорПлюс) Тогда
            
            СтрДоговорПлюс = СтрЗаменить(СтрДоговорПлюс, "№", "");
            
            ДатаДоговора = ?(ДатаДоговорПлюс = "0", Дата(01,01,01), Дата("20" + Прав(ДатаДоговорПлюс, 2) + Сред(ДатаДоговорПлюс, 4, 2) + Лев(ДатаДоговорПлюс, 2)));

            ДоговорСсылка = НайтиДоговорПоНомеру(СтрДоговорПлюс, КонтрагентОбъект.Ссылка);
            
            Если ДоговорСсылка = Неопределено Тогда
                ДоговорОбъект = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                ДоговорОбъект.Заполнить(Неопределено);
                
                Если ЭтоПокупатель = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПокупателем;
                ИначеЕсли ЭтоПоставщик = "1" Тогда
                    ДоговорОбъект.ТипДоговора = Перечисления.ТипыДоговоров.СПоставщиком;
                КонецЕсли;
                ДоговорОбъект.Наименование = "Договор №" + СтрДоговорПлюс + " (" + ДатаДоговорПлюс + ")";
                ДоговорОбъект.Номер = СтрДоговорХимия;
                ДоговорОбъект.Дата = ДатаДоговора;
                ДоговорОбъект.Контрагент = КонтрагентОбъект.Ссылка;
                ДоговорОбъект.ДатаНачалаДействия     = Дата("20" + Прав(ДатаДоговорПлюсНач, 2) + Сред(ДатаДоговорПлюсНач, 4, 2) + Лев(ДатаДоговорПлюсНач, 2));
                ДоговорОбъект.ДатаОкончанияДействия = Дата("20" + Прав(ДатаДоговорПлюсКон, 2) + Сред(ДатаДоговорПлюсКон, 4, 2) + Лев(ДатаДоговорПлюсКон, 2));
                ДоговорОбъект.Записать();
            КонецЕсли;
        КонецЕсли;
        
        СчетчикЗаписей=СчетчикЗаписей+1;
        КоличествоЗагружено=КоличествоЗагружено+1;
    КонецЦикла;
        
    ЗафиксироватьТранзакцию();      
    Сообщить("Кол считано: "+Строка(СчетчикЗаписей)+", "+"Кол загружено: "+Строка(КоличествоЗагружено));
КонецПроцедуры
1 ДенисЧ
 
08.12.20
13:41
И ты думаешь, _это_ всё кто-то будет читать?
Что сам сделал, чтобы разобраться?
2 HeKrendel
 
08.12.20
13:42
Продолжайте наблюдение
3 Hmster
 
08.12.20
13:42
(0) Что это (ДокExcel.ActiveWorkbook)? А нельзя просто табличный документ прочитать? Работает быстрее и разбираться проще что там у тебя происходит.
4 d4rkmesa
 
гуру
08.12.20
13:43
(0) В журнале регистрации посмотрите на ошибки.
5 Галахад
 
гуру
08.12.20
13:45
Наверное, как обычно. Файл на клиенте, а загрузка на сервере.
6 Kassern
 
08.12.20
13:50
"Пока (НЕ ДокExcel.Sheets(НомерЛиста).Cells(НомерСтроки, КолонкаПрохождения).Value = Неопределено Или НЕ СокрЛП(ДокExcel.Sheets(НомерЛиста).Cells(НомерСтроки, КолонкаПрохождения).Value) = "" ИЛИ НомерСтроки = 7) Цикл " ммм как круто цикл то обходится, а если вдруг будет пустая строчка в таблице, все дальше проверять не нужно?. Неужели так трудно получить количество строк на листе и обходить их уже в цикле. Не использовать для каждой строчки постоянное обращение через "." можно же заранее получить значение и уже к нему обращаться... Столько лишнего кода, давненько я такого не видел.
7 mikecool
 
08.12.20
14:41
поставить точки останова на Записать(), понять, что в них остановок нет, продолжать думать