Публикации

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

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

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

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

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

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

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

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

OneTracker - трекер учета рабочего времени программиста 1С Промо

Программа автоматически замеряет время работы разработчика с 1С в режиме Конфигуратора или Предприятия. Учет ведется в разрезах задач, информационных баз или объектов конфигураций.

Печать из "вне" ссылки в файл

1 burovik86 1
ФорматыПечати = Новый Массив;
ФорматыПечати.Добавить(ТипФайлаТабличногоДокумента.DOCX);
КомандыПечати = УправлениеПечатью.КомандыПечатиФормы("Документ.Отпуск.Форма.ФормаДокумента").НайтиСтроки(Новый Структура("Представление", ПредставлениеПФ));	
НастройкиСохранения = УправлениеПечатью.НастройкиСохранения();
НастройкиСохранения.ФорматыСохранения = ФорматыПечати;
НастройкиСохранения.ПодписьИПечать = Истина;

СписокОбъектов = Новый Массив;
СписокОбъектов.Добавить(ДокументСсылка);
	
ТаблицаЗначенийПФ = УправлениеПечатью.НапечататьВФайл(КомандыПечати, СписокОбъектов, НастройкиСохранения);

Как правильно добавить контактную информацию (БСП)

Фрагмент программного добавления контактной информации
//вид контактной информации (адрес партнера, адрес контрагента, телефон партнера и т.д.)
ВидКИ = Справочники.ВидыКонтактнойИнформации.АдресПартнера;
//тип контактной информации (Адрес, Телефон, ЭлектроннаяПочта)
ТипКИ = ВидКИ.Тип;
			
//получение объекта XDTO по представлению контактной информации
ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению("г. Минск, ул. Пинская, 28А", ТипКИ);
ЗначенияПолей = 

//преобразование объекта XDTO в xml
УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);

//запись контактной информации в табличную часть объекта
//ПартнерОбъект - тип СправочникОбъект.ИмяСправочника
УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ПартнерОбъект, ЗначенияПолей, ВидКИ, ТипКИ);			

Пример работы с OpenOffice/LibreOffice Calc

Нужно загрузить прайс поставщика в xls, но возможности использовать Excel нет. Кто-нибудь загружал данные через OpenOffice или LibreOffice, можете скинуть рабочий пример, откуда начать копать?
pkonev 1

Открыть форму незаписанного документа

4 ChOP 19 3
&НаКлиенте
Процедура Команда(Команда)

Форма = ПолучитьФорму("Документ.НашДокумент.ФормаОбъекта");
ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
Форма.Открыть();

КонецПроцедуры

// Можно использовать безконтекстный вызов, оптимизируем передачу данных

&НаСервереБезКонтекста

Функция ЗаполнитьДокументНаСервере(ДанныеФормы);

Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.НашДокумент")); // Получаем объект из данных формы ИЛИ

Док = Документы.НашДокумент.СоздатьДокумент();

// Заполняем реквизиты объекта или другие действия ********

ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ

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

Как удалить префикс и лидирующие нули?

Подскажите универсальный способ как убрать из номера документа префикс и лидирующие нули.

Добавить элемент в обычную форму

Программное создание элемента в обычной форме
ПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), <НаименованиеЭлемента>, Истина, <Панель>);
ПолеВвода.Данные = <ПутьКДанным>;
ПолеВвода.Верх = <Верх>;
ПолеВвода.Высота = <Высота>;
ПолеВвода.Лево = <Лево>;
ПолеВвода.Ширина = <Ширина>;
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Лево, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Право, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Верх, <КкомуПривязываемся>, <ККакойЕгоГранице>);
ПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ, <КкомуПривязываемся>, <ККакойЕгоГранице>);

Имя перечисления по значению

Имя перечисления по значению
Артур 37 1 3
XMLСтрока(Перечисления.Виды.Вид1) 

Запись в регистр сведений (периодический, независимый)

Запись в регистр сведений (периодический, независимый)
2 ArturR 24 2
МенеджерЗаписи = РегистрыСведений.УчетНомернойНоменклатуры.СоздатьМенеджерЗаписи();
		Пока Выборка.Следующий() Цикл
			Если Выборка.Номенклатура.Номерная Тогда
				МенеджерЗаписи.Период 		= Дата;
				МенеджерЗаписи.Место 		= Склад;			
				МенеджерЗаписи.Номенклатура = Выборка.Номенклатура;
				МенеджерЗаписи.Номер 		= Выборка.НомерАгрегата;
				МенеджерЗаписи.Статус 		= Перечисления.СтатусНоменклатуры.НаСкладе;
				МенеджерЗаписи.Записать();
			КонецЕсли;
		КонецЦикла;