С Новым годом! Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый день. Пишу обработку по УТ 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2016, 12:12
Ответы с готовыми решениями:

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

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

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

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

18
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 12:26 2
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
Как сделать процедуру по считыванию данных из ТабЗнач
Судя по написанному: на форме есть табличная часть "Таблица"
1C
1
2
3
Для Каждого СтрокаТаблицы Из Таблица Цикл
      // что то делаешь с результатом
КонецЦикла;
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
обработку этих данных
я не знаю как ты из собрался обрабатывать.
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:29  [ТС] 3
Nenaviju1C, Ну вообще мне необходимо сделать такую фигню... Происходит считывание данных из таблицы, и затем этими данными справочник Контрагенты заполняется методом создания новых контрагентов...)) как то вот так вот
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 12:36 4
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Для Каждого СтрокаЗаполнения Из Таблица Цикл
 
      НовыйКонтрагент = Справочники.Контрагенты.СоздаьтЭлемент();
      ЗаполнитьЗначенияСвойств(НовыйКонтрагент,СтрокаЗаполнения); //если идентификаторы совпадают
 
      НовыйКонтрагент.МойРеквизит = СтрокаЗаполнения.РеквизитВТаблице;
      // и т.д.
 
     Попытка
          НовыйКонтрагент.Записать();
     Исключение
          мСообщение = Новый СообщениеПользователю();
          мСообщение.Текст = СтрокаЗаполнения.НаименованиеКонтрагента + Символы.Пс + ОписаниеОшибки();
    КонецПопытки;
КонецЦикла;
1
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
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 12:44 6
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
Для Каждого СтрокаТаблицы из Таблица *Цикл
* * * НовыйОбъект = Справочники.Контрагенты.СоздатьЭлемент();
* * * НовыйОбъект.Наименование = Таблица.НоваяСтрока.НазваниеФирмы;
* * * НовыйОбъект.НаименованиеПолное = Таблица.НоваяСтрока.НазваниеФирмы;
* * * НовыйОбъект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
* * * НовыйОбъект.КПП = Таблица.НоваяСтрока.КППОбъекта;
* * * НовыйОбъект.Покупатель = Истина;
Ты работаешь с коллекцией!
Обращение к строка коллекции либо по индексу : Таблица[ИндексСтроки][ИдентификаторКолонки]
Либо перебором строк, в твоем случае так : СтрокаТаблицы.НазваниеФирмы , т.е. СтрокаТаблицы[ИдентификаторКолоник]

"Таблица.НоваяСтрока.НазваниеФирмы" - что такое "НоваяСтрока"?
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:46  [ТС] 7
Nenaviju1C, ну это идёт заполнение значения из таблицы, по моему мнению))) Я новичок в 1с, знаний как таковых нет. вот и решаю задачи методом проб, ошибок и гугла))
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 12:49 8
Вот эти строчки
1C
1
2
ЭлементыФормы.Таблица.Значение = ТабЗнач;
ЭлементыФормы.Таблица.СоздатьКолонки();
Создают колонки и заполняют таблицу "Таблица" данными (и колонками) "ТабЗнач"
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:51  [ТС] 9
Nenaviju1C, Да. это заполняется таблица на форме обработки. а теперь мне нужно эти значения из таблицы перенести в Контрагенты
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 12:54 10
Вот так и переносишь:
1C
1
2
3
Для Каждого СтрокаТаблицы из Таблица Цикл
      // 
КонецЦикла;
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 12:57  [ТС] 11
Nenaviju1C, но это же надо делать в отдельной процедуре? или прям в Процедура ПрочитатьНажатие(Элемент) перед концом процедуры дописывать?
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
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
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 13:26  [ТС] 13
Nenaviju1C, как я понял, функция должна возвращать какое-то значение... а у меня функция ничего не возвращает.. я думал переименовать её в процедуру, и делать вызов её в конце предыдущей процедуры
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 13:43 14
Цитата Сообщение от DEaD_EGOR Посмотреть сообщение
как я понял, функция должна возвращать какое-то значение
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Функция МояФункция()
 
        // что то делаем
 
        Возврат ЧеготоВозвращаем;
 
КонецФункции
 
Процедура МояПроцедура()
 
        // что то делаем
 
КонецПроцедуры
1
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 13:44  [ТС] 15
Nenaviju1C, так. я функцию переделал в процедуру, потому как возвращать то мне нечего по факту.
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
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
0 / 0 / 0
Регистрация: 15.03.2016
Сообщений: 103
31.03.2016, 14:05  [ТС] 17
Nenaviju1C, а куда и зачем мне возвращать значение? я же в этой функции создаю и заполняю новые элементы справочника...
0
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
31.03.2016, 14:06 18
Я тебе показал пример что это возможно.
Конкретно в твоем случае этого не надо.
1
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
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2016, 14:24
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru