|   |   | 
| 
 | v7: Год в "черном" запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        lals 21.10.18✎ 11:35 | 
        Возможно ли получить год из даты в черном запросе чтобы установить группировку "Год" и или условие. 
 Варианты выгружать в ТЗ. не предлагать. хочется по другому. просто нет или да, если да то пожста подскажите как | |||
| 1
    
        exwill 21.10.18✎ 12:19 | 
        (0) В "черном" запросе возможно практически все.  Читай описание языка SQL.     | |||
| 2
    
        Случайный прохожий 21.10.18✎ 12:44 | 
        В семерке нет функции "НачалоПериода"?     | |||
| 3
    
        exwill 21.10.18✎ 12:47 | 
        (2) Он хочет черный запрос.     | |||
| 4
    
        Duke1C 21.10.18✎ 16:10 | 
        Группировка <?> Упорядочить по ;
 Синтаксис: Группировка <ИмяГруппировки>|<ПредопредГруппировка> [Упорядочить по <КонкретизацГруппировки>, ...][Без Упорядочивания][Без Групп][Все [ВошедшиеВЗапрос]]; Англоязычный синоним: Group <ИмяГруппировки>|<ПредопредГруппировка> [Order By КонкретизацГруппировки, ...][Without Groups][All [IncludedInQuery]]; Назначение: Установить порядок выборки информации. Параметры: <ИмяГруппировки> - имя внутренней переменной, задающей группировку; <ПредопредГруппировка> - ключевое слово одной из встроенных группировок; <КонкретизацГруппировки> - конкретизация переменной <ИмяГруппировки>, задающая порядок групп. Ключевые слова: Упорядочить по - параметры, следующие за данным ключевым словом, определяют упорядочивание строк в группировке. Без Упорядочивания - необязательное добавочное ключевое слово, которое преследует цель уменьшения времени формирования запроса, при условии, что ни упорядочивание, ни значения упорядочивания при использовании данного запроса не нужны. Без Групп - группы справочника не выводятся в запрос (для группировки по справочнику); Все - в запрос выводятся все значения, и нулевые тоже (используется для группировок по справочникам и временных группировок). ВошедшиеВЗапрос - уточняет предыдущее ключевое слово 'Все'. Использование данного слова подразумевает, что в каждую строку запроса будут включены значения данных (в том числе нулевые), для которых есть ненулевое значение хотя бы в одной строке запроса. Замечание: Предопределенные группировки: Документ (Document) - позволяет детализацию до документа; СтрокаДокумента (DocumentLine) - позволяет детализацию до строки документа; ПериодЖурнала (JournalPeriod) - группировка по времени ввода записи журнала расчетов или по времени ее действия. Группировки по дате: День (Day); Неделя (Week); Месяц (Month); Квартал (Quarter); Год (Year). Подробнее см. в документации, глава ''Язык Генерации Запросов'' | |||
| 5
    
        Duke1C 21.10.18✎ 16:11 | 
        +4 или Год нужно извлекать не из даты документа?     | |||
| 6
    
        lals 21.10.18✎ 16:54 | 
        (5) Нет  год надо извлечь из реквизита справочника.
 Суть вопроса надо перебрать справочник определить год рождения и сделать группировку по году (месяцу) рождения вот гдето так если бы не ругалось на ошибку "//{{ЗАПРОС(Сформировать) |Родитель = Справочник.Сотрудники.Родитель; |Должность = Справочник.Сотрудники.Должность; |Подразделение = Справочник.Сотрудники.Подразделение; |ТекущийЭлемент = Справочник.Сотрудники.ТекущийЭлемент; |Пол = Справочник.Сотрудники.Пол; |ГодРожд = ДатаГод(Справочник.Сотрудники.ДатаРожд); |МесяцРожд = ДатаМесяц(Справочник.Сотрудники.ДатаРожд); |Функция Счётчик = Счётчик(); |Условие(Родитель = ВыбРодитель); |"//}}ЗАПРОС ; | |||
| 7
    
        lals 21.10.18✎ 16:55 | 
        Как бы в функцию впихнуть     | |||
| 8
    
        2S 21.10.18✎ 16:57 | 
        Опиши свою функцию, какие проблемы?     | |||
| 9
    
        lals 21.10.18✎ 17:50 | 
        Запрос по справочнику  чтобы  отсортировать (отбирать) сотрудников по годам рождения, по месяцам рождения и прочие ее хотелки хотелось бы сделать запросом, но не получается  в запросе получить датаГод от даты рождения сострдника.     | |||
| 10
    
        2S 21.10.18✎ 21:28 | 
        (9) еще как получается
 пиши свою функцию, главное чтобы число возвращала, если не ошибаюсь | |||
| 11
    
        lals 22.10.18✎ 06:50 | 
        (10) Пишу -
 |ДатаРождения= Справочник.Сотрудники.ДатаРожд; |Функция ГодРождения = ДатаГод(ДатаРождения); Вылетает с ошибкой Запрос[8] : Неожиданное выражение 'ДатаГод' | |||
| 12
    
        lals 22.10.18✎ 07:08 | 
        +(11) И вообще СП пишет Что список функций предопределен. Знать добавить туда ничего нельзя.     | |||
| 13
    
        Sserj 22.10.18✎ 07:09 | 
        (11)
 Функция МояФункцияДатаГод(ДатаРождения) Возврат ДатаГод(ДатаРождения); КонецФункции ... |ДатаРождения= Справочник.Сотрудники.ДатаРожд; |Функция ГодРождения = МояФункцияДатаГод(ДатаРождения); ... | |||
| 14
    
        Sserj 22.10.18✎ 07:10 | 
        +(13)
 Точнее в запросе |ДатаГод = МояФункцияДатаГод(Справочник.Сотрудники.ДатаРожд); | |||
| 15
    
        АгентБезопасной Нацио 22.10.18✎ 07:16 | 
        может, подключить 1с++ и не парить мозг?     | |||
| 16
    
        lals 22.10.18✎ 07:23 | 
        (16) 1 не хотелось бы
 2 впервые столкнулся хотелось бы разобраться в механизме (13,14) спасибо ща буду пробовать | |||
| 17
    
        lals 22.10.18✎ 07:39 | 
        (13) Увы не хочет брать внешнюю функцию, верней ругается что не нашел
 Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда {D:\1CSOFT\EXTFORMS\КАДРОВЫЕВЫБОРКИ.ERT(27)}: ГодРождения = <<?>> МояФункцияГод(Справочник.Сотрудники.ДатаРожд); Запрос[8] : Неверно заданный путь 'МояФункцияГод' | |||
| 18
    
        АгентБезопасной Нацио 22.10.18✎ 08:10 | 
        (16) Штатный черный запрос семерки - ужасен. Хотя есть люди, творящие чудеса и на нем. Но "получение скиллов в черном запросе на клюшках" - имхо, неактуально уже. есть более удобные инструменты, хотя и не одобренные свыше...     | |||
| 19
    
        ptiz 22.10.18✎ 08:48 | 
        (17) Она определена выше запроса?     | |||
| 20
    
        lals 22.10.18✎ 08:57 | 
        (17) да
 сразу была после затем перенес выше результат тот же щас вот попробовал |Функция ГодРождения = Сумма(МояФункцияГод(ДатаРождения)); ругаться не ругается но в функцию не заходит я там сообщить вставил | |||
| 21
    
        ptiz 22.10.18✎ 09:11 | 
        Проверил, вот так прекрасно заходит:
 ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |ОбрабатыватьДокументы все; |Сотрудники = Справочник.Сотрудники.ТекущийЭлемент; |ДатаРождения = Справочник.Сотрудники.ДатаРождения; |Функция СотрудникиАвансСумма = Сумма(Сотрудники.Аванс); |Функция ДатаРожденияСумма = Сумма(МояДатаГод(ДатаРождения)); |Группировка Сотрудники; |"//}}ЗАПРОС | |||
| 22
    
        lals 22.10.18✎ 09:21 | 
        блин тупой я и у меня заходит я "сообщить", поставил после оператора Возврат     | |||
| 23
    
        lals 22.10.18✎ 09:21 | 
        Все пошло как надо  спасибо всем откликнувшимся     | |||
| 24
    
        lals 22.10.18✎ 12:20 | 
        Все в порядке да не очень  когда дело дошло до того чтобы сделать группировку, то оказалось что группировку можно сделать только по тем переменным которые прямо указаны в запросе а то что получено функцией как бы не признается переменной для группировки
 ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Родитель = Справочник.Сотрудники.Родитель; |Должность = Справочник.Сотрудники.Должность; |Подразделение = Справочник.Сотрудники.Подразделение; |Сотрудник = Справочник.Сотрудники.ТекущийЭлемент; |Пол = Справочник.Сотрудники.Пол; |ДатаРождения= Справочник.Сотрудники.ДатаРожд; |Функция ГодРождения = Сумма(МояФункцияГод(ДатаРождения)); |Функция МесяцРождения = Сумма(МояФункцияМесяц(ДатаРождения)); |Функция Счётчик = Счётчик(); |Условие(Родитель = ВыбРодитель); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если ПризнакПола = 2 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Пол = Перечисление.Пол.Женский);"; КонецЕсли; Если ПризнакПола = 3 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Пол = Перечисление.Пол.Мужской);"; КонецЕсли; Если КритерийВыборки = 1 Тогда Если Выбрать.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(ГодРождения = ВыбЧисло;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |Группировка ГодРождения;"; ///здесь ругается что нет такой переменной ТекстЗапроса = ТекстЗапроса + " |Группировка Сотрудник Без Групп;"; ИначеЕсли КритерийВыборки = 2 Тогда Если Выбрать.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(МесяцРождения = ВыбЧисло;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |Группировка МесяцРождения;"; /// и тут ругается ТекстЗапроса = ТекстЗапроса + " |Группировка Сотрудник Без Групп;"; ИначеЕсли КритерийВыборки = 3 Тогда Если Выбрать.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Подразделение = Выбрать);"; // тут не ругается КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |Группировка Подразделение;"; ТекстЗапроса = ТекстЗапроса + " |Группировка Сотрудник Без Групп;"; ИначеЕсли КритерийВыборки = 4 Тогда Если Выбрать.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Должность = Выбрать);"; тут не ругается тоже КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |Группировка Должность;"; ТекстЗапроса = ТекстЗапроса + " |Группировка Сотрудник Без Групп;"; КонецЕсли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; | |||
| 25
    
        lals 22.10.18✎ 12:22 | 
        +(24) может есть способ сделать группировку???     | |||
| 26
    
        1Сергей 22.10.18✎ 12:23 | 
        (25) почитай хелп про группировки в запросе     | |||
| 27
    
        lals 22.10.18✎ 12:37 | 
        А разве переменная полученая из функции не является внутренней переменной запроса?     | |||
| 28
    
        Ёпрст гуру 22.10.18✎ 12:37 | 
        (27) нет     | |||
| 29
    
        Ёпрст гуру 22.10.18✎ 12:38 | 
        делфй примитив select from group by ... делов то     | |||
| 30
    
        Ёпрст гуру 22.10.18✎ 12:38 | 
        ну или тупо группировка датаРожд и пост обработка     | |||
| 31
    
        lals 22.10.18✎ 12:39 | 
        блин.....
 придется выгружать в ТЗ а так не хотелось, (28) Вариантов обхода нет? | |||
| 32
    
        Ёпрст гуру 22.10.18✎ 12:43 | 
        (31) в чорном, врят ли     | |||
| 33
    
        lals 22.10.18✎ 12:52 | 
        (32)Спасибо     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |