Публикации

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

Интеграция 1С и Битрикс 24 через расширения. Курс

Разработка модуля интеграции ведется полностью в расширении, что позволит вам добавлять его даже в 1С:Fresh.
FastCode 29 4

HTTP в 1С для начинающих. Курс

Закрой все вопросы по работе с HTTP в 1C за одно занятие!
FastCode 29 4

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

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

Разработка HTML интерфейса мобильного приложения 1С. Курс

Разработай красивое мобильное приложение 1С с помощью HTML и CSS
FastCode 29 4

Чат бот ВКонтакте на 1С. Курс

Интенсив по разработке чат бота ВКонтакте. Используя API ВКонтакте создавать чат бот ВКонтакте из 1С. Получить список пользователей группы ВКонтакте и разослать им сообщения.
9 FastCode 29 4

1С XDTO для начинающих. Курс

Закрой все вопросы по XDTO за одно занятие!
FastCode 29 4

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

Автор: HostHost

3 FastCode 29 4
ПараметрыСтроки = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(ТаблицаПоказателей[0]);

Значения реквизитов, прочитанных из информационной базы для нескольких объектов

Автор: HostHost

FastCode 29 4
ВидыРасчета = Новый Массив;

Для Каждого СтрокаИсточника Из ТаблицаВычислений Цикл

        ВидыРасчета.Добавить(СтрокаИсточника.ВидНачисления);

КонецЦикла;

ВидыРасчетаИнфо = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ВидыРасчета, "УчетВремениВЧасах,КатегорияНачисленияИлиНеоплаченногоВремени,ТребуетсяРасчетБазы");

Строковые функции. Альтернатива для СтрРазделить, СтрНайти и т.д.

В старых версиях конфигураций можно получить сообщение о том, что, например, СтрРазделить не найден. Тогда в качестве альтернативы стоит использовать ОбщийМодуль → СтроковыеФункцииКлиентСервер, где собраны необходимые функции по работе со строкой. Например... Читать дальше

Формирование файла CSV с записью в файл на клиенте

1 buketoff 17 3

&НаКлиенте
Процедура СформироватьCsvФайл(Команда)
	
	ПутьККаталогу = ОткрытьДиалогВыбораФайла();
	Текст = ВыгрузитьВCSV(ПутьККаталогу.ПолноеИмяФайла);
	
	Кодировка = КодировкаТекста.ANSI;
	ТекстовыйФайлЗапись = Новый ЗаписьТекста(ПутьККаталогу.ПолноеИмяФайла,Кодировка);
	ТекстовыйФайлЗапись.ЗаписатьСтроку(Текст);
	ТекстовыйФайлЗапись.Закрыть();
	
КонецПроцедуры

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

Функция ВыгрузитьВCSV(имяФайлаCSV);
	Текст = СоздатьДанныеCSV(ТаблицаДокументов,Разделитель);
	Возврат Текст;
КонецФункции

Функция СоздатьДанныеCSV(ТаблицаДокументов, Разделитель)
	Текст = "";
	Для Каждого Запись из ТаблицаДокументов Цикл
		Если Текст = "" тогда
			Текст = СоздатьЗаголовкиCSV(ТаблицаДокументов, Разделитель) + Символы.ПС;   	
		КонецЕсли;  
		Текст = Текст + Запись.snils + Разделитель + Запись.surname
		+ Разделитель + Запись.name + Разделитель + Запись.patronymic + Разделитель 
		+ Запись.oid + Разделитель + Запись.compaignId + Разделитель + Формат(Запись.dateOfBirth, "ДЛФ=Д") + Разделитель + Запись.citizenship + Разделитель 
		+ Запись.specialty + Разделитель + Запись.financingType + Разделитель + Запись.applicationDate + Разделитель + Запись.targetReception 
		+ Разделитель + Запись.testResultType + Разделитель + Запись.testResultOrganization + Разделитель + Запись.testResultYear + Символы.ПС;         	
	КонецЦикла;
	Возврат Текст;
КонецФункции

// Создаем строку загоовков для CSV-файла
Функция СоздатьЗаголовкиCSV(ТаблицаДокументов, Разделитель)
	НоваяТаблица = ТаблицаДокументов.Выгрузить();
	КолонкиТЗ = НоваяТаблица.Колонки;
	Для каждого Колонка Из КолонкиТЗ Цикл  
		СтрКолонки = "" + СтрКолонки + Колонка.Имя + Разделитель;
	КонецЦикла; 
	Возврат СтрКолонки;
КонецФункции

Таблица значений на УФ с динамическим набором колонок

1 buketoff 17 3
    ТЗ_рез = РеквизитФормыВЗначение("ТЗДокументы");
    
    МассивРеквизитов = Новый Массив;
    
    //Удалим ранее созданные колонки в ТЗДокументы    
    Для Каждого Колонка Из ТЗ_рез.Колонки Цикл
        МассивРеквизитов.Добавить("ТЗДокументы." + Колонка.Имя);        
	КонецЦикла;
	
	ИзменитьРеквизиты(,МассивРеквизитов);
	
	//Удалим отображение таблицы на форме и создадим новую
	ЭлементТаблица = Элементы.Найти("ТЗДокументы");
	Если ЭлементТаблица <> Неопределено Тогда
		Элементы.Удалить(ЭлементТаблица);        
	КонецЕсли;     
	
	ЭлементТаблица=Элементы.Добавить("ТЗДокументы",Тип("ТаблицаФормы"));
	ЭлементТаблица.ПутьКДанным = "ТЗДокументы";
	ЭлементТаблица.Отображение = ОтображениеТаблицы.Список;
	
	ТЗ_рез = Данные;

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