Публикации

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

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


Дублирование тегов

Теги OneScript и теги БСП, существуют в нескольких экземлярах

ТаблицаЗначений из DBF

Функция загружает данные из dbf файла в таблицу значений. За основу взято https://infostart.ru/public/103060/ Зависит от: ПутьКФайлу() https://fastcode.im/Templates/6672
3 SDV 26 5
// Функция загружает данные из dbf файла в таблицу значений.
// Зависит от ПутьКФайлу() https://fastcode.im/Templates/6672
// Параметры:
//  ИмяФайла - Строка - полный путь к файлу. Если не указан, то откроется диалог выбора пути к файлу.
//  Кодировка - КодировкаXBase - Если не указан, то КодировкаXBase.OEM
//
Функция ТаблицаЗначенийИзDBF(Кодировка = Неопределено, ПутьКФайлу = Неопределено) Экспорт
	
	Если Кодировка = Неопределено Тогда 
		Кодировка = КодировкаXBase.OEM;
	КонецЕсли;
	
	Если ПутьКФайлу = Неопределено Тогда
		ПутьКФайлу = ПутьКФайлу("Выберите dbf-файл","(*.dbf)|*.dbf",РежимДиалогаВыбораФайла.Открытие);
	КонецЕсли;
	
	// Открытие файла данных
	ФайлДанных = Новый XBase(ПутьКФайлу);
	ФайлДанных.Кодировка = Кодировка;
	Если Не ФайлДанных.Открыта() Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось открыть файл " + ПутьКФайлу;
		Сообщение.Сообщить();
		Возврат Неопределено;
	КонецЕсли;
	
	// Переменные и объекты, что бы не создавать постоянно в цикле
	ОписаниеБулево = Новый ОписаниеТипов("Булево");
	ОписаниеДаты = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата));
	
	// Создание таблицы значений
	ТаблицаЗначений = Новый ТаблицаЗначений;
	Для Каждого Поле из ФайлДанных.Поля Цикл
		Если Поле.Тип = "L" Тогда
			Тип = ОписаниеБулево;
		ИначеЕсли Поле.Тип = "D" Тогда
			Тип = ОписаниеДаты;
		ИначеЕсли (Поле.Тип = "N") ИЛИ (Поле.Тип = "F") Тогда
			Тип = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Поле.Длина, Поле.Точность));
		Иначе
			Тип = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(Поле.Длина));
		КонецЕсли;
		ТаблицаЗначений.Колонки.Добавить(Поле.Имя, Тип);
	КонецЦикла;
	
	// Заполнение строк таблицы
	Работаем = ФайлДанных.Первая();
	Пока Работаем Цикл
		СтрокаТаблицы = ТаблицаЗначений.Добавить();
		ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ФайлДанных);
		Работаем = ФайлДанных.Следующая();
	КонецЦикла;
	
	ФайлДанных.ЗакрытьФайл();
	Возврат ТаблицаЗначений;
КонецФункции

Клиент TurboStore

Программа добавляет в Конфигуратор "ТурбоПоиск", который ищет сразу по нескольким источникам данных: сервису FastCode, библиотеке стандартных подсистем (БСП) и каталогу разработок TurboStore.

FastCode Professional - быстрый поиск кода 1С

Удобный поиск по базе шаблонов кода, БСП, общим модулям конфигурации и локальным файлам, ответы на вопросы, помощь сообщества программистов 1С. Клиент для поиска прямо в Конфигураторе!

Язык выражений СКД Формат()

Коллеги, подскажите пожалуйста, почему не отрабатывает Формат()? 2020-05-24_16-26-07.jpg Читать дальше
SDV 26 5

Подсчет записей, содержащих одинаковые неупорядоченные пары значений

Если в некоторой таблице есть два поля, заполняемые в произвольном порядке, то как посчитать число "одинаковых" записей? К примеру, для таблицы "два любимых блюда" t2.png так можно посчитать число различных комбинаций блюд: t3.png Собственно, запрос, решаю... Читать дальше
FastCode 9 1

Выбрать в запросе одну запись из нескольких

Имеется таблица, содержащая, например, колонки Ф, К1, К2, К3, К4. Для каждого значения Ф в таблице может быть несколько записей. t4.png Требуется получить таблицу, включающую по одной (любой) записи для каждого значения Ф. t5.png Несмотря на простоту форм... Читать дальше
FastCode 9 1

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

Процедура помещает Таблицу значений во временную таблицу Запроса
3 SDV 26 5
// Процедура - Поместить таблицу в запрос
// Зависит от ТипизированнаяТаблицаЗначений() https://fastcode.im/Templates/6734
// Параметры:
//  Запрос		 - Запрос 
//  Таблица		 - ТаблицаЗначений
//  ИмяТаблицы	 - Строка - Имя временной таблицы в Запросе
//
Процедура ПоместитьТаблицуВЗапрос(Запрос, Таблица, ИмяТаблицы)
	ТипизированнаяТаблица = ТипизированнаяТаблицаЗначений(Таблица);
	ИсходныйТекстЗапроса = Запрос.Текст;
	Запрос.Текст = "Выбрать * Поместить " + ИмяТаблицы + " Из &" + ИмяТаблицы + " как " + ИмяТаблицы;
	Если Запрос.МенеджерВременныхТаблиц = Неопределено Тогда
		Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	КонецЕсли;
	Если Запрос.Параметры.Свойство(ИмяТаблицы) Тогда
		_Параметр =  Запрос.Параметры.ИмяТаблицы;
		Запрос.УстановитьПараметр(ИмяТаблицы, ТипизированнаяТаблица);
		Запрос.Выполнить();
		Запрос.УстановитьПараметр(ИмяТаблицы, _Параметр);
	Иначе
		Запрос.УстановитьПараметр(ИмяТаблицы, ТипизированнаяТаблица);
		Запрос.Выполнить();
		Запрос.Параметры.Удалить(ИмяТаблицы);
	КонецЕсли;
	Запрос.Текст = ИсходныйТекстЗапроса;
КонецПроцедуры

Объединение непересекающихся интервалов в запросе

Задача заключается в том, чтобы собрать в один непрерывный интервал все время проживание гостя в гостинице, если между интервалами не было перерывов. То есть для таблицы t1.png Это делает следующий запрос, являющийся развитием идей решения задачи 14 из пре... Читать дальше
FastCode 9 1

TurboConf - расширение Конфигуратора 1С

TurboConf повышает эффективность работы в Конфигураторе 1С и помогает автоматизировать рутинные задачи.