Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
1

Обработка заполнения справочника контрагентами из эксель

31.03.2016, 12:12. Просмотров 1656. Ответов 18
Метки нет (Все метки)

Добрый день. Пишу обработку по УТ 10,3. Задача такова-из имеющегося xml документа перенести контрагентов-покупателей в базу ут.
В обработке прописал процесс считывания данных из экселя... Затем помещаю данные в ТабЗнач и выношу на форму, чтоб проверить, всё ли считалось... Как сделать процедуру по считыванию данных из ТабЗнач и обработку этих данных? Начал писать функцию по созданию нового элемента справочника, но необходимо ссылаться на табзнач для получения значений...

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Процедура ПрочитатьНажатие(Элемент)
        
    //подключаемся к эксел
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ИмяФайла);
        Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        
    Попытка 
        //Открываем необходимый лист
        Excel.Sheets(1).Select();  // лист 1, по умолчанию  
    Исключение
        //Закрываем Excel
        Excel.ActiveWorkbook.Close();   
        Excel = 0;
        Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
        ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;   
    
    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 27);
    Иначе
        ФайлСтрок   = Excel.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;   
    Конецесли;
    
     //создание колонок табличного документа  
    ТабЗнач = Новый ТаблицаЗначений;
    ТабЗнач.Колонки.Добавить("Завод"); 
    ТабЗнач.Колонки.Добавить("Имя"); 
    ТабЗнач.Колонки.Добавить("НазваниеФирмы");
    ТабЗнач.Колонки.Добавить("КППОбъекта");
    ТабЗнач.Колонки.Добавить("КодРегиона"); 
    ТабЗнач.Колонки.Добавить("Регион"); 
    ТабЗнач.Колонки.Добавить("ПИндекс");
    ТабЗнач.Колонки.Добавить("Город");
    ТабЗнач.Колонки.Добавить("Улица");
    ТабЗнач.Колонки.Добавить("НомерДома");
    ТабЗнач.Колонки.Добавить("Дополнение");
    ТабЗнач.Колонки.Добавить("Телефон");
    
    //считываем первую строку и генерируем колонки
    Для НС = 2 По ФайлСтрок Цикл 
        НоваяСтрока = ТабЗнач.Добавить();
        НоваяСтрока.Завод = Excel.Cells(НС, 1).Value;
        НоваяСтрока.Имя = (Excel.Cells(НС, 2).Value); //проверка на наличие контрагента. Это грузополучатели    
        НоваяСтрока.НазваниеФирмы = (Excel.Cells(НС, 4).Value); //это контрагенты - плательщики
        НоваяСтрока.КППОбъекта = Excel.Cells(НС, 9).Value;
        НоваяСтрока.КодРегиона = Excel.Cells(НС, 12).Value;
        НоваяСтрока.Регион = Excel.Cells(НС, 13).Value;
        НоваяСтрока.ПИндекс = Excel.Cells(НС, 14).Value;
        НоваяСтрока.Город = Excel.Cells(НС, 15).Value;
        НоваяСтрока.Улица = Excel.Cells(НС, 16).Value;
        НоваяСтрока.НомерДома = Excel.Cells(НС, 17).Value;
        НоваяСтрока.Дополнение = Excel.Cells(НС, 18).Value; //проверять на наличие
        НоваяСтрока.Телефон = Excel.Cells(НС, 19).Value;
    КонецЦикла;
          
     // Закрыть COM соединение для экономии памяти
     Excel.Application.Quit();
     
     //поместить считанные данные в форму обработки
     ЭлементыФормы.Таблица.Значение = ТабЗнач;
     ЭлементыФормы.Таблица.СоздатьКолонки();
     
     
     
 КонецПроцедуры
PS. Стандартная обработка не подходит, уже выяснил опытным путём...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2016, 12:12
Ответы с готовыми решениями:

Запрос заполнения наименования справочника
Здравствуйте. Есть справочник в собственной конфигурации, структура которого во вложении....

Отбор данных в форме выбора справочника для заполнения реквизита ТЧ документа
Здравствуйте! Не могу решить такую задачу. Платформа 8.2. Есть справочник ВидРаботыПоИсправлению...

Обработка данных в Эксель
Доброго времени суток всем! На поиск потратил много времени, не получилось найти ничего подобного...

Обработка Try.Except при загрузке из эксель файла
Загружаю данные из файла эксель в стринггрид.Код: function...

обработка справочника
Имеется информационно-поисковый справочник деталей. Нужно чтобы в каждом пункте обработки...

18
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 12:26 2
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
Как сделать процедуру по считыванию данных из ТабЗнач
Судя по написанному: на форме есть табличная часть "Таблица"
1C
1
2
3
Для Каждого СтрокаТаблицы Из Таблица Цикл
      // что то делаешь с результатом
КонецЦикла;
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
обработку этих данных
я не знаю как ты из собрался обрабатывать.
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:29  [ТС] 3
Nenaviju1C, Ну вообще мне необходимо сделать такую фигню... Происходит считывание данных из таблицы, и затем этими данными справочник Контрагенты заполняется методом создания новых контрагентов...)) как то вот так вот
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 12:36 4
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Для Каждого СтрокаЗаполнения Из Таблица Цикл
 
      НовыйКонтрагент = Справочники.Контрагенты.СоздаьтЭлемент();
      ЗаполнитьЗначенияСвойств(НовыйКонтрагент,СтрокаЗаполнения); //если идентификаторы совпадают
 
      НовыйКонтрагент.МойРеквизит = СтрокаЗаполнения.РеквизитВТаблице;
      // и т.д.
 
     Попытка
          НовыйКонтрагент.Записать();
     Исключение
          мСообщение = Новый СообщениеПользователю();
          мСообщение.Текст = СтрокаЗаполнения.НаименованиеКонтрагента + Символы.Пс + ОписаниеОшибки();
    КонецПопытки;
КонецЦикла;
1
31.03.2016, 12:36
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:37  [ТС] 5
Nenaviju1C, Смотри, я создал функцию
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Функция СоздатьНовогоКонтрагента (СтруктураСправочника)
     
     Для Каждого СтрокаТаблицы из Таблица  Цикл
      НовыйОбъект = Справочники.Контрагенты.СоздатьЭлемент();
      НовыйОбъект.Наименование = Таблица.НоваяСтрока.НазваниеФирмы;
      НовыйОбъект.НаименованиеПолное = Таблица.НоваяСтрока.НазваниеФирмы;
      НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
      НовыйОбъект.КПП = Таблица.НоваяСтрока.КППОбъекта;
      НовыйОбъект.Покупатель = Истина;
        Попытка
           НовыйОбъект.Записать();
        Исключение
        КонецПопытки; 
      НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
      НаборЗаписей.Отбор.Объект.установить(НовыйОбъект.ссылка);
      НаборЗаписей.Отбор.Тип.установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
      НаборЗаписей.Прочитать();
      Запись = НаборЗаписей.Добавить();
      Запись.Объект = (НовыйОбъект.ссылка);
      Запись.Тип = (Перечисления.ТипыКонтактнойИнформации.Адрес);
      Запись.Вид = (Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента);
      Попытка 
           НаборЗаписей.Записать();
        Исключение
        КонецПопытки;
      НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
      НовыйДоговор.Организация = Справочники.Организации.НайтиПоКоду();
      НовыйДоговор.Владелец = НовыйОбъект.ссылка;
      //НовыйДоговор.Наименование = "123" ;
      НовыйДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
      НовыйДоговор.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду();
      НовыйДоговор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
        Попытка
           НовыйДоговор.Записать();
         Исключение
         КонецПопытки;
    КонецЦикла;
      
     
 КонецФункции
как мне теперь заставить её работать? в конце процедуры, написанной в первом посте что именно прописать?
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 12:44 6
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
Для Каждого СтрокаТаблицы из Таблица *Цикл
* * * НовыйОбъект = Справочники.Контрагенты.СоздатьЭлемент();
* * * НовыйОбъект.Наименование = Таблица.НоваяСтрока.НазваниеФирмы;
* * * НовыйОбъект.НаименованиеПолное = Таблица.НоваяСтрока.НазваниеФирмы;
* * * НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
* * * НовыйОбъект.КПП = Таблица.НоваяСтрока.КППОбъекта;
* * * НовыйОбъект.Покупатель = Истина;
Ты работаешь с коллекцией!
Обращение к строка коллекции либо по индексу : Таблица[ИндексСтроки][ИдентификаторКолонки]
Либо перебором строк, в твоем случае так : СтрокаТаблицы.НазваниеФирмы , т.е. СтрокаТаблицы[ИдентификаторКолоник]

"Таблица.НоваяСтрока.НазваниеФирмы" - что такое "НоваяСтрока"?
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:46  [ТС] 7
Nenaviju1C, ну это идёт заполнение значения из таблицы, по моему мнению))) Я новичок в 1с, знаний как таковых нет. вот и решаю задачи методом проб, ошибок и гугла))
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 12:49 8
Вот эти строчки
1C
1
2
ЭлементыФормы.Таблица.Значение = ТабЗнач;
ЭлементыФормы.Таблица.СоздатьКолонки();
Создают колонки и заполняют таблицу "Таблица" данными (и колонками) "ТабЗнач"
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:51  [ТС] 9
Nenaviju1C, Да. это заполняется таблица на форме обработки. а теперь мне нужно эти значения из таблицы перенести в Контрагенты
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 12:54 10
Вот так и переносишь:
1C
1
2
3
Для Каждого СтрокаТаблицы из Таблица Цикл
      // 
КонецЦикла;
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:57  [ТС] 11
Nenaviju1C, но это же надо делать в отдельной процедуре? или прям в Процедура ПрочитатьНажатие(Элемент) перед концом процедуры дописывать?
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 13:00 12
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Функция СоздатьНовогоКонтрагента (СтруктураСправочника)
    
    Для Каждого СтрокаТаблицы из Таблица Цикл
        
        НовыйОбъект = Справочники.Контрагенты.СоздатьЭлемент();
        НовыйОбъект.Наименование       = СтрокаТаблицы.НазваниеФирмы;
        НовыйОбъект.НаименованиеПолное = СтрокаТаблицы.НазваниеФирмы;
        НовыйОбъект.ЮрФизЛицо          = Перечисления.ЮрФизЛицо.ЮрЛицо;
        НовыйОбъект.КПП                = СтрокаТаблицы.КППОбъекта;
        НовыйОбъект.Покупатель         = Истина;
        Попытка
            НовыйОбъект.Записать();
        Исключение
            Продолжить;
            // ссылки по этой записи не будет - дальше обрабатывать смысла нет
        КонецПопытки; 
        
        НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Объект.Установить(НовыйОбъект.ссылка);
        НаборЗаписей.Отбор.Тип.установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
        НаборЗаписей.Прочитать();
        Запись = НаборЗаписей.Добавить();
        Запись.Объект = (НовыйОбъект.ссылка);
        Запись.Тип = (Перечисления.ТипыКонтактнойИнформации.Адрес);
        Запись.Вид = (Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента);
        Попытка 
            НаборЗаписей.Записать();
        Исключение
        КонецПопытки;
        
        НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
        /* ?? по какому коду ищешь?
        НовыйДоговор.Организация = Справочники.Организации.НайтиПоКоду();
        
        Синтаксис:
            НайтиПоКоду(<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>) 
            Параметры:
                <Код> (обязательный)
                    Тип: Число; Строка. 
        */
        
        НовыйДоговор.Владелец = НовыйОбъект.ссылка;
        НовыйДоговор.Наименование = "123" ;
        НовыйДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
        НовыйДоговор.ВалютаВзаиморасчетов  = Справочники.Валюты.НайтиПоКоду();
        НовыйДоговор.ВидДоговора           = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
        Попытка
            НовыйДоговор.Записать();
        Исключение
        КонецПопытки;
    КонецЦикла;
    
КонецФункции
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 13:26  [ТС] 13
Nenaviju1C, как я понял, функция должна возвращать какое-то значение... а у меня функция ничего не возвращает.. я думал переименовать её в процедуру, и делать вызов её в конце предыдущей процедуры
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 13:43 14
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
как я понял, функция должна возвращать какое-то значение
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Функция МояФункция()
 
        // что то делаем
 
        Возврат ЧеготоВозвращаем;
 
КонецФункции
 
Процедура МояПроцедура()
 
        // что то делаем
 
КонецПроцедуры
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 13:44  [ТС] 15
Nenaviju1C, так. я функцию переделал в процедуру, потому как возвращать то мне нечего по факту.
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 13:57 16
А кто тебе мешает процедурой вернуть значение?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Процедура МояПроцедура()
    
    Параметры_1 = Новый Структура("Имя,Фамилия,Отчество", "Имя", "Фамилия", "Отчество");
    
    МояПроцедура_2(Параметры_1);
    
    мСообщение = Новый СообщениеПользователю();
    мСообщение.Текст = Параметры_1.Фамилия + " " + Лев(Параметры_1.Имя, 1) + " год рождения: " + Формат(Параметры_1.ГодРождения, "ДФ=гггг");
    мСообщение.Сообщить();
    
КонецПроцедуры      
 
Процедура МояПроцедура_2(МоиПараметры)
    
    МоиПараметры.Вставить("ГодРождения", ТекущаяДата());    
    
КонецПроцедуры
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 14:05  [ТС] 17
Nenaviju1C, а куда и зачем мне возвращать значение? я же в этой функции создаю и заполняю новые элементы справочника...
0
Nenaviju1C
43 / 43 / 6
Регистрация: 17.03.2016
Сообщений: 117
31.03.2016, 14:06 18
Я тебе показал пример что это возможно.
Конкретно в твоем случае этого не надо.
1
DEaD_EGOR
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 14:24  [ТС] 19
Nenaviju1C, Всё, разобрался)))
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
КонецПроцедуры
 
Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
    
    Если ДиалогВыбора.Выбрать() Тогда
        ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;
    
КонецПроцедуры
 
Процедура ПрочитатьНажатие(Элемент)
        
    //подключаемся к эксел
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ИмяФайла);
        Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        
    Попытка 
        //Открываем необходимый лист
        Excel.Sheets(1).Select();  // лист 1, по умолчанию  
    Исключение
        //Закрываем Excel
        Excel.ActiveWorkbook.Close();   
        Excel = 0;
        Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
        ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;   
    
    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 27);
    Иначе
        ФайлСтрок   = Excel.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;   
    Конецесли;
    
     //создание колонок табличного документа  
    ТабЗнач = Новый ТаблицаЗначений;
    ТабЗнач.Колонки.Добавить("Завод"); 
    ТабЗнач.Колонки.Добавить("Имя"); 
    ТабЗнач.Колонки.Добавить("НазваниеФирмы");
    ТабЗнач.Колонки.Добавить("КППОбъекта");
    ТабЗнач.Колонки.Добавить("КодРегиона"); 
    ТабЗнач.Колонки.Добавить("Регион");     
    ТабЗнач.Колонки.Добавить("ПИндекс");
    ТабЗнач.Колонки.Добавить("Город");
    ТабЗнач.Колонки.Добавить("Улица");
    ТабЗнач.Колонки.Добавить("НомерДома");
    ТабЗнач.Колонки.Добавить("Дополнение");
    ТабЗнач.Колонки.Добавить("Телефон");
    
    //считываем первую строку и генерируем колонки
    Для НС = 2 По ФайлСтрок Цикл 
        НоваяСтрока = ТабЗнач.Добавить();
        НоваяСтрока.Завод = Excel.Cells(НС, 1).Value;
        НоваяСтрока.Имя = (Excel.Cells(НС, 2).Value); //проверка на наличие контрагента. Это грузополучатели    
        НоваяСтрока.НазваниеФирмы = (Excel.Cells(НС, 4).Value); //это контрагенты - плательщики
        НоваяСтрока.КППОбъекта = Excel.Cells(НС, 9).Value;
        НоваяСтрока.КодРегиона = Excel.Cells(НС, 12).Value;
        НоваяСтрока.Регион = Excel.Cells(НС, 13).Value;
        НоваяСтрока.ПИндекс = Excel.Cells(НС, 14).Value;
        НоваяСтрока.Город = Excel.Cells(НС, 15).Value;
        НоваяСтрока.Улица = Excel.Cells(НС, 16).Value;
        НоваяСтрока.НомерДома = Excel.Cells(НС, 17).Value;
        НоваяСтрока.Дополнение = Excel.Cells(НС, 18).Value; //проверять на наличие
        НоваяСтрока.Телефон = Excel.Cells(НС, 19).Value;
    КонецЦикла;
          
     // Закрыть COM соединение для экономии памяти
     Excel.Application.Quit();
     
     //поместить считанные данные в форму обработки
     ЭлементыФормы.Таблица.Значение = ТабЗнач;
     ЭлементыФормы.Таблица.СоздатьКолонки();
     
     мФорма = ПолучитьФорму (Справочники.Контрагенты.ПолучитьФормуНовогоЭлемента());
     СозданиеКонтрагента(мФорма);
     
 КонецПроцедуры
 
 
 Процедура СозданиеКонтрагента (мФорма)
     
     Для Каждого СтрокаТаблицы из Таблица  Цикл
      НовыйОбъект = Справочники.Контрагенты.СоздатьЭлемент();
      НовыйОбъект.Наименование = СтрокаТаблицы.НазваниеФирмы;
      НовыйОбъект.НаименованиеПолное = СтрокаТаблицы.НазваниеФирмы;
      НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
      НовыйОбъект.КПП = СтрокаТаблицы.КППОбъекта;
      НовыйОбъект.Покупатель = Истина;
        Попытка
           НовыйОбъект.Записать();
       Исключение
           Продолжить;
        КонецПопытки; 
        
      
    КонецЦикла;
      
     
 КонецПроцедуры
Справочник заполнился, но только у каждого контрагента 1я страница.. теперь надо думать. как остальные запонять. Хотя по факту нужно допилить заполнение адресов с проверкой по классификатору
0
31.03.2016, 14:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2016, 14:24

Обработка справочника в 1С 8,1
День добрый! Подскажите нужно выполнить такую задачу? 1. Создать объект метаданных 1С:...

Обработка справочника
Я новичок в 1С. Пока курю мануалы, но сейчас вот столкнулся с такой проблемой. Сам решить не смог,...

Групповая обработка справочника
Доброе время суток. Народ нужна консультация - помощь. Формирую Список скидок по всем клиентам из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru