Публикации

БСП
Разработки

Найдено результатов: 51


Разложить строку в массив

4 freelance_1C 9 1
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
	МассивСтрок = Новый Массив();
	Если Разделитель = " " Тогда
		Стр = СокрЛП(Стр);
		Пока 1 = 1 Цикл
			Поз = Найти(Стр, Разделитель);
			Если Поз = 0 Тогда
				МассивСтрок.Добавить(Стр);
				Возврат МассивСтрок;
			КонецЕсли;
			МассивСтрок.Добавить(Лев(Стр, Поз - 1));
			Стр = СокрЛ(Сред(Стр, Поз));
		КонецЦикла;
	Иначе
		ДлинаРазделителя = СтрДлина(Разделитель);
		Пока 1 = 1 Цикл
			Поз = Найти(Стр,Разделитель);
			Если Поз = 0 Тогда
				МассивСтрок.Добавить(Стр);
				Возврат МассивСтрок;
			КонецЕсли;
			МассивСтрок.Добавить(Лев(Стр, Поз - 1));
			Стр = Сред(Стр, Поз + ДлинаРазделителя);
		КонецЦикла;
	КонецЕсли;	
КонецФункции

Дополнить массив МассивПриемник значениями из массива МассивИсточник

Автор: HostHost

FastCode 37 5
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник, Истина);

МассивВТаблицуЗначений

Преобразует массив в ТаблицуЗначений
1 prog1c 38 1 5
Функция МассивВТаблицуЗначений(ИсходныйМассив, Знач ИмяКолонки="") Экспорт
	
	Если ПустаяСтрока(ИмяКолонки) Тогда
		ИмяКолонки = "Колонка1";
	КонецЕсли;
	
	ИмяКолонки = СтрЗаменить(ИмяКолонки, " ", "_");
	
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить(ИмяКолонки);
	
	Если ЗначениеЗаполнено(ИсходныйМассив) Тогда
		Для Сч = 1 По ИсходныйМассив.Количество() Цикл
			Результат.Добавить();
		КонецЦикла;
		Результат.ЗагрузитьКолонку(ИсходныйМассив, ИмяКолонки);
	КонецЕсли;
	
	Возврат Результат;	

КонецФункции // МассивВТаблицуЗначений()

Значение в массиве

Автор: HostHost

FastCode 37 5
ФизЛица = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ФизЛицо);

Преобразовать таблицу значений в массив

Автор: HostHost

FastCode 37 5
мсДанных = Новый Массив;

Для Каждого СтрокаТЗ Из тзДанных Цикл   

    стСтрокаТаблицы = Новый Структура;

    Для Каждого ИмяКолонки Из тзДанных.Колонки Цикл

        стСтрокаТаблицы.Вставить(ИмяКолонки.Имя, СтрокаТЗ[ИмяКолонки.Имя]);

    КонецЦикла;   

    мсДанных.Добавить(стСтрокаТаблицы);   

КонецЦикла;

ТаблицаЗначенийВМассив

Преобразует таблицу значений в массив.
//	Преобразует таблицу значений в массив.
//	Может использоваться для передачи на клиента данных, полученных
//	на сервере в виде таблицы значений в том случае, если таблица
//	значений содержит только такие значения, которые могут  быть переданы на клиента
//
//	Полученный массив содержит структуры, каждая из которых повторяет
//	структуру колонок таблицы значений.
//
//	Не рекомендуется использовать для преобразования таблиц значений
//	с большим количеством строк.
//
//	Параметры: ТаблицаЗначений
//	Возвращаемое значение: Массив
//
Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт
	
	Массив = Новый Массив();
	СтруктураСтрокой = "";
	НужнаЗапятая = Ложь;
	Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
		Если НужнаЗапятая Тогда
			СтруктураСтрокой = СтруктураСтрокой + ",";
		КонецЕсли;
		СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
		НужнаЗапятая = Истина;
	КонецЦикла;
	Для Каждого Строка Из ТаблицаЗначений Цикл
		НоваяСтрока = Новый Структура(СтруктураСтрокой);
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
		Массив.Добавить(НоваяСтрока);
	КонецЦикла;
	Возврат Массив;

КонецФункции

МассивБезДублей

Убирает дубли из массива значений
4 prog1c 38 1 5
Функция МассивБезДублей(ИсходныйМассив) Экспорт

	Результат = Новый Массив;
	
	Если ЗначениеЗаполнено(ИсходныйМассив) Тогда
		ВремТаб = Новый ТаблицаЗначений;
		ВремТаб.Колонки.Добавить("Данные");
		Для Сч = 1 По ИсходныйМассив.Количество() Цикл
			ВремТаб.Добавить();
		КонецЦикла;
		ВремТаб.ЗагрузитьКолонку(ИсходныйМассив, 0);
		ВремТаб.Свернуть(ВремТаб.Колонки[0].Имя);
		Результат = ВремТаб.ВыгрузитьКолонку(0);
	КонецЕсли;
	
	Возврат Результат;	

КонецФункции // МассивБезДублей()

Преобразовать массив структур в ТаблицуЗначений

Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные) Экспорт
    
    тзДанные = Новый ТаблицаЗначений;
    Для Каждого ЭлементМассива Из мсДанные Цикл
        Если тзДанные.Колонки.Количество() = 0 Тогда
            Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
				МассивДопустимыеТипы = Новый Массив;
				ТипКолонки = ТипЗнч(ЗначениеСтруктуры.Значение); 
    			МассивДопустимыеТипы.Добавить(ТипКолонки);                     
    			Описание_Типов = Новый ОписаниеТипов(МассивДопустимыеТипы);
				тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ,Описание_Типов);
            КонецЦикла;
        КонецЕсли;
        НоваяСтрока = тзДанные.Добавить();
        Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
            НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;
        КонецЦикла;
    КонецЦикла;
    
    Возврат тзДанные;
    
КонецФункции

Удаление значения из массива

FastCode 37 5
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ВидыВремениВЗачетНормыСуммированногоУчета, ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ВидыИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам"));

Удалить повторяющиеся элементы массива

FastCode 37 5
Взаимодействия.УдалитьПовторяющиесяЭлементыМассива(МассивСпособовОтражений);