Встроенные функции
Работа с числами
ОкончатЦена = Окр(Цена*0.5, 2); //Округление.
Рублей = Цел(Цена); //Получить целую часть числа.
Копеек = (Цена*100)%100; // Получить остаток от деления
ОблНал = Макс(ОблНал-Льготы,0);
МинЗнач = Мин(значение1,значение2,значение3); //можно передавать больше двух параметров
Примечание: Функции Макс и Мин можно использовать и с датами.
см. также: Книга знаний: Математические вычисления в 1С
Строковые функции
Длина = СтрДлина("Иванов Иван Иванович"); //Получить длину строки.
ФИО = СокрЛ(ФИО); //убрать пробелы слева
ФИО = СокрП(ФИО); //убрать пробелы справа
ФИО = СокрЛП(ФИО); //убрать пробелы слева и справа
АБ = Лев("АБВГДЕ",2); //левая часть строки
ГДЕ = Прав("АБВГДЕ",3); //правая часть строки
БВГ = Сред("АБВГДЕ",2,3); //получить часть строки из середины
БВГДЕ = Сред("АБВГДЕ",2); //получить правую часть строки, зная первую позицию
НомерСимвола = Найти(ФИО, " "); //найти позицию первого пробела
НоваяСтрока = СтрЗаменить(ПрежняяСтрока," ", "_"); //Замена одной подстроки на другую.
//изменение регистра букв
ФИОЗаглавнымиБуквами = ВРЕГ(ФИО); //заглавные
ФИОстрочнымиБуквами = нрег(ФИО); //строчные
Работа с датами
СегодняВ1С = РабочаяДата(); //дата в параметрах 1С
СегодняВСистеме = ТекущаяДата(); //дата в операционной системе
СейчасВСистеме = ТекущееВремя();
//получение начала/конца интервала по некой дате
НачалоМесяца = НачМесяца(НекаяДата);
КонецМесяца = КонМесяца(НекаяДата);
НачалоГода = НачГода(НекаяДата);
КонецГода = КонГода(НекаяДата);
//Выделить из даты год, месяц и число.
Год = ДатаГод(ДатаРождения);
Месяц = ДатаМесяц(ДатаРождения);
День = ДатаЧисло(ДатаРождения);
//Прибавление к дате нескольких месяцев.
//Если число отрицательное, то отсчет ведется назад.
ДатаЧерезДваМесяца = ДобавитьМесяц(НекаяДата,2);
//Строковое представление периода, например "Январь 2002".
ПериодСтрокой = ПериодСтр(Дата1, Дата2);
//Форматирование чисел, сумм и дат.
//Очень много вариантов форматирования!
СуммаСКопейками = Формат(Сумма,"Ч10.2-"); // длинна строки будет занимать 10 символов " 10-10"
СуммаСКопейками = Формат(Сумма,"Ч0.2-"); // длинна строки будет плавающая "10-10"
//Сумма прописью. Часто применяется в денежных документах.
Пропись("USD.spl"); // Использовать пропись в валюте USD
СуммаПрописью = Формат(Сумма, "ЧПДС");
Работа с типами
//Преобразование типов.
НекаяДата = Дата("29.01.2002");
НекаяДата = Дата(2002,01,29);
НекаяДата = '29.01.2002';
Сообщение = "Месяц " + Строка(НомерМесяца);
НекоеЧисло = Число("5");
//Возвращает ссылку на объект определенного типа (конструктор).
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
//Определяет тип значения.
Если ТипЗначенияСтр(Параметр)="Справочник" Тогда
Диалоговые функции
//Вопрос пользователю. Можно спросить "Да+Нет", "Повтор+Отмена" и т.д.
Если Вопрос("Вы уверены?","Да+Нет")="Да" Тогда
//Сообщениию пользователю в виде окошка.
//Программа приостанавливается, пока пользователь не нажмет ОК или истечет таймаут.
Предупреждение("Случилась ошибка!");
//Сообщение пользователю в окно сообщений. Программа работает дальше.
Сообщить("Документ проведен!");
//Сообщение пользователю в строку статуса.
Состояние("Выполнено на " + Строка(Проценты) + "%");
В 1С:Предприятие 8.0 полезно после вызова функции Состояние вызывать функцию ОбработкаПрерыванияПользователя, особенно в циклах, иначе окно 1С:Предприятия может просто перестать отображаться, пока не закончится обработка или не произойдет вызов ОбработкаПрерыванияПользователя.
Информация об окружении
глТекущийПользователь = ИмяПользователя(); //Получить имя текущего пользователя.
Права = НазваниеНабораПрав(); //Получить название набора прав текущего пользователя.
ТекКаталогБазы = КаталогИБ(); //Получить каталог, где находится информационная база.
см. также: Книга знаний: Кислотно-щелочной баланс или сбор информации об окружении
Обработка транзакций
Транзакция - это совокупность действий, которая выполняется или вся целиком, или не выполняется ни одно из действий. Т.е. это единый блок действий, который или выполнен целиком, или не выполнен совсем. Транзакции необходимы для сохранения целостности базы данных.
НачатьТранзакцию();
Если <условие ошибки> Тогда
ОтменитьТранзакцию();
Иначе
ЗафиксироватьТранзакцию();
КонецЕсли;
|