Примеры кода для 1С 8.x. Часть 1.

Часть1. Примитивные типы


Как явно указать нужную дату?

'20050308'
Дата(2005, 1, 1)
Дата(1, 1, 1)
Дата(2005, 1, 1, 10, 29, 50)
ДАТАВРЕМЯ(2005, 01, 01)


Как проверить дату на пустое значение?

Если ДатаПроверяемая = Дата(1, 1, 1) Тогда
Сообщить("Пустая дата!");
КонецЕсли;

Если Не ЗначениеЗаполнено(ДатаПроверяемая) Тогда
Сообщить("Пустая дата!");
КонецЕсли;


Как сравнить две даты (дни)?

Если НачалоДня(Дата1) = НачалоДня(Дата2) Тогда
Сообщить("Дни совпадают!");
КонецЕсли;


Как прибавить к дате день, месяц?

СледующийДень = ТекущаяДата() + 60 * 60 * 24;

ДобавитьМесяц(Дата(2005, 1, 31), 1)
ДобавитьМесяц(Дата(2005, 2, 28), -1)
КонецМесяца(ДобавитьМесяц(Дата(2005, 2, 28), -1))

ФункцияПолучитьДень(ИсходнаяДата, КоличествоПрибавляемыхДней)

Запрос = НовыйЗапрос("
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&ИсходнаяДата, ДЕНЬ, &Количество) как Дата";

Запрос.УстановитьПараметр("ИсходнаяДата", ИсходнаяДата);
Запрос.УстановитьПараметр("Количество", КоличествоПрибавляемыхДней);

ВозвратЗапрос.Выполнить().Выгрузить()[0].Дата;

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


Как можно проверить тип значения переменной на равенство нужному?

ИмяНужногоТипа = "ДокументСсылка.РеализацияТоваров";
Если ТипЗнч(ОбрабатываемыйДокумент) = Тип(ИмяНужногоТипа) Тогда
// Строки кода, выполняемые при истинности условия.
КонецЕсли;



Как очистить реквизит формы, имеющий ссылочный тип?

Товар = Справочники.Номенклатура.ПустаяСсылка();



Как очистить значение, имеющее тип "Хранилище значения"?

РеквизитХранилище = Неопределено;



Как проверить тип значения, помещенного в реквизит имеющий тип "Хранилище значения"?

Значение = Фотография.Получить();
Если Значение <> Неопределено Тогда
Если ТипЗнч(Значение) = Тип("Строка") Тогда

// Обработать строку.

ИначеЕсли ТипЗнч(Значение) = Тип("Картинка") Тогда

// Обработать картинку.

Сообщить("Картинка");
КонецЕсли;
КонецЕсли;



Как сжать данные, помещаемые в хранилище значения?

СопроводительнаяИнформация = Новый ХранилищеЗначения(ПомещаемоеЗначение, Новый СжатиеДанных(9));



Как предоставить пользователю возможность выбора значения составного типа?

МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.ФизЛица"));

// Добавить другие типы.

ОписаниеВозможныхТипов = Новый ОписаниеТипов(МассивТипов);

ПолученноеЗначение = Неопределено;
ВвестиЗначение(ПолученноеЗначение, "Выберите значение:",

ОписаниеВозможныхТипов);


Как применить округление при работе с вычисляемыми числовыми полями в запросе?

ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ВЫРАЗИТЬ(ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК

ЧИСЛО(15, 2)) КАК СредняяЦенаПродажи
ИЗ
РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон) КАК

ПродажиОбороты



Как вывести многострочное предупреждение?

Предупреждение("На складе: " + Остаток + Символы.ПС + "В резерве : " +

Зарезервировано + Символы.ПС + "Свободный остаток: " + (Остаток - Зарезервировано), 20,

"Состояние остатков");


Как при выполнении обработки сообщить пользователю текущее время?

ТекущееВремя = Формат(ТекущаяДата(), "ДЛФ=В");
Сообщить(ТекущееВремя);


Как вывести число прописью по-русски, но без дробной части?

ФорматнаяСтрока = "Л=ru_RU";
ПараметрыПредметаИсчисления = " , , , , , , , , 0";
Сообщить(ЧислоПрописью(ВыводимоеЧисло, ФорматнаяСтрока,

ПараметрыПредметаИсчисления));


Как вывести число прописью по-русски, с указанием сотых в дробной части?

ПараметрыПредметаИсчисления = "целая, целых, целых, ж, сотая, сотой, сотых, ж, 2"
ФорматнаяСтрока = "Л=ru_RU; ДП=Истина";
Сообщить(ЧислоПрописью(ВыводимоеЧисло, ФорматнаяСтрока,ПараметрыПредметаИсчисления));

Как вывести прописью число килограммов с указанием дробной части в граммах?

ПараметрыПредметаИсчисления = "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3";
ФорматнаяСтрока = "Л=ru_RU; ДП=Истина";
Сообщить(ЧислоПрописью(ВыводимоеЧисло, ФорматнаяСтрока, ПараметрыПредметаИсчисления));

Как долларовую сумму вывести прописью по-английски?

ФорматнаяСтрока = "Л=en_US";
ПараметрыПредметаИсчисления = "dollar, dollars, cent, cents, 2";
Сообщить(ЧислоПрописью(Сумма, ФорматнаяСтрока, ПараметрыПредметаИсчисления));

Как загрузить внешнюю компоненту?

Попытка
ЗагрузитьВнешнююКомпоненту("scanopos.dll")
Исключение
Сообщить("Ошибка загрузки внешней компоненты!");
КонецПопытки;

Попытка

// Получить объект компоненты.
Объект = Новый("AddIn.Scanner");

Исключение
Сообщить("Не удалось создать объект внешней компоненты");
КонецПопытки;


Как выполнить команду операционной системы?

КомандаСистемы("del *.* /q", "c:\temp");
КомандаСистемы("cmd");
ЗапуститьПриложение("ШаблонДоговора.doc");


Как реализовать код процедуры в зависимости от режима выполнения (на клиенте, на сервере, во внешнем соединении) ?

#Если ВнешнееСоединениеТогда

// Фрагмент кода, который должен выполняться в сессии внешнего соединения.

#КонецЕсли

#Если Клиент Тогда

// Фрагмент кода, который должен выполняться на клиентском месте.

#КонецЕсли

#Если Сервер Тогда

// Фрагмент кода, который должен выполняться на сервере.

#КонецЕсли


Как при групповой обработке объектов реализовать стратегию "либо все, либо ничего"?

НачатьТранзакцию();

// В переменной "ВыборкаДанных" содержатся данные для записи в справочник.
Пока ВыборкаДанных.Следующий() Цикл
ЭлементОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
ЭлементОбъект.Код = Выборка.Код;
ЭлементОбъект.Наименование = Выборка.Наименование;

// Остальные реквизиты

ЭлементОбъект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();

ОтменитьТранзакцию();


Как посчитать сумму по формуле сложного процента?

Функция СложныйПроцент(Кредит, Ставка, Срок = 1)

Возврат Кредит*Pow(1 + Ставка/100, Срок);

КонецФункции
Добавить комментарий