Анонс новых возможностей можно посмотреть по ссылке, если кратко, можно выделить три больших блока добавлений:
- Добавлены новые арифметические операции: округление, логарифмы, квадратные корни и т.д.
- Добавлена возможность преобразования в строку и расширение работы со строками: обрезка строк, удаление пробелов и т.д.
- Добавлена возможность получать размер хранимых данных через метод РазмерХранимыхДанных .
Вот со всем этим и хотелось познакомится поподробнее. Все эксперименты проводились на платформе 8.3.20.1613.
Арифметические возможности
В платформе анонсировали следующие возможности:
- Тригонометрические функции Sin, Cos, Tan, ASin, ACos, ATan (все вычисления производятся в радианах)
- Exp — вычисляет результат возведения основания натурального логарифма (числа e) в степень
- Log — вычисляет натуральный логарифм числа.
- Log10 — вычисляет десятичный логарифм числа.
- Pow — вычисляет возведение в степень.
- Sqrt – вычисляет квадратный корень.
- Окр(Round) — округляет исходное число до нужной разрядности
- Цел(Int) — вычисляет целую часть переданного числа, полностью отсекая дробную часть.
Для проверки сделан следующий тестовый пример:
Конструктор запросов 1С 8.3 (часть 1)
- Добавлен справочник «АрифметическиеОперации» — с полями разных типов, чтобы проверить возможности неявного преобразования и составного типа.
- Написана соответствующая обработка и запрос к данным. Все строки, которые помещены в комментарий — не проходили компиляцию.
Выявлены следующие особенности:
- Данные операторы работают строго с числами. При попадании туда любого другого значения, включая NULL или Неопределено — платформа выдаст ошибку.
- Данные операторы не могут работать с полями составного типа без явного приведения к числу (оператор ВЫРАЗИТЬ ).
- В арифметических операциях можно влететь в невозможность вычислить выражение из-за слишком большого числа. Ошибка ниже возникла при попытке посчитать exp от 500. Попытки вставить «ВЫРАЗИТЬ» и т.д. ни к чему не привели.
В целом с арифметическим операциями всё — переходим к работе со строками.
Работа со строками.
В платформе анонсировали следующие возможности:
- Строка(String) – преобразует значение примитивного типа в строку с учетом национальных установок.
- ДлинаСтроки(StringLength) – вычисляет длину строки.
- СокрЛ(TrimL) – отбрасывает незначащие пробелы слева.
- СокрП(TrimR) – отбрасывает незначащие пробелы справа.
- СокрЛП(TrimAll) – отбрасывает незначащие пробелы слева и справа.
- Лев(Left) – получает первые слева символы строки.
- Прав(Right) – получает первые справа символы строки.
- СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра).
- ВРег(Upper) – преобразует все символы строки в верхний регистр.
- НРег(Lower) – преобразует все символы строки в нижний регистр.
- СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).
В данном случае будет 2 эксперимента, т.к. функцию Строка хотелось погонять «в хвост и в гриву».
SQL для начинающих / Урок 1. Первые SQL запросы
Работа функции Строка
Для проверки сделан следующий тестовый пример:
- Просто добавлены простые типы и смотрим, что получается в результате.
- Добавлен справочник «РаботаСоСтроками» — с полями разных типов, чтобы проверить возможности неявного преобразования и составного типа.
Выявлены следующие особенности:
- Умеет преобразовывать любые примитивные типы, включая NULL или Неопределено (см. пример).
- Не умеет преобразовывать ссылки на объекты, в том числе предопределённые элементы.
- Если использовать функцию Строка на строку неограниченной длинны — запрос спокойно отработает. Ради интереса вставил в реквизит текст первого тома «Война и мир» — запрос выполнился без вопросов и в результате получил весь текст из реквизита.
Прочие функции работы со строками
Для проверки используем уже созданный справочник «РаботаСоСтроками».
Выявлены следующие особенности:
- Остальные функции отказываются работать с любыми типами, кроме Строка
- Все эти функции умеют работать со строками неограниченной длинны.
- Конструктор ловить лишь часть ошибок по типизации, а часть вылезет только на клиенте.
В запросе можно объединить операторы СтрДлина и СокрЛП / СокрЛ / СокрП (число и строка). Код, приведённый ниже — полностью рабочий. А вот объединить СтрДлина и Лев уже невозможно . Конструктор ошибку может и не выдать, а вот при выполнении на клиенте ошибка будет точно.
Функция РазмерХранимыхДанных
В платформе анонсировали следующие возможности:
Данная функция будет применима не только к хранилищу значений (как почему-то подумалось мне изначально), а к любому существующему в базе реквизиту (ну, почти к любому).
Для проверки сделан следующий тестовый пример:
- Добавлен справочник «РазмерХранимыхДанных» — с полями разных типов и табличной частью.
Выявлены следующие особенности:
- Любая ошибка с размером хранимых данных приводит к вылету платформы.
- Надо чётко понимать, что является реквизитом ИБ, а что нет, т.к. подсказка в конструкторе работает далеко не всегда. (Н-р: попытка обращения к полям Представление , Предопределённый — приведут к ошибке (см. пример проверки)).
- Получить общий размер табличной части таким образом не получится, что собственно следует из определения, но проверить нужно было.
Заключение.
Доклад окончен. Целью статьи было попробовать для себя и показать другим как работают новые возможности языка запросов, какие есть при этом ограничения и нюансы, о которых можно изначально не подумать. Спасибо за внимание.
Если вдруг кому нужна обработка, в которой я накидывал данные примеры кода — см. мой github
Специальные предложения
Полезные и нужные функции. Время от времени такое надо. Большая часть их поддерживается SQL нативно (т.е. будет преобразовываться 1 в 1).
(7) критиковать легко, делать сложно ) думаю, у них было полно более приоритетных задач, а ресурсы конечно ограничены
Интересно и зачем вам ВЫБРАТЬ EXP(500)?
1c 8.3.21.1508 удалось только ВЫБРАТЬ EXP(66), хотя в MS SQL 2019 легко выдаст Select EXP(500). Видать не так уж и проста трансляция языка запросов 1с в язык SQL.
(10) Возможно потому что одна из других СУБД которые поддерживает платформа (включая файловую) не умеет EXP(500).
Как то постоянно все забывают что главный якорь платформы в плане работы с СУБД это файловый вариант, второй по влиянию это IBM DB2.
Исключительно в целях эксперимента «а сможет ли». Одной из задач, которые я себе ставил — добиться НЕ выполнения данных функций, чтобы найти их ограничения. Что я и постарался воплотить.
А что там с дополнительными параметрами некоторых функций — например можно вызвать Лев(ПолеСтрока, ПолеЧисло)?
И с вложением функций СокрЛП(СтрЗаменить(ПолеСтрока, Лев(ПолеСтрока,СтрНайти(ПолеСтрока,»-«)-1)+, Прав(ПолеСтрока,СтрНайти(ПолеСтрока,»-«),ДлинаСтроки(ПолеСтрока)-Лев(ПолеСтрока,СтрНайти(ПолеСтрока,»-«))))
И как нынче всё это сочетается со старой функцией ПОДСТРОКА?
И индексация символов по-прежнему с 1?
А функции перевода строки в число, булево, в дату, в неопределено — так и не появилось?
И нет ли функции как ЕСТЬNULL и как оператора ЕСТЬ NULL — только в более широком смысле — как операция условия «Не заполнено» из СКД (т.е. проверяющая не только на NULL, но и на неопределено и пустые ссылки)?
(12) Ух как много вопросов и как мало у меня ответов. Но попробуем.
А что там с дополнительными параметрами некоторых функций — например можно вызвать Лев(ПолеСтрока, ПолеЧисло)?
Можно. Причём если число будет отрицательное, то выведет просто 0 символов.
И с вложением функций СокрЛП(СтрЗаменить(ПолеСтрока, Лев(ПолеСтрока,СтрНайти(ПолеСтрока,»-«)-1)+, Прав(ПолеСтрока,СтрНайти(ПолеСтрока,»-«),ДлинаСтроки(ПолеСтрока)-Лев(ПолеСтрока,СтрНайти(ПолеСтрока,»-«))))
вот такой пример точно отработал, так что думаю тут тоже всё хорошо.
1. Подстрока и СокрЛП / СОКРЛ / СОКРП — работают вместе вполне нормально.
2. Подстрока и ЛЕВ / ПРАВ и т.д. не работают вместе. Стока ниже выдаёт ошибку (см. скрин к комментарию)
Да, так и не появилось.
И нет ли функции как ЕСТЬNULL и как оператора ЕСТЬ NULL — только в более широком смысле — как операция условия «Не заполнено» из СКД (т.е. проверяющая не только на NULL, но и на неопределено и пустые ссылки)?
Из анонса не следовало, так что похоже нет. Но очень глубоко не копал.
P.S. Если кто захочет посмотреть на код, которым я это проверял — сделал доработку в обработке для экспериментов, ссылка на которую приложена к статье.
(14)Очень странно что с ПОДСТРОКА 1. работает, а 2. уже нет — но больше интересовало, конечно как-то так так
СокрП(ПОДСТРОКА(СокрЛП(ПолеСтрока), 1, СтрНайти(СокрЛП(ПолеСтрока),».»)-1))+СокрЛ(ПОДСТРОКА(СокрЛП(ПолеСтрока), СтрНайти(СокрЛП(ПолеСтрока),».»)+1, ДлинаСтроки(СокрЛП(ПолеСтрока))))
Просмотры 5528
Загрузки 0
Рейтинг 62
Создание 27.09.22 09:00
Обновление 27.09.22 09:00
№ Публикации 1733279
Рубрики Запросы
Тип файла Нет файла
Конфигурация Не имеет значения
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
См. также
Программные перечисления, ч.2: приемы кэширования при разработке Промо
Все знают, что такое кэш, и зачем он нужен. Но в 1С разработчик обычно использует кэширование только на уровне конфигурации, а в какой-нибудь обработке скорее ломает голову над запросом — как получить все данные за один заход. Хочется рассказать о том, как можно добиться хороших результатов с стратегией «разделяй и властвуй».
30.10.2017 29335 unichkin 18
Партицированная дисциплина программиста в 1С
Почему при росте объемов базы 1С все становится медленней, даже если все индексы правильно сделаны? В статье на простом примере с регистром сведений показана причина и как этого избежать. Кто виноват больше, 1С или MS SQL решать Вам 🙂
20.09.2022 1131 1CUnlimited 2
Выборка данных из периодических регистров, используя фильтры отбора через менеджер временных таблиц в ЗУП 3.1
Рассмотрены алгоритмы выборки из периодических регистров через фильтры отбора, используя менеджер временных таблиц для конфигурации ЗУП 3.1.
12.09.2022 2045 quazare 17
Делаем свой интервальный регистр в ЗУП
В статье, на примере реальной практической задачи попробуем снова погрузиться в одну из самых совершенных типовых конфигураций. Будем использовать механику интервальных регистров, правильно писать данные в такие регистры и правильно читать их.
09.09.2022 927 vazelin 4
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 7254 Eugen-S 25
Ускорим проведение в 1С:Управление холдингом
В 1С:Управление холдингом есть «нехороший» запрос, который съедает значительную часть времени проведения документов. Если его подправить, то проведение заметно ускорится.
10.08.2022 4099 sapervodichka 54
Порядковый номер в запросе. Нумерация строк в системе 1С
В данной статье будет описано, как в системе 1С присваивается порядковый номер в запросе, то есть происходит нумерация строк запроса. Будет сформирована некая универсальная задача, после чего будет предложен код запроса, который решит задачу и будет нумеровать строки.
02.08.2022 998 Koder_Line 10
Экспертный взгляд на оптимизацию производительности на примере исправления и декомпозиции запроса
Еще один интересный пример оптимизации производительности ERP. Описываем решение проблемы подробно по шагам.
20.07.2022 3498 ivanov660 17
Как сделать запрос на изменение данных Промо
В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.
01.06.2018 41068 m-rv 23
Обход по группировкам в запросе, соединение таблиц, параметры в запросе, выгрузка прайс-листа в Excel, PDF, Docx, TXT
В помощь начинающим программистам. Использую обработку из предыдущей моей публикации для разработки выгрузки Прайс-листа в Excel, PDF, Docx, TXT. Рассмотрю, как работает обход результата запроса ПоГруппировкам (релиз платформы 1С:Предприятие 8.3 (8.3.20.1674), самописная конфигурация).
18.07.2022 1022 Pproksima 2
Экспертный кейс. История расследования одного небыстрого закрытия месяца в 1C:ERP. Пример неочевидных путей расследования в виде детективной истории
В данной статье хотим рассказать об одном нашем непростом расследовании, в котором удалось собрать сразу несколько проблем на разных уровнях инфраструктуры заказчика и изначальной методологии ведения учета. Само расследование в какой-то момент стало напоминать детективную историю, с роялями в кустах, ошибками платформы, странным поведением пользователей и магическим поведением хорошо знакомых механизмов. Но мы реалисты, поэтому все проблемы были выявлены и устранены 😉
11.07.2022 4407 it-expertise 27
Кратность в Юанях (CNY) 10 и 1
10.06.2022 5752 sapervodichka 12
Выразить число как строку и дату как строку в запросе Промо
Предлагается новый и более компактный метод преобразования даты и числа в строку в запросе
22.02.2015 143008 ildarovich 79
Экспертный кейс. Расследование фатального замедления времени расчета себестоимости в 1С:ERP 2
При выполнении нагрузочного тестирования информационной системы на базе 1С:ERP для одного из клиентов с целью оценки возможности миграции системы на PostgreSQL и Astra Linux мы столкнулись с неприемлемым увеличением времени выполнения расчета себестоимости. Строго говоря, сценарий тестирования закрытия месяца не был выполнен вообще – он не укладывался в таймаут выполнения теста, 24 часа.
По прошествии 18 часов всё ещё шло выполнение операции «Распределение затрат и расчет себестоимости». Более 16 часов выполнялся подэтап “Расчет партий и себестоимости. Этап. Расчет себестоимости: РассчитатьСтоимость”. Всё это время выполнялся запрос, который в текущей инфраструктуре клиента (СУБД MS SQL Server) выполняется чуть более 3 минут на аналогичных данных.
25.03.2022 4512 it-expertise 92
Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)
В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста. Согласно данным подсистемы БСП “Оценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.
02.03.2022 3428 it-expertise 47
Задача по 1С — в базе данных есть таблица движения товара, пишем запрос для определения среднего значения остатка товара
В базе данных есть таблица движения товара, плюс означает, что товар пришел на склад, минус означает, что товар выбыл со склада: Необходимо написать запрос на 1С или SQL (по желанию), который вернет среднее значение остатка товара за январь 2021 (с 1 по 31). В результате должно получиться ProdID 1 = 1.58 ProdID 2 = 0.77
01.03.2022 1529 Greamdevil 3
Расчет хэш-функции в запросе Промо
Показано, как рассчитать в запросе значение хэш-функции для поля, имеющего тип «строка». Приведены результаты испытаний предложенного приема и несколько примеров его использования при решении конкретных практических задач.
20.03.2015 57627 ildarovich 39
Генерация простых чисел в запросе (SQL) и сравнение производительности
Пишем запрос по генерацию последовательности простых чисел на языке запросов 1С и SQL.
Источник: infostart.ru
Ходатайство о назначении экспертизы
Как написать ходатайство о назначении экспертизы в Арбитражный суд (гражданский суд)?
Ходатайство о назначении строительной экспертизы
Когда заявлять ходатайство о назначении экспертизы?
Ходатайство о назначении экспертизы может быть заявлено только в суде первой или апелляционной инстанции или на досудебной стадии. ГПК и АПК не регламентируют момент заявления ходатайств. Вы можете заявлять ходатайства после вопроса судьи об имеющихся ходатайствах и заявлениях или в любой другой, подходящий по-вашему мнению момент, до вынесения судом решения.
Ходатайство о назначении экспертизы пишется в произвольной форме. В шапке указывается наименование органа, перед которым заявляется ходатайство, ФИО истца, ответчика, номер дела. В ходатайстве о проведении экспертизы указывается ссылка на ст ст. 79 ГПК РФ или ст.
82 АПК РФ (в зависимости от того, рассматривается дело в суде общей юрисдикции или в Арбитражном суде) вопросы, требующие экспертного разъяснения (ч.2 ст.79 ГПК РФ, ч. 2 ст. 82 АПК РФ), наименование экспертной организации, которой Вы хотите поручить проведение экспертизы (ч.2 ст.79 ГПК РФ, ч. 3 ст. 82 АПК РФ) и при необходимости перечень доказательств по делу, которые ходатай просит передать в распоряжение эксперта. В начале ходатайства следует изложить обстоятельства, для выяснения которых необходимо проведение экспертизы. Чем лучше мотивировано ходатайство, тем больше шансов, что его удовлетворят.
Ходатайство это «официальная просьба», которую суд вправе удовлетворить или не удовлетворить. После рассмотрения ходатайства суд выносит определение об удовлетворении ходатайства о назначении экспертизы (полном или частичном) или об отказе в удовлетворении (с указанием мотивов), которое приобщается к материалам дела. Если судья отказывается принять к рассмотрению Ваше ходатайство, подавайте его через канцелярию и обязательно поставьте штамп, что оно принято. Лицо, заявившее ходатайство должно быть поставлено в известность о результатах рассмотрения ходатайства.
Бывают случаи, когда ходатайство о назначении экспертизы отклоняется судом с формулировкой: «из-за отсутствия дополнительных сведений, необходимых для рассмотрения указанного ходатайства, а именно о согласии экспертной организации на проведение экспертизы, кандидатурах экспертов, стоимости и сроках проведения экспертизы». Для того чтобы избежать такой ситуации Вы можете до заявления ходатайства обратиться с запросом о возможности проведения экспертизы к нам, в «Ленинградскую Службу «ЛЕНЭКСП». Мы подготовим для Вас информационное письмо в адрес суда о возможности проведения экспертизы с указанием ориентировочных сроков, стоимости, сведений об эксперте и его квалификации.
Если Вы хотите взыскать стоимость оплаченной Вами экспертизы с проигравшей стороны, следует подать ходатайство о взыскании судебных издержек (оплата услуг представителя, оплата экспертизы и т.д.). Это можно сделать как до, так и после завершения судебного процесса.
С приоритетами и принципами работы ЛЭС «ЛЕНЭКСП» Вы можете ознакомиться здесь — Независимая экспертиза и оценка.
Ниже представлены
образцы ходатайств о назначении экспертизы ,
разработанные нами с учетом требований ГПК, АПК РФ.
Название документа: ходатайство о назначении экспертизы. Не следует использовать названия: ходатайство о проведении экспертизы, заявление на проведение экспертизы, заявление о назначении экспертизы, бланк назначения судебной экспертизы.
Запрос на проведение экспертизы
ООО «Ленинградская
Экспертная Служба
«ЛЕНЭКСП»
ул. Комсомола, д.41, офис 219
От гражданина РФ (Ф.И.О.)
«__»_________ 2019 г.
Прошу сообщить, готова ли ваша организация провести (название экспертизы) экспертизу по определению суда, с целью ответа на вопросы:
В случае согласия, прошу сообщить квалификацию эксперта, которому будет поручено проведение экспертизы, перечень необходимых документов, ориентировочные сроки выполнения и стоимость.
_____ ФИО ______ /___________/
Образец запроса на проведение экспертизы скачать
Ходатайство о назначении экспертизы
(для суда общей юрисдикции)
В ________cуд г.______
Адрес: ______________
Истец:______________
Адрес: ______________
Ответчик: __________
Адрес: ______________
Дело №:____________
От гражданина РФ___
«__»_________ 2019 г.
ХОДАТАЙСТВО
о назначении экспертизы
В производстве ______ суда г. _______ находится дело №______ по иску __________(наименование (ФИО) истца) к _________(наименование ответчика) о __________(предмет иска).
В связи с возникновением в процессе рассмотрения дела вопросов, требующих специальных знаний, в соответствии со ст. 79 ГПК РФ, прошу суд назначить (название экспертизы) экспертизу, с целью ответа на вопросы:
Прошу поручить проведение экспертизы Обществу с ограниченной ответственностью «Ленинградская Экспертная Служба «ЛЕНЭСКП», расположенному по адресу: Санкт-Петербург, ул. Комсомола, д.41, литера А, офис 219 (тел. (812) 244-46-40).
В соответствии с ответом ООО «Ленинградская Экспертная Служба «ЛЕНЭКСП» №______от ________г. данная экспертная организация имеет возможность провести указанную экспертизу в течение _____ (_____) календарных дней с момента ее назначения. Примерная стоимость экспертизы составит __________ (_______) руб. Экспертизу будет проводить (Ф.И.О. эксперта), имеющий высшее образование по специальности___________ стаж работы ______лет.
Для проведения экспертизы в распоряжении экспертной организации будет необходимо предоставить следующие документы:
Подтверждаю, что готов понести расходы, связанные с проведением экспертизы в полном объеме.
_______________________/___________________/
ФИО подпись
Ходатайство о назначении экспертизы
(для Арбитражного суда)
В Арбитражный cуд г.___
Истец:_________________
Адрес: _________________
Ответчик: _____________
Адрес: _________________
Дело №:_______________
От гражданина РФ _____
«__»________ 2019 г.
ХОДАТАЙСТВО
о назначении экспертизы
В производстве Арбитражного суда г. ________ находится дело №_______ по иску ________(наименование (ФИО) истца) к _______ (наименование ответчика) о _______(предмет иска).
В связи с возникновением в процессе рассмотрения дела вопросов, требующих специальных знаний, в соответствии со ст. 82 АПК РФ, прошу суд назначить (название экспертизы) экспертизу, с целью ответа на вопросы:
Прошу поручить проведение экспертизы Обществу с ограниченной ответственностью «Ленинградская Экспертная Служба «ЛЕНЭКСП», расположенному по адресу: Санкт-Петербург, ул. Комсомола, д.41, литера А, офис 219 (тел. (812) 244-46-40).
В соответствии с ответом ООО «Ленинградская Экспертная Служба «ЛЕНЭКСП» №______от ________г. данная экспертная организация имеет возможность провести указанную экспертизу в течение _____ (_____) календарных дней с момента ее назначения. Примерная стоимость экспертизы составит _________ (__________) руб. Экспертизу будет проводить (Ф.И.О. эксперта), имеющий высшее образование по специальности_______ стаж работы ______лет.
Для проведения экспертизы в распоряжении экспертной организации будет необходимо предоставить следующие документы:
Подтверждаю, что готов понести расходы, связанные с проведением экспертизы в полном объеме.
Источник: lenexp.ru