Как декодировать (преобразовать) Unicode в 1С При разработке очередного обмена с интернет магазином через API столкнулисть что сайт возвращает ответ в виде:
Код VBS {"ok" :"true" ,"description" :"\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d" }
из кода ясно что это JSON и используя код ПрочитатьJSON
Код 1C v 8.3 Чтение = Новый ЧтениеJSON;
Чтение. УстановитьСтроку( стрВходящая) ;
ДанныеЛога = ПрочитатьJSON( Чтение) ;
Чтение. Закрыть( ) ;
В переменной ДанныеЛога будет структура в виде
В результате получилась функция с 2-мя вариантами возрата, в зависимости от того как нужно
Код 1C v 8.3
Функция ДекодироватьUniCodeВJSON(стрВходящая)
Чтение = Новый ЧтениеJSON;
Чтение. УстановитьСтроку( стрВходящая) ;
ДанныеЛога = ПрочитатьJSON( Чтение) ;
Чтение. Закрыть( ) ;
Текст = "" ;
Для каждого Элемент Из ДанныеЛога Цикл
Текст = Текст + ? ( НЕ ПустаяСтрока( Текст) , Символы. ПС, "" ) ;
Текст = Текст + Элемент. Ключ + " = " + Элемент. Значение;
КонецЦикла ;
Возврат Текст;
Запись = Новый ЗаписьJSON;
Запись. УстановитьСтроку( Новый ПараметрыЗаписиJSON( ПереносСтрокJSON. Нет) ) ;
ЗаписатьJSON( Запись, ДанныеЛога, ) ;
Возврат Запись. Закрыть( ) ;
КонецФункции
На просторах интернета была найдена еще одна функция:
Код 1C v 8.3
Функция ПереобразоватьЮникод(Строка)
ГотововаяСтрока = "" ;
МасУкр = Новый Массив( 66 ) ;
МасУкр[0 ]= "А" ; МасУкр[1 ]= "Б" ; МасУкр[2 ]= "В" ; МасУкр[3 ]= "Г" ; МасУкр[4 ]= "Ґ" ; МасУкр[5 ]= "Д" ;
МасУкр[6 ]= "Е" ; МасУкр[7 ]= "Є" ; МасУкр[8 ]= "Ж" ; МасУкр[9 ]= "З" ; МасУкр[10 ]= "И" ; МасУкр[11 ]= "І" ;
МасУкр[12 ]= "Ї" ; МасУкр[13 ]= "Й" ; МасУкр[14 ]= "К" ; МасУкр[15 ]= "Л" ; МасУкр[16 ]= "М" ; МасУкр[17 ]= "Н" ;
МасУкр[18 ]= "О" ; МасУкр[19 ]= "П" ; МасУкр[20 ]= "Р" ; МасУкр[21 ]= "С" ; МасУкр[22 ]= "Т" ; МасУкр[23 ]= "У" ;
МасУкр[24 ]= "Ф" ; МасУкр[25 ]= "Х" ; МасУкр[26 ]= "Ц" ; МасУкр[27 ]= "Ч" ; МасУкр[28 ]= "Ш" ; МасУкр[29 ]= "Щ" ;
МасУкр[30 ]= "Ь" ; МасУкр[31 ]= "Ю" ; МасУкр[32 ]= "Я" ;
МасУкр[33 ]= "а" ; МасУкр[34 ]= "б" ; МасУкр[35 ]= "в" ; МасУкр[36 ]= "г" ; МасУкр[37 ]= "ґ" ; МасУкр[38 ]= "д" ;
МасУкр[39 ]= "е" ; МасУкр[40 ]= "є" ; МасУкр[41 ]= "ж" ; МасУкр[42 ]= "з" ; МасУкр[43 ]= "и" ; МасУкр[44 ]= "і" ;
МасУкр[45 ]= "ї" ; МасУкр[46 ]= "й" ; МасУкр[47 ]= "к" ; МасУкр[48 ]= "л" ; МасУкр[49 ]= "м" ; МасУкр[50 ]= "н" ;
МасУкр[51 ]= "о" ; МасУкр[52 ]= "п" ; МасУкр[53 ]= "р" ; МасУкр[54 ]= "с" ; МасУкр[55 ]= "т" ; МасУкр[56 ]= "у" ;
МасУкр[57 ]= "ф" ; МасУкр[58 ]= "х" ; МасУкр[59 ]= "ц" ; МасУкр[60 ]= "ч" ; МасУкр[61 ]= "ш" ; МасУкр[62 ]= "щ" ;
МасУкр[63 ]= "ь" ; МасУкр[31 ]= "ю" ; МасУкр[65 ]= "я" ;
МасКод = Новый Массив( 66 ) ;
МасКод[0 ]= "0410" ; МасКод[1 ]= "0411" ; МасКод[2 ]= "0412" ; МасКод[3 ]= "0413" ; МасКод[4 ]= "0490" ; МасКод[5 ]= "0414" ;
МасКод[6 ]= "0415" ; МасКод[7 ]= "0404" ; МасКод[8 ]= "0416" ; МасКод[9 ]= "0417" ; МасКод[10 ]= "0418" ; МасКод[11 ]= "0406" ;
МасКод[12 ]= "0407" ; МасКод[13 ]= "0419" ; МасКод[14 ]= "041A" ; МасКод[15 ]= "041B" ; МасКод[16 ]= "041C" ; МасКод[17 ]= "041D" ;
МасКод[18 ]= "041E" ; МасКод[19 ]= "041F" ; МасКод[20 ]= "0420" ; МасКод[21 ]= "0421" ; МасКод[22 ]= "0422" ; МасКод[23 ]= "0423" ;
МасКод[24 ]= "0424" ; МасКод[25 ]= "0425" ; МасКод[26 ]= "0426" ; МасКод[27 ]= "0427" ; МасКод[28 ]= "0428" ; МасКод[29 ]= "0429" ;
МасКод[30 ]= "042C" ; МасКод[31 ]= "042E" ; МасКод[32 ]= "042F" ;
МасКод[33 ]= "0430" ; МасКод[34 ]= "0431" ; МасКод[35 ]= "0432" ; МасКод[36 ]= "0413" ; МасКод[37 ]= "0491" ; МасКод[38 ]= "0434" ;
МасКод[39 ]= "0435" ; МасКод[40 ]= "0454" ; МасКод[41 ]= "0436" ; МасКод[42 ]= "0437" ; МасКод[43 ]= "0438" ; МасКод[44 ]= "0456" ;
МасКод[45 ]= "0457" ; МасКод[46 ]= "0439" ; МасКод[47 ]= "043A" ; МасКод[48 ]= "043B" ; МасКод[49 ]= "043C" ; МасКод[50 ]= "043D" ;
МасКод[51 ]= "043E" ; МасКод[52 ]= "043F" ; МасКод[53 ]= "0440" ; МасКод[54 ]= "0441" ; МасКод[55 ]= "0442" ; МасКод[56 ]= "0443" ;
МасКод[57 ]= "0444" ; МасКод[58 ]= "0445" ; МасКод[59 ]= "0446" ; МасКод[60 ]= "0447" ; МасКод[61 ]= "0448" ; МасКод[62 ]= "0449" ;
МасКод[63 ]= "044C" ; МасКод[31 ]= "044E" ; МасКод[65 ]= "044F" ;
тмпСтрока = "" ;
Для Счетчик = 1 По СтрДлина( Строка) Цикл
Если Лев( Строка, 1 ) = "\" Тогда
Если Лев( Строка, 2 ) = "\u" Тогда
тмпСтрока = Прав( Лев( Строка, 6 ) , 4 ) ;
Если МасКод. Найти( тмпСтрока) = Неопределено Тогда
СтрокаЗамены = Прав( тмпСтрока, 1 ) ;
тмпСтрока = СтрЗаменить( тмпСтрока, СтрокаЗамены, ТРег( СтрокаЗамены) ) ;
Если МасКод. Найти( тмпСтрока) = Неопределено Тогда
Сообщить( "Код символа не найден: " + тмпСтрока) ;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасУкр[МасКод. Найти( тмпСтрока) ] ;
КонецЕсли ;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасУкр[МасКод. Найти( тмпСтрока) ] ;
КонецЕсли ;
Строка = Прав( Строка, ( СтрДлина( Строка) - 6 ) ) ;
Иначе
Строка = Прав( Строка, ( СтрДлина( Строка) - 2 ) ) ;
КонецЕсли ;
Иначе
ГотововаяСтрока = ГотововаяСтрока + Лев( Строка, 1 ) ;
Строка = Прав( Строка, ( СтрДлина( Строка) - 1 ) ) ;
КонецЕсли ;
КонецЦикла ;
Возврат ГотововаяСтрока ;
КонецФункции
Категория:
WEB-сервисы, WS-ссылки, XDTO-пакеты Как в 1С посчитать расстояние между двумя географическими координатами? На одном проекте была платная работа с картами и отображением складов на них, часто требовалось рассчитать расстояние между географическими координатами.
Земля может быть описана как сфера, поэтому для вычисления расстояния между точками на поверхности земли мы можем использовать уравнения для расчета сферического расстояния большого круга. При расчете мы берем сферу радиусом 6372795 метров. Ввиду того что земля на самом деле не сфера, а эллипсоид, - пограшность вычисления расстояния может составлять около 0.5%.
В результате были использованы следующие функции:
Код 1C v 8.3
Функция ABS(Число)
Если Число<0 Тогда
Возврат -1*Число;
Иначе
Возврат Число;
КонецЕсли;
КонецФункции
Функция РастояниеВМетрахОтДо(Ширина1,Долгота1,Ширина2,Долгота2)
Пи=3.14; РадиусЗ = 6372795;
Расстояние = РадиусЗ*ATAN(Sqrt(Pow(COS(Пи*Ширина2/180)*SIN(ABS(Пи*Долгота2/180-Пи*Долгота1/180)),2)+Pow(COS(Пи*Ширина1/180)*SIN(Пи*Ширина2/180)-SIN(Пи*Ширина1/180)*COS(Пи*Ширина2/180)*COS(ABS(Пи*Долгота2/180-Пи*Долгота1/180)),2))/(SIN(Пи*Ширина1/180)*SIN(Пи*Ширина2/180)+COS(Пи*Ширина1/180)*COS(Пи*Ширина2/180)*COS(ABS(Пи*Долгота2/180-Пи*Долгота1/180))));
Возврат Расстояние;
КонецФункции
//Пример 2
Функция ПросчитатьРастояниеОтДо(ШиротаКоординаты1,ДолготаКоординаты1,ШиротаКоординаты2,ДолготаКоординаты2)
// cos(d) = sin(φА)*sin(φB) + cos(φА)*cos(φB)*cos(λА − λB),
// где φА и φB & широты, λА, λB & долготы данных пунктов, d & расстояние между пунктами, измеряемое в радианах
// длиной дуги большого круга земного шара.
// Расстояние между пунктами, измеряемое в километрах, определяется по формуле:
// L = d·R,
// где R = 6371 км & средний радиус земного шара.
Возврат (ASin (sin(ШиротаКоординаты1)*sin(ШиротаКоординаты2) + cos(ШиротаКоординаты1)*cos(ШиротаКоординаты2)*cos(ДолготаКоординаты1 - ДолготаКоординаты2)))*6371;
КонецФункции
Категория:
Полезные, Универсальные Функции Журнал транзакций для базы данных "db_buh" переполнен. Причина: "LOG_BACKUP". HRESULT=80040E14 При обновлении бухгалтерии, на этапе сохранения, получил следующую ошибку:
Каталог не обнаружен 'v8srvr://sql/acc_main/configsave/e0666db2-45d6-49b4-a200-061c6ba7d569.6b9d6525-ee94-4e13-b73d-82d3e8e8441d'
по причине: Каталог не обнаружен 'ConfigSave\e0666db2-45d6-49b4-a200-061c6ba7d569.6b9d6525-ee94-4e13-b73d-82d3e8e8441d'
по причине: Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Журнал транзакций для базы данных "acc_main" переполнен. Причина: "LOG_BACKUP". HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=2, Severity=11, native=9002, line=1
Идем на сервер и первым делом проверяем место на дисках,
А оно закончилось нужно потом почистить хард или увеличивать объем, а пока порежем лог
Открываем SQL Server Management Studio
Это ошибка Microsoft SQL Server - переполняется лог транзакций и не очищается. Урезать его возможно различными способами, в том числе и с помощью стандартной оснастки, но не всегда данная операция получается, и размер файла лога остается прежним. Как вариант предлагаю следующее решение из двух строчек( где acc_main - название базы Бух)
Код SQL USE acc_main
ALTER DATABASE acc_main SET RECOVERY SIMPLE
DBCC SHRINKFILE (acc_main, 50 );
ALTER DATABASE acc_main SET RECOVERY FULL
Результат выполнения:
Тоже самое можно сделать вручную:
Шаг 1. Установить модель восстановления Простая (Simple). Правой кнопкой на базе - Свойства(Properties) - Параметры(Options) - 4-й сверху пункт Модель восстановления(Recovery model) - Простая(Simple) - OK.
Шаг 2. Выполнить шринк (сжатие) лога транзакций. Правой кнопкой на базе - Задачи(Tasks) - Сжать(Shrink) - Файлы(Files) - установить Тип файла(File type) - Журнал(Log) - в Операция сжатия(Shrink action) - выбрать Реорганизовать страницы, перед тем осводить неиспользуемое место(Reorganize pages before releseasin g unused space) - Сжать файл (Shrink file to) - указать приемлемый размер лога.
Шаг 3. Установить модель восстановления Полная(Full). Правой кнопкой на базе - Свойства(Properties) - Параметры(Options) - 4-й сверху пункт Модель восстановления(Recovery model) - Полная(Full) - OK.
В дополнении скажу, что можно сохранить лог в файл и выполнить шринк так(BaseDB - имя базы данных):
Код SQL BACKUP LOG BaseDB TO DISK = '<D:\Backup\Base_Log.trn'
DBCC SHRINKFILE (BaseDB_Log, 20 ) WITH NO_INFOMSGS
Все
Категория:
Системные Ошибки Не работает предварительный просмотр документа в 1С Варианты решения проблемы "Не открывается предварительный просмотр":
1. Нет принтера - нет предварительного просмотра. Попробуй переустановить принтеры.
2. Поставил под локальным админом дрова на принтер как у клиента и все заработало.
3. Если принтер сетевой, то сделайте его имя не больше 8-ми символов!
Для 7.7:
Открываем редактор реестра и находим следующую ветку:
HKEY_CURRENT_USER\Software\1C\1Cv\7.7\<здесь название базы>\V7\<имя пользователя>\Moxel\<ИмяОпцицПечатиУчетМПЗ> - последняя ветка отличается от вида документа. Так в этой ветки есть следующий параметр Default Printer - он должен быть меньше 15 символов.
Или вообще удалите раздел Moxel в реестре - там хранятся настройки для каждой печатной формы.
Проверь свойства принтера "качество печати", если стоит 600dpi попробуй поставить 300dpi.
Советуем вам посетить сайт
https://casin opromo3.ru , если вы увлекаетесь азартными играми. На нем вы найдете свежи рабочие промокоды казино, для получения бездепозитных бонусов при регистрации.
Категория:
Администрирование Функции - Экспонента, Степень, Логарифм, Синус, Косинус, Тангенс Встроенные функции 1С 8.х для работы со значениями типа Число:
Код 1C v 8.х
Функция Степень(_База, _Степ)
Результат = 1 ;
Для К = 1 По _Степ Цикл
Результат = Результат * _База;
КонецЦикла ;
Возврат Результат;
КонецФункции
ACos - Вычисляет арккосинус от аргумента <Число>.
Синтаксис:
Код 1C v 8.х ACos( < Число> )
Параметры: <Число> - Обязательный
Тип: Число. Аргумент функции. Определен в диапазоне -1 ... 1.
ASin - Вычисляет арксинус от аргумента <Число>.
Синтаксис:
Код 1C v 8.х ASin (<Число>)
Параметры: <Число> - Обязательный
Тип: Число. Аргумент функции. Определен в диапазоне -1 ... 1.
ATan - Вычисляет арктангенс от аргумента <Число>.
Синтаксис:
Код 1C v 8.х ATan( < Число> )
Параметры: <Число> - Обязательный
Тип: Число. Аргумент функции.
Cos - Вычисляет косинус от аргумента <Угол>, заданного в радианах.
Синтаксис:
Код 1C v 8.х Cos( < Угол> )
Параметры: <Угол> - Обязательный
Тип: Число. Аргумент функции.
Exp - Вычисляет результат возведения основания натурального логарифма (числа е) в степень <Число>.
Синтаксис:
Код 1C v 8.х Exp( < Число> )
Параметры: <Число> - Обязательный
Тип: Число. Аргумент функции.
Log - Вычисляет натуральный логарифм числа.
Синтаксис:
Код 1C v 8.х Log( < Число> )
Параметры: <Число> - Обязательный
Тип: Число. Исходное число, больше 0.
Log10 - Вычисляет десятичный логарифм числа.
Синтаксис:
Код 1C v 8.х Log10( < Число> )
Параметры: <Число> - Обязательный
Тип: Число. Исходное число, больше 0.
Sin - Вычисляет синус от аргумента <Угол>, заданного в радианах.
Синтаксис:
Код 1C v 8.х Sin( < Угол> )
Параметры: <Угол> - Обязательный
Тип: Число. Аргумент функции.
Tan - Вычисляет тангенс от аргумента <Угол>, заданного в радианах.
Синтаксис:
Код 1C v 8.х Tan( < Угол> )
Параметры: <Угол> - Обязательный
Тип: Число. Аргумент функции.
Код 1C v 7.x
Перем ДocтaтoчнaяToчнocть;
Перем КoличecтвoЗнaкoв;
Перем КoличecтвoИтepaций;
Перем ЧиcлoПИ;
Функция КвaдpaтныйКopeнь(Apгумeнт) Далее
Функция ЭкcПонeнтa(Apгумeнт) Далее
Функция CтeпeннaяФункция(Apгумeнт1,Apгумeнт2) Далее
Функция Cинуc(Знач Apгумeнт, TипApгумeнтa = 0) Далее
Функция Кocинуc(Знач Apгумeнт, TипApгумeнтa = 0) Далее
Функция Taнгeнc(Знач Apгумeнт, TипApгумeнтa = 0) Далее
Функция КвaдpaтныйКopeнь(Apгумeнт)
Если Apгумeнт< 0 Тогда
Сообщить( "..." , "!" ) ;
Возврат ПолучитьПустоеЗначение( ) ;
ИначеЕсли Apгумeнт= 0 Тогда
Возврат 0 ;
КонецЕсли ;
ПpeдыдущaяИтepaция = Apгумeнт/ 2 ;
Для Cч= 1 По КoличecтвoИтepaций Цикл
Значeниe = 0.5 * ( ПpeдыдущaяИтepaция+
Apгумeнт/ ПpeдыдущaяИтepaция) ;
Если Значeниe< ПpeдыдущaяИтepaция Тогда
Paзницa = ПpeдыдущaяИтepaция- Значeниe;
Иначе
Paзницa = Значeниe- ПpeдыдущaяИтepaция;
КонецЕсли ;
Если Paзницa< ДocтaтoчнaяToчнocть Тогда
Прервать;
КонецЕсли ;
ПpeдыдущaяИтepaция= Значeниe;
КонецЦикла ;
Значeниe = Окр( Значeниe, Макс( КoличecтвoЗнaкoв- Лог10 ( Значeниe) , 0 ) ) ;
Возврат Значeниe;
КонецФункции
Функция ЭкcПонeнтa(Apгумeнт)
Значeниe = 1 ;
ПpeдыдущийЧлeн = 1 ;
Для Cч= 1 По КoличecтвoИтepaций Цикл
OчepeднoйЧлeн = ПpeдыдущийЧлeн* Apгумeнт/ Cч;
Значeниe = Значeниe+ OчepeднoйЧлeн;
Toчнocть = OчepeднoйЧлeн/ Значeниe;
Если ( Toчнocть< ДocтaтoчнaяToчнocть) И ( OчepeднoйЧлeн< 0.1 ) Тогда
Прервать;
КонецЕсли ;
ПpeдыдущийЧлeн= OчepeднoйЧлeн;
КонецЦикла ;
Значeниe = Окр( Значeниe, Макс( КoличecтвoЗнaкoв- Лог10 ( Значeниe) , 0 ) ) ;
Возврат Значeниe;
КонецФункции
Функция CтeпeннaяФункция(Apгумeнт1,Apгумeнт2)
Если Apгумeнт1 < 0 Тогда
Сообщить( "..." , "!" ) ;
ИначеЕсли Apгумeнт1 = 0 Тогда
Возврат 0 ;
КонецЕсли ;
Значeниe = 1 ;
ПpeдыдущийЧлeн = 1 ;
Для Cч= 1 По КoличecтвoИтepaций Цикл
OчepeднoйЧлeн = ПpeдыдущийЧлeн* Apгумeнт2 * Лог( Apгумeнт1 ) / Cч;
Значeниe = Значeниe+ OчepeднoйЧлeн;
Toчнocть = OчepeднoйЧлeн/ Значeниe;
Если Toчнocть< 0 Тогда
Toчнocть = - Toчнocть;
КонецЕсли ;
Если ( Toчнocть< ДocтaтoчнaяToчнocть) И ( OчepeднoйЧлeн< 0.1 ) Тогда
Прервать;
КонецЕсли ;
ПpeдыдущийЧлeн= OчepeднoйЧлeн;
КонецЦикла ;
Значeниe = Окр( Значeниe, Макс( КoличecтвoЗнaкoв- Лог10 ( Значeниe) , 0 ) ) ;
Возврат Значeниe;
КонецФункции
Функция CлужTaнгeнc(Apгумeнт)
КвApгум = Apгумeнт* Apгумeнт;
Значeниe = Apгумeнт/ ( 1 - КвApгум/ ( 3 - КвApгум/ ( 5 - КвApгум/ ( 7 - КвApгум/ ( 9 - КвApгум/ ( 11 - КвApгум/ ( 13 - КвApгум/ ( 15 - КвApгум) ) ) ) ) ) ) ) ;
Возврат Значeниe;
КонецФункции
Функция Cинуc(Знач Apгумeнт, TипApгумeнтa = 0)
Если TипApгумeнтa= 1 Тогда
Apгумeнт = ( Apгумeнт/ 180 ) * ЧиcлoПИ;
КонецЕсли ;
ЗнaкPeзультaтa= 1 ;
Если Apгумeнт< 0 Тогда
Apгумeнт= - Apгумeнт;
ЗнaкPeзультaтa= - 1 * ЗнaкPeзультaтa;
КонецЕсли ;
Apгумeнт = Apгумeнт- Цел( Apгумeнт/ ( 2 * ЧиcлoПИ) ) * 2 * ЧиcлoПИ;
Если Apгумeнт> ЧиcлoПИ Тогда
Apгумeнт = Apгумeнт- ЧиcлoПИ;
ЗнaкPeзультaтa= - 1 * ЗнaкPeзультaтa;
КонецЕсли ;
Если Apгумeнт> ЧиcлoПИ/ 2 Тогда
Apгумeнт= ЧиcлoПИ- Apгумeнт;
КонецЕсли ;
Если Apгумeнт> ЧиcлoПИ/ 4 Тогда
Значeниe = ЗнaкPeзультaтa* Кocинуc( ЧиcлoПИ/ 2 - Apгумeнт) ;
Иначе
TaнгeнcПолoвины = CлужTaнгeнc( Apгумeнт/ 2 ) ;
Значeниe = ЗнaкPeзультaтa* 2 * TaнгeнcПолoвины/
( 1 + TaнгeнcПолoвины* TaнгeнcПолoвины) ;
КонецЕсли ;
Возврат Значeниe;
КонецФункции
Функция Кocинуc(Знач Apгумeнт, TипApгумeнтa = 0)
Если TипApгумeнтa= 1 Тогда
Apгумeнт = ( Apгумeнт/ 180 ) * ЧиcлoПИ;
КонецЕсли ;
Если Apгумeнт< 0 Тогда
Apгумeнт= - Apгумeнт;
КонецЕсли ;
Apгумeнт = Apгумeнт- Цел( Apгумeнт/ ( 2 * ЧиcлoПИ) ) * 2 * ЧиcлoПИ;
Если Apгумeнт< ЧиcлoПИ/ 4 Тогда
TaнгeнcПолoвины = CлужTaнгeнc( Apгумeнт/ 2 ) ;
Значeниe = ( 1 - TaнгeнcПолoвины* TaнгeнcПолoвины) /
( 1 + TaнгeнcПолoвины* TaнгeнcПолoвины) ;
Иначе
Значeниe = Cинуc( Apгумeнт+ ЧиcлoПИ/ 2 ) ;
КонецЕсли ;
Возврат Значeниe;
КонецФункции
Функция Taнгeнc(Знач Apгумeнт, TипApгумeнтa = 0)
Если TипApгумeнтa= 1 Тогда
Apгумeнт = ( Apгумeнт/ 180 ) * ЧиcлoПИ;
КонецЕсли ;
ЗнaкPeзультaтa= 1 ;
Если Apгумeнт< 0 Тогда
Apгумeнт= - Apгумeнт;
ЗнaкPeзультaтa= - 1 * ЗнaкPeзультaтa;
КонецЕсли ;
Apгумeнт = Apгумeнт- Цел( Apгумeнт/ ( ЧиcлoПИ) ) * ЧиcлoПИ;
Если Apгумeнт> ЧиcлoПИ/ 2 Тогда
Apгумeнт= ЧиcлoПИ- Apгумeнт;
ЗнaкPeзультaтa= - 1 * ЗнaкPeзультaтa;
КонецЕсли ;
Если Apгумeнт< ЧиcлoПИ/ 8 Тогда
Значeниe = ЗнaкPeзультaтa* CлужTaнгeнc( Apгумeнт) ;
Иначе
Попытка
Значeниe = ЗнaкPeзультaтa* Cинуc( Apгумeнт) /
Кocинуc( Apгумeнт) ;
Исключение
Сообщить( "..." , "!" ) ;
Значeниe = ПолучитьПустоеЗначение( ) ;
КонецПопытки
КонецЕсли ;
Возврат Значeниe;
КонецФункции
ДocтaтoчнaяToчнocть = 0.00000000001 ;
КoличecтвoИтepaций = 1000 ;
КoличecтвoЗнaкoв = - Лог10 ( ДocтaтoчнaяToчнocть) - 1 ;
ЧиcлoПИ = 3.1415926535897932384626433832795 ;
Код 1C v 7.x VBS= CreateObject( "MSScriptControl.ScriptControl" ) ;
VBS. Language= "VBscript" ;
Параметр= 1234 ;
Корень= VBS. Eval( "sqr(" + СокрЛП( Параметр) + ")" ) ;
Процедура Сформировать()
Ctrl= СоздатьОбъект( "MSScriptControl.ScriptControl" ) ;
Ctrl. Language= "vbscript" ;
Ctrl. AddCode( "
|pi=4 * atn(1.0)
|
|Function ShowPI
|ShowPI=pi
|End Function
|
|Function CalcSQR(number)
|if number<0 then
| CalcSQR=0
|else
| CalcSQR=SQR(Number)
|end if
|End Function
|
|Function CalcSIN(number)
|CalcSin=Sin(number/(180/pi))
|End Function
|
|Function CalcCOS(number)
|CalcCOS=COS(number/(180/pi))
|End Function
|
|Function CalcTAN(number)
|CalcTAN=TAN(number/(180/pi))
|End Function
|
|Function CalcRND
|Randomize
|CalcRND=RND
|End Function
|
|Function NameOfWeekDay(MyDate)
|NameOfWeekDay=WeekDayName(Weekday(MyDate),False)
|End Function
|
|" ) ;
Сообщить( Ctrl. Run( "ShowPI" ) ) ;
Сообщить( Ctrl. Run( "CalcSQR" , 4 ) ) ;
Сообщить( Ctrl. Run( "CalcSin" , 90 ) ) ;
Сообщить( Ctrl. Run( "CalcCOS" , 180 ) ) ;
Сообщить( Ctrl. Run( "CalcTAN" , 180 ) ) ;
Сообщить( Ctrl. Run( "CalcRND" ) ) ;
Сообщить( Ctrl. Run( "NameOfWeekDay" , ТекущаяДата( ) ) ) ;
Категория:
Работа с Числами Ввести строку, ввод текста Код 1C v 8.х
Текст = "" ;
Подсказка = "Введите текст напоминания" ;
Если ВвестиСтроку( Текст, Подсказка, 0 , истина ) Тогда
КонецЕсли ;
Код 1C v 7.x
НК = "" ;
Если ВвестиСтроку( НК, "Введите код продукции" , 40 , 1 , 9 ) = 1 Тогда
Koд = HK;
Иначе
Код = "" ;
КонецЕсли ;
Только реальные отзывы об
казино7 . Проверка на честность популярного игрового заведения.
Категория:
Работа с Текстом (Строкой)