Импорт из csv в 1С

1. ilonnaa 20.09.10 14:02 Сейчас в теме
Всем доброго времени суток.
Подскажите пожалуйста как организовать импорт данных в 1с из фавйла csv.
Или направьте куда почитать.

Процедура ПрайсИзcsv()
	Перем ИмяПути,ИмяФайла;
	ИмяФайла = "1";
	ИмяПути="C:\";                                                                
	Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) = 1 Тогда
		ТекстДок = СоздатьОбъект("Текст");
	КонецЕсли;	



Дальше я что-то туплю, не могу сдвинуться с мертвой точки.
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. jmw 60 20.09.10 14:28 Сейчас в теме
Ну, если в память влезет, то ТекстДок.Открыть(ИмяПути + ИмяФайла);
А затем пройтись по строкам: Для НомСтроки = 1 По ТекстДок.КоличествоСтрок() Цикл Стр = ТекстДок.ПолучитьСтроку(НомСтроки); КонецЦикла;
А потом разобрать строку на составляющие и т.д.
3. ilonnaa 20.09.10 17:10 Сейчас в теме
Функция РазобратьСтроку(Стр)
    СтрРазб = Стр;
    Рзд        = "    ";
    Сп         = СоздатьОбъект("СписокЗначений");
    Если Лев(СтрРазб,1) = Рзд Тогда
        СтрРазб = Сред(СтрРазб, 2);    
    КонецЕсли;             
    Инд = Найти(СтрРазб, Рзд);
    Пока Инд <> 0 Цикл
        ТекСтр = Сред(СтрРазб, 1, Инд - 1);
        Сп.ДобавитьЗначение(СокрЛП(ТекСтр));
        СтрРазб = Сред(СтрРазб, Инд + 1);
        Инд = Найти(СтрРазб, Рзд);
    КонецЦикла;
    для н = 1 по сп.размерсписка() Цикл
        Сообщить(сп.получитьзначение(н));
    КонецЦикла;
    Возврат Сп;
КонецФункции

Процедура ПрайсИзcsv() 
    Перем ИмяПути,ИмяФайла;
    ИмяФайла = ""; 
    ИмяПути=""; 
    Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) = 1 Тогда 
        ТекстДок = СоздатьОбъект("Текст"); 
    КонецЕсли;
    ТекстДок.Открыть(ИмяПути + ИмяФайла); 
    НомерИмпортированнойСтроки = 0;
    Для НомСтроки = 1 По ТекстДок.КоличествоСтрок() Цикл 
        таб.новаястрока();
        Стр = ТекстДок.ПолучитьСтроку(НомСтроки);
        СЗ = РазобратьСтроку(Стр); 
            ТекСтрока = ТекстДок.ПолучитьСтроку(НомСтроки); 
            Спис = СоздатьОбъект("СписокЗначений");
            Спис = РазобратьСтроку(ТекСтрока);      
            ЛеваяСтрока="";
        //получаем данные... 
 
            Код         = СокрЛП(Спис.ПолучитьЗначение(1,ЛеваяСтрока));  //число - это номер колонки в текстовом файле 
 
            Модель     = СокрЛП(Спис.ПолучитьЗначение(2,ЛеваяСтрока));
            Наименование = СокрЛП(Спис.ПолучитьЗначение(3,ЛеваяСтрока));
            ТорговаяМарка = СокрЛП(Спис.ПолучитьЗначение(4,ЛеваяСтрока));    
            Сертификат3 = СокрЛП(Спис.ПолучитьЗначение(5,ЛеваяСтрока));    
            Кодф = СокрЛП(Спис.ПолучитьЗначение(6,ЛеваяСтрока));    
            Род = СокрЛП(Спис.ПолучитьЗначение(7,ЛеваяСтрока));    
            КолЕдиниц  = СокрЛП(Спис.ПолучитьЗначение(8,ЛеваяСтрока));    
            РозничнаяЦена = Число(СокрЛП(Спис.ПолучитьЗначение(9,ЛеваяСтрока)));    
            Куренси1 = Число(СокрЛП(Спис.ПолучитьЗначение(10,ЛеваяСтрока)));    
            Валюта = СокрЛП(Спис.ПолучитьЗначение(11,ЛеваяСтрока));    
      КонецЦикла; 
    
КонецПроцедуры
Показать


Так вот получилось, все работает.
А вот подскажите пожалуйста как мне так сделать что бы мне не только определенный csv который я сейчас делаю раскладывало, а так что бы любой csv беру и мне в таблицу его содержание выдает.
я так понимаю надо что-то типо функции разбиения столбцов и функцию заполнения таблицы по столбцам и строкам.
или универсальной такой разборки не сделать?
4. jmw 60 21.09.10 05:41 Сейчас в теме
Нужно для функции разбиения определить параметр - символ разделителя, чтобы было более универсально... и достаточно, если не хочешь попробовать другие способы (см. в синтакс-помошнике: СтрЗаменить и ИзСтрокиСРазделителями).
В процедурке ПрайсИзcsv кусок кода:
Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) = 1 Тогда
    ТекстДок = СоздатьОбъект("Текст");
КонецЕсли; 

переделать на:
Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) <> 1 Тогда
    Возврат;
КонецЕсли;
ТекстДок = СоздатьОбъект("Текст");

А то не красиво получается.
5. ilonnaa 21.09.10 09:54 Сейчас в теме
Вот что получилось, может будут ещё какие-то дополнения к коду.
Заранее спасибо
Функция РазобратьСтроку(Стр)    //Отделяет в строке столбцы
    СтрРазб = Стр;
    Рзд		= "	";
    Сп 		= СоздатьОбъект("СписокЗначений");
    Если Лев(СтрРазб,1) = Рзд Тогда
        СтрРазб = Сред(СтрРазб, 2);    
    КонецЕсли;             
    Инд = Найти(СтрРазб, Рзд);
    Пока Инд <> 0 Цикл
        ТекСтр = Сред(СтрРазб, 1, Инд - 1);
        Сп.ДобавитьЗначение(СокрЛП(ТекСтр));
        СтрРазб = Сред(СтрРазб, Инд + 1);
        Инд = Найти(СтрРазб, Рзд);
	КонецЦикла;
	Возврат Сп;
КонецФункции
	
Процедура ПрайсИзcsv()        //получает из *.csv или *.txt данные и раскладывает их
	Перем ИмяПути,ИмяФайла;
	ИмяФайла = ""; 
	ИмяПути=""; 
	Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) <> 1 Тогда 
    Возврат; 
КонецЕсли; 
ТекстДок = СоздатьОбъект("Текст");   
	ТекстДок.Открыть(ИмяПути + ИмяФайла); 
    НомерИмпортированнойСтроки = 0;
//	ТЗ=СоздатьОбъект("ТаблицаЗначений");
	Для НомСтроки = 1 По 1 Цикл     //заполняет заголовки в таблице
		Стр = ТекстДок.ПолучитьСтроку(НомСтроки);
		СЗ = РазобратьСтроку(Стр); 
    	ТекСтрока = ТекстДок.ПолучитьСтроку(НомСтроки); 
        Спис = СоздатьОбъект("СписокЗначений");
	    Спис = РазобратьСтроку(ТекСтрока);      
    	ЛеваяСтрока="";
		Для  н = 1 по спис.размерсписка() Цикл
			Тз.новаяколонка(СокрЛП(Спис.ПолучитьЗначение(н,ЛеваяСтрока)),,,СокрЛП(Спис.ПолучитьЗначение(н,ЛеваяСтрока)));
		КонецЦикла;
		
	КонецЦикла;
	Для НомСтроки = 2 По ТекстДок.КоличествоСтрок() Цикл    //pfgjkyztn nf,kbwe
		Стр = ТекстДок.ПолучитьСтроку(НомСтроки);
		СЗ = РазобратьСтроку(Стр); 
    	    ТекСтрока = ТекстДок.ПолучитьСтроку(НомСтроки); 
        	Спис = СоздатьОбъект("СписокЗначений");
	        Спис = РазобратьСтроку(ТекСтрока);      
    	    ЛеваяСтрока="";
        //получаем данные
			Код 			= СокрЛП(Спис.ПолучитьЗначение(1,ЛеваяСтрока));  //число - это номер колонки в текстовом файле 
    	    Модель 			= СокрЛП(Спис.ПолучитьЗначение(2,ЛеваяСтрока));
        	Наименование	= СокрЛП(Спис.ПолучитьЗначение(3,ЛеваяСтрока));
	        ТорговаяМарка 	= СокрЛП(Спис.ПолучитьЗначение(4,ЛеваяСтрока));    
    	    РегистрацНомер 	= СокрЛП(Спис.ПолучитьЗначение(5,ЛеваяСтрока));    
        	ВнутКод			= СокрЛП(Спис.ПолучитьЗначение(6,ЛеваяСтрока));    
	        Род 			= СокрЛП(Спис.ПолучитьЗначение(7,ЛеваяСтрока));    
    	    КолЕдиниц  		= СокрЛП(Спис.ПолучитьЗначение(8,ЛеваяСтрока));    
        	РозничнаяЦена 	= СокрЛП(Спис.ПолучитьЗначение(9,ЛеваяСтрока));    
	        Куренси1 		= СокрЛП(Спис.ПолучитьЗначение(10,ЛеваяСтрока));    
    	    Цена2 			= СокрЛП(Спис.ПолучитьЗначение(11,ЛеваяСтрока));
			Валюта2			= СокрЛП(Спис.ПолучитьЗначение(12,ЛеваяСтрока));
			ТЗ.КоличествоКолонок(Макс(ТЗ.КоличествоКолонок(),Спис.РазмерСписка()));
   			НС=ТЗ.НоваяСтрока();
    		ТЗ.Заполнить(Спис,НС,НС);
	КонецЦикла; 
	
КонецПроцедуры    
Показать
6. jmw 60 21.09.10 10:04 Сейчас в теме
А зачем вообще ЛеваяСтрока ? - Однозначно убрать!

Писать нужно красиво!
Выдели в модуле весь текст обработки и нажми Ctrl+Shift+F
7. ilonnaa 21.09.10 10:28 Сейчас в теме
Вот обновленный код, значительно уменьшился)
Функция РазобратьСтроку(Стр)    //Отделяет в строке столбцы
	СтрРазб = Стр;
	Рзд		= "	";
	Сп 		= СоздатьОбъект("СписокЗначений");
	Если Лев(СтрРазб,1) = Рзд Тогда
		СтрРазб = Сред(СтрРазб, 2);    
	КонецЕсли;             
	Инд = Найти(СтрРазб, Рзд);
	Пока Инд <> 0 Цикл
		ТекСтр = Сред(СтрРазб, 1, Инд - 1);
		Сп.ДобавитьЗначение(СокрЛП(ТекСтр));
		СтрРазб = Сред(СтрРазб, Инд + 1);
		Инд = Найти(СтрРазб, Рзд);
	КонецЦикла;
	Возврат Сп;
КонецФункции

Процедура ПрайсИзcsv()        //получает из *.csv или *.txt данные и раскладывает их
	Перем ИмяПути,ИмяФайла;
	ИмяФайла = ""; 
	ИмяПути=""; 
	Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) <> 1 Тогда 
		Возврат; 
	КонецЕсли; 
	ТекстДок = СоздатьОбъект("Текст");   
	ТекстДок.Открыть(ИмяПути + ИмяФайла); 
	НомерИмпортированнойСтроки = 0;
	//	ТЗ=СоздатьОбъект("ТаблицаЗначений");
	Для НомСтроки = 1 По 1 Цикл     //заполняет заголовки в таблице
		Стр = ТекстДок.ПолучитьСтроку(НомСтроки);
		СЗ = РазобратьСтроку(Стр); 
		ТекСтрока = ТекстДок.ПолучитьСтроку(НомСтроки); 
		Спис = СоздатьОбъект("СписокЗначений");
		Спис = РазобратьСтроку(ТекСтрока);      
		ЛеваяСтрока="";
		Для  н = 1 по спис.размерсписка() Цикл
			Тз.новаяколонка(СокрЛП(Спис.ПолучитьЗначение(н,ЛеваяСтрока)),,,СокрЛП(Спис.ПолучитьЗначение(н,ЛеваяСтрока)));
		КонецЦикла;
		
	КонецЦикла;
	Для НомСтроки = 2 По ТекстДок.КоличествоСтрок() Цикл    //заполняем таблицу значениями
		Стр = ТекстДок.ПолучитьСтроку(НомСтроки);
		СЗ = РазобратьСтроку(Стр); 
		ТекСтрока = ТекстДок.ПолучитьСтроку(НомСтроки); 
		Спис = СоздатьОбъект("СписокЗначений");
		Спис = РазобратьСтроку(ТекСтрока);      
		//получаем данные
		ТЗ.КоличествоКолонок(Макс(ТЗ.КоличествоКолонок(),Спис.РазмерСписка()));
		НС=ТЗ.НоваяСтрока();
		ТЗ.Заполнить(Спис,НС,НС);
	КонецЦикла; 
	
КонецПроцедуры   
Показать
user1619761; Pablo112; +2 Ответить
8. Kurya 13 21.12.11 13:56 Сейчас в теме
Спис = СоздатьОбъект("СписокЗначений");
Поставь перед циклом. Будет значительно быстрее. Если строк мало - то это незаметно, а вот если много...
Вообще старайся СоздатьОбъект() в циклы не ставить. Лучше один раз создай, а потом если необходимо просто очищай.

ЗЫ: В данном коде Спис = СоздатьОбъект("СписокЗначений"); вообще не нужно. У тебя и так функция РазобратьСтроку возвращает СписокЗначений
9. varelchik 21.12.11 14:48 Сейчас в теме
А зачем все так сложно?
Берем 1С++
и все
ЗагрузитьВнешнююКомпоненту("1cpp.dll");
ИмяФайла = ""; 
ИмяПути=""; 
Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv",,) <> 1 Тогда 
   Возврат; 
КонецЕсли; 
ИТЗ=СоздатьОбъект("ИндексированнаяТаблица");
ИТЗ.ИзФайла(ИмяПути + ИмяФайла);
ИТЗ.ВыбратьСТроки();
ПОка ИТЗ.ПОлучитьСтроку()=1 Цикл
.. тута работаем с полями таблицы
КонецЦикла;
Показать
user1619761; Alex1c; +2 Ответить
10. Devushka 33 25.01.12 06:19 Сейчас в теме
1С++ конечно хорошо, но надо в коде 1С
11. varelchik 10.02.12 10:08 Сейчас в теме
(10) Devushka,
А зачем скажите осложнять себе жизнь?
12. serega3333 10.02.12 11:42 Сейчас в теме
где csv там и текстовый файл можно сделать. прочитали построчно, разбили в массив - быстрее и удобнее
13. varelchik 14.02.12 12:49 Сейчас в теме
(12) serega3333,
Ага конечно.
А если файлик с количеством строк свыше 100 тыш?
Долго играться будете с ним.
14. Lyolik 8 17.06.12 13:54 Сейчас в теме
СЗ = РазобратьСтроку(Стр); - это,для чего нужно? СЗ нигде не используется. По-моему тоже лишнее.
15. ilonnaa 18.06.12 09:27 Сейчас в теме
(14) Lyolik, да это точно) потом в рабочей версии это исправлено, специально искал) но тут уже не писал, там потому что этот код оброс целым лесом всякой фигни))
16. wtlz 272 11.02.15 12:39 Сейчас в теме
Правда, для 8.2)

Текст = Новый ЧтениеТекста(ПутьКФайлуЗагрузки);
	
	ТЗ = Новый ТаблицаЗначений;
	ПерваяСтрока = Истина;
	Стр = Текст.ПрочитатьСтроку();
	Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
		мсвСтрока = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр, ";");
		Если ПерваяСтрока Тогда
			Для каждого КолонкаМСВ Из мсвСтрока Цикл
				ИмяКолонки = КолонкаМСВ;
				ИмяКолонки = СтрЗаменить(ИмяКолонки, Символ(32), "");
				ИмяКолонки = СтрЗаменить(ИмяКолонки, "(", "");
				ИмяКолонки = СтрЗаменить(ИмяКолонки, ")", "");
				
				КолонкаТЗ = ТЗ.Колонки.Добавить(ИмяКолонки);
			КонецЦикла;
			ПерваяСтрока = Ложь;
		Иначе
			строкаТЗ = ТЗ.Добавить();			
			ИндексКолонки = 0;
			Для каждого Колонка Из ТЗ.Колонки Цикл
				строкаТЗ[Колонка.Имя] = мсвСтрока[ИндексКолонки];
				ИндексКолонки = ИндексКолонки + 1;
			КонецЦикла;	
			
		КонецЕсли;
		Стр = Текст.ПрочитатьСтроку();
	КонецЦикла;
Показать
user1619761; MsDjuice; +2 Ответить
18. Chameleon1980 28.09.16 08:53 Сейчас в теме
17. DigitMan 28.09.16 03:27 Сейчас в теме
Универсальная загрузка/импорт из *.csv без 1с++
в таблицу значений с названиями колонок из файла.

тз.ВыбратьСтроку() можно удалить либо закомментировать (добавил для проверки результатов импорта).

Перем сп;

Функция РазобратьСтроку(Стр)
	Стр = СтрЗаменить(Стр,";""",";");
	Стр = СтрЗаменить(Стр,""";",";");
	Стр = """"+СтрЗаменить(Стр,";",""",""");
	сп.УдалитьВсе();
	сп.ИзСтрокиСРазделителями(Стр);
	Возврат Сп; 
КонецФункции 

Процедура Сформировать() 
	Перем ИмяПути,ИмяФайла; 
	ИмяФайла = ""; 
	ИмяПути=""; 
	сп = СоздатьОбъект("СписокЗначений");
	тз = СоздатьОбъект("ТаблицаЗначений");
	
	Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv|*.csv",,) <> 1 Тогда 
		Возврат; 
	КонецЕсли; 
	Т = СоздатьОбъект("Текст");
	Т.Открыть(ИмяПути + ИмяФайла);
	
	Для К = 1 По Т.КоличествоСтрок() Цикл
		Если К > Т.КоличествоСтрок() Тогда Прервать; КонецЕсли;
		Стр = Т.ПолучитьСтроку(К);
		Если ПустоеЗначение(Стр) = 1 Тогда Продолжить; КонецЕсли;
		сп = РазобратьСтроку(Стр);
		Если К = 1 Тогда
			//Создадим колонки
			Для М=1 По сп.РазмерСписка() Цикл
				тз.НоваяКолонка(сп.ПолучитьЗначение(М));
			КонецЦикла;
		Иначе
			//Заполним таблицу
			тз.НоваяСтрока();
			Для М=1 По тз.КоличествоКолонок() Цикл
				тз.УстановитьЗначение(тз.НомерСтроки,М,сп.ПолучитьЗначение(М));
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
	
	тз.ВыбратьСтроку();
	//ДАЛЕЕ ОБРАБАТЫВАЕМ ТАБЛИЦУ ПО СВОЕМУ УСМОРТЕНИЮ
	
КонецПроцедуры
Показать
19. evn-zorin 32 28.04.18 07:55 Сейчас в теме
(17)
Перем ИмяПути,ИмяФайла;
ИмяФайла = "";
ИмяПути="";
сп = СоздатьОбъект("СписокЗначений");
тз = СоздатьОбъект("ТаблицаЗначений");

Если ФС.ВыбратьФайл(0,ИмяФайла, ИмяПути, "Открыть файл","*.csv|*.csv",,) <> 1 Тогда
Возврат;
КонецЕсли;
Т = СоздатьОбъект("Текст");
Т.Открыть(ИмяПути + ИмяФайла);

Для К = 1 По Т.КоличествоСтрок() Цикл
Если К > Т.КоличествоСтрок() Тогда Прервать; КонецЕсли;
Стр = Т.ПолучитьСтроку(К);
Если ПустоеЗначение(Стр) = 1 Тогда Продолжить; КонецЕсли;
сп = РазобратьСтроку(Стр);
Если К = 1 Тогда
//Создадим колонки
Для М=1 По сп.РазмерСписка() Цикл
тз.НоваяКолонка(сп.ПолучитьЗначение(М));
КонецЦикла;
Иначе
//Заполним таблицу
тз.НоваяСтрока();
Для М=1 По тз.КоличествоКолонок() Цикл
тз.УстановитьЗначение(тз.НомерСтроки,М,сп.ПолучитьЗначение(М));
КонецЦикла;
КонецЕсли;
КонецЦикла;

тз.ВыбратьСтроку();
//ДАЛЕЕ ОБРАБАТЫВАЕМ ТАБЛИЦУ ПО СВОЕМУ УСМОРТЕНИЮ
Показать

код совсем не рабочий, это для какой конфигурации?
21. jONES1979 22.12.18 09:24 Сейчас в теме
(19) это походу семёрочный был код. Я тоже сейчас накололся.
20. Slypower 2 28.04.18 09:40 Сейчас в теме
Совсем не рабочий - это как вы решили? Если не умеет использовать, то дело не в коде.
Используйте универсальную загрузку: из этой статьи
22. пользователь 23.06.22 15:51
Сообщение было скрыто модератором.
...
23. пользователь 24.06.22 16:18
Сообщение было скрыто модератором.
...
24. DarKerAD 18.05.23 21:55 Сейчас в теме
Весь импорт через кнопку, с выбором файла
&НаСервере
Процедура ИмпортНаСервере(Результат,ДопПараметр) Экспорт
	Если (Результат = Неопределено) Тогда
	Иначе	
	ТекстДок=Новый ТекстовыйДокумент;
	ТекстДок.Прочитать(Результат[0]);
	Для Строка = 2 по ТекстДок.КоличествоСтрок() цикл
		Текстрок=ТекстДок.ПолучитьСтроку(Строка);
		СтрРазд = СтрРазделить(ТекСтрок, ";", Ложь);
		Тип = Справочники.[НазваниеСправочника].СоздатьЭлемент();
		Тип.Код = СтрРазд[0];
		Тип.Наименование = СтрРазд[1];
		Тип.Записать();
	КонецЦикла;
	Сообщить("Успешный импорт");
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Импорт(Команда)
	ОкноВыбора = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ОкноВыбора.Показать(Новый ОписаниеОповещения("ИмпортНаСервере",ЭтотОбъект));
КонецПроцедуры
Показать
25. CheBurator 3119 22.05.23 13:57 Сейчас в теме
(24) даст ист фантастиш!
на клюшках работать не будет, ветка - клюшечная
26. user1947410 21.06.23 16:57 Сейчас в теме
Вариант кода для импорта данных из csv файла. Также через кнопку
&НаКлиенте
Процедура ИмпортДанных(Команда)
  Диалог           = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
  Диалог.Заголовок = "Выберите файл csv";
  Диалог.Фильтр    = "Документ csv | *.csv";
  Если Диалог.Выбрать() Тогда
    ПрочитанныйФайл = Новый ТекстовыйДокумент;
    ПрочитанныйФайл.Прочитать(Диалог.ПолноеИмяФайла);
    ИмпортДанныхНаСервере(ПрочитанныйФайл);
  Иначе
    ПоказатьЗначение(, "Файл не выбран");
  КонецЕсли
КонецПроцедуры

&НаСервере
Процедура ИмпортДанныхНаСервере(ПрочитанныйФайл)
  Разделитель = ";";
  Для НомерСтроки = 1 по ПрочитанныйФайл.КоличествоСтрок() Цикл
    Строка               = ПрочитанныйФайл.ПолучитьСтроку(НомерСтроки);
    МассКол              = СтрРазделить(Строка,Разделитель);
    Элемент              = Справочники.Сотрудники.СоздатьЭлемент();
    Элемент.Наименование = МассКол[0];
    Элемент.Записать();
  КонецЦикла;
  Сообщить("импорт завершен");
КонецПроцедуры
Показать
27. SlavaKron 21.06.23 21:33 Сейчас в теме
(26) Это всё замечательно, но что вы будете делать, если элемент содержит перенос строки или знак разделителя?
28. user1947410 23.06.23 13:45 Сейчас в теме
если сущности в erd диаграмме:
Объекты, Клиенты, Договора, Сотрудники, Выезд, Акты, Подключение к сигнализации, Отчисления, Город, Вид клиента и др

то диаграмма прецедентов:
Заключить договор охраны, Оформить подключение к сигнализации, Оформить факт срабатывания сигнализации, Оформить акт осмотра объекта, Отправить отчисления, Сформировать отчет.
Актеры: Сотрудники и клиенты
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день