| 
    
            
         
         | 
    
  | 
В функции не выполняется запрос. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Босечка    
     03.10.13 
            ✎
    14:14 
 | 
         
        Функция ОпределитьДатуИ(ДатаНач,ЧислоДней) экспорт
 
        Запрос1=Новый Запрос; Если ЧислоДней>0 тогда Запрос1.Текст=" |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ" +ЧислоДней+" | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря, | РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря > &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &ПредпраздничныйДень) | |УПОРЯДОЧИТЬ ПО | ДатаКалендаря |"; Конецесли; Запрос1.УстановитьПараметр("ДатаНач",ДатаНач); Запрос1.УстановитьПараметр("ЧислоДней",ЧислоДней); Запрос1.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий); Запрос1.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный); Выборка = Запрос1.Выполнить().Выбрать(); Если Выборка.Количество()=ЧислоДней тогда Пока Выборка.Следующий() цикл ТекДата=Выборка.ДатаКалендаря; Конеццикла; Возврат ТекДата; Конецесли; Возврат Неопределено; Конецфункции Мешает переменная ЧислоДней, а она мне нужна, как поступить?  | 
|||
| 
    1
    
        Жан Пердежон    
     03.10.13 
            ✎
    14:15 
 | 
         
        зачем темы плодишь?     
         | 
|||
| 
    2
    
        Wobland    
     03.10.13 
            ✎
    14:15 
 | 
         
        пробел втыкнуть     
         | 
|||
| 
    3
    
        бомболюк    
     03.10.13 
            ✎
    14:16 
 | 
         
        пробел забыл     
         | 
|||
| 
    4
    
        Босечка    
     03.10.13 
            ✎
    14:17 
 | 
         
        Куда втыкнуть?     
         | 
|||
| 
    5
    
        GANR    
     03.10.13 
            ✎
    14:19 
 | 
         
        (4) 
 
        У Вас это вот так: |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ" +ЧислоДней+" А надо так: |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " +ЧислоДней+" А еще по отладчику можно видеть текст запроса?  | 
|||
| 
    6
    
        GANR    
     03.10.13 
            ✎
    14:21 
 | 
         
        +(5) После "РАЗРЕШЕННЫЕ ПЕРВЫЕ" нужен пробел     
         | 
|||
| 
    7
    
        Босечка    
     03.10.13 
            ✎
    14:24 
 | 
         
        Когда нажимаешь правой кнопкой этот запрос конструктор не видит, и пишет "создать новый запрос?"     
         | 
|||
| 
    8
    
        Босечка    
     03.10.13 
            ✎
    14:24 
 | 
         
        пробел добавила, не помогло.     
         | 
|||
| 
    9
    
        Ненавижу 1С    
     гуру 
    03.10.13 
            ✎
    14:25 
 | 
         
        и чему равно число дней?     
         | 
|||
| 
    10
    
        catena    
     03.10.13 
            ✎
    14:25 
 | 
         
        (8)Запрос не выполняется молча или всё-таки о чем-то пищит?     
         | 
|||
| 
    11
    
        Босечка    
     03.10.13 
            ✎
    14:25 
 | 
         
        ЧислоДней - переменная величина, параметр функции.     
         | 
|||
| 
    12
    
        GROOVY    
     03.10.13 
            ✎
    14:27 
 | 
         
        Запрос после "добавила пробел не помогло" в студию!     
         | 
|||
| 
    13
    
        Wobland    
     03.10.13 
            ✎
    14:27 
 | 
         
        нормально так. от функции один хрен требуется одно значение     
         | 
|||
| 
    14
    
        GROOVY    
     03.10.13 
            ✎
    14:28 
 | 
         
        Жесть: 
 
        Пока Выборка.Следующий() цикл ТекДата=Выборка.ДатаКалендаря; Конеццикла; Возврат ТекДата;  | 
|||
| 
    15
    
        Босечка    
     03.10.13 
            ✎
    14:28 
 | 
         
        (10) Ошибка при вызове метода контекста выполнить, ожидается выражение "Выбрать     
         | 
|||
| 
    16
    
        Wobland    
     03.10.13 
            ✎
    14:28 
 | 
         
        Запрос.Текст=СтрЗаменить(Запрос.Текст, Символы.НПП, "")     
         | 
|||
| 
    17
    
        catena    
     03.10.13 
            ✎
    14:29 
 | 
         
        (15)И?... Там еще текст должен быть.     
         | 
|||
| 
    18
    
        Wobland    
     03.10.13 
            ✎
    14:29 
 | 
         
        (15) ну напиши другой. правильный и ласковый     
         | 
|||
| 
    19
    
        Босечка    
     03.10.13 
            ✎
    14:29 
 | 
         
        (14)
 
        Запрос1.Текст=" | ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ "+ЧислоДней+" | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря, | РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря > &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &ПредпраздничныйДень) | |УПОРЯДОЧИТЬ ПО | ДатаКалендаря |";  | 
|||
| 
    20
    
        catena    
     03.10.13 
            ✎
    14:29 
 | 
         
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " +Строка(ЧислоДней)+"     
         | 
|||
| 
    21
    
        GROOVY    
     03.10.13 
            ✎
    14:30 
 | 
         
        (15) А ЧИслоДней когда = 0, то текста нет, может на это и ругается?     
         | 
|||
| 
    22
    
        GROOVY    
     03.10.13 
            ✎
    14:31 
 | 
         
        (20) Он и так по правилам преобразования в строку конвертнется.     
         | 
|||
| 
    23
    
        GANR    
     03.10.13 
            ✎
    14:31 
 | 
         
        (8) Это лишь одна из ошибок надо еще
 
        СтрЗаменить(Строка(ЧислоДней), Символы.НПП, "") - иначе при ЧислоДней около 1000 работать не будет (будет мешать спецсимвол, разделяющий триады в текстовом представлении строки.  | 
|||
| 
    24
    
        Ненавижу 1С    
     гуру 
    03.10.13 
            ✎
    14:32 
 | 
         
        (22) может там дней больше 1000? и ругается на формат по-умолчанию?
 
        или отрицательное число дней  | 
|||
| 
    25
    
        GANR    
     03.10.13 
            ✎
    14:32 
 | 
         
        (0) Вот так работает?
 
        Запрос1.Текст=" | ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ "+СтрЗаменить(Строка(ЧислоДней), Символы.НПП, "") +" | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря, | РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря > &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &ПредпраздничныйДень) | |УПОРЯДОЧИТЬ ПО | ДатаКалендаря |";  | 
|||
| 
    26
    
        Ненавижу 1С    
     гуру 
    03.10.13 
            ✎
    14:32 
 | 
         
        (23) так пишут только удаки, надо использовать формат     
         | 
|||
| 
    27
    
        Defender aka LINN    
     03.10.13 
            ✎
    14:33 
 | 
         
        (16), (23) А потом запускаем на сервере, где разделитель - запятая и начинаем рвать на всех доступных местах волосы, пытаясь понять, где ошибка     
         | 
|||
| 
    28
    
        Wobland    
     03.10.13 
            ✎
    14:34 
 | 
         
        (26) тссс.. сегодня день НПП     
         | 
|||
| 
    29
    
        catena    
     03.10.13 
            ✎
    14:34 
 | 
         
        (25)А зачем РАЗРЕШЕННЫЕ ПЕРВЫЕ, если можно написать МАКСИМУМ?     
         | 
|||
| 
    30
    
        Босечка    
     03.10.13 
            ✎
    14:36 
 | 
         
        (25)Нет не работает....     
         | 
|||
| 
    31
    
        azernot    
     03.10.13 
            ✎
    14:36 
 | 
         
        (21)+100500     
         | 
|||
| 
    32
    
        Босечка    
     03.10.13 
            ✎
    14:37 
 | 
         
        (21) Там проверка стоит на ЧислоДней>0     
         | 
|||
| 
    33
    
        GANR    
     03.10.13 
            ✎
    14:40 
 | 
         
        (26)(27) Формат(ЧислоДней, "ЧГ=0"), но вроде (23) не подводило еще.     
         | 
|||
| 
    34
    
        бомболюк    
     03.10.13 
            ✎
    14:40 
 | 
         
        а че в (0) параметр "ПредпраздничныйДень" не назначается?     
         | 
|||
| 
    35
    
        GANR    
     03.10.13 
            ✎
    14:42 
 | 
         
        (30) А что пишет?     
         | 
|||
| 
    36
    
        Enders    
     03.10.13 
            ✎
    14:43 
 | 
         
        (15)(32) ну так там проверка стоит для формирования текста запроса.
 
        То есть число дней =0, текст запроса =""; А вот выполнить запрос оно всё равно пытается, вот и ошибка "ожидается выражение "Выбрать""  | 
|||
| 
    37
    
        azernot    
     03.10.13 
            ✎
    14:44 
 | 
         
        (32) Проверка срабатывает, текст запроса не присваивается.. Но выполнение запроса стоит за рамками проверки. Собственно на отсутствие текста запроса у вас 1С и ругается. Прямо так и говорит "ожидается выражение "Выбрать"     
         | 
|||
| 
    38
    
        VikingKosmo    
     03.10.13 
            ✎
    14:44 
 | 
         
        И все таки, а какое значение находится в переменной "ЧислоДней"?!     
         | 
|||
| 
    39
    
        catena    
     03.10.13 
            ✎
    14:44 
 | 
         
        ну да, (36) прав.     
         | 
|||
| 
    40
    
        Defender aka LINN    
     03.10.13 
            ✎
    14:45 
 | 
         
        (33) А я своими глазами видел. Любители СтрЗаменить долго на гуано исходили, отыскивая ошибку - на клиенте-то разделитель другой был.     
         | 
|||
| 
    41
    
        eklmn    
     гуру 
    03.10.13 
            ✎
    14:47 
 | 
         
        | ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ "+ЧислоДней+",
 
        запятая!  | 
|||
| 
    42
    
        eklmn    
     гуру 
    03.10.13 
            ✎
    14:47 
 | 
         
        вру!     
         | 
|||
| 
    43
    
        Enders    
     03.10.13 
            ✎
    14:48 
 | 
         
        (41) зачем запятая?Оо     
         | 
|||
| 
    44
    
        eklmn    
     гуру 
    03.10.13 
            ✎
    14:48 
 | 
         
        (43) смотри(42)     
         | 
|||
| 
    45
    
        eklmn    
     гуру 
    03.10.13 
            ✎
    14:49 
 | 
         
        все херню лепят, я тоже решил влепить     
         | 
|||
| 
    46
    
        GANR    
     03.10.13 
            ✎
    14:52 
 | 
         
        (0) Вот так должно работать в УПП
 
        Функция ОпределитьДатуИ(ДатаНач,ЧислоДней) экспорт Запрос1 = Новый Запрос; Если ЧислоДней>0 тогда Запрос1.Текст=" |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " +Формат(ЧислоДней, "ЧГ=0") + " | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря, | РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря > &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня.Ссылка = &ПредпраздничныйДень) | |УПОРЯДОЧИТЬ ПО | ДатаКалендаря |"; Конецесли; Запрос1.УстановитьПараметр("ДатаНач", ДатаНач); Запрос1.УстановитьПараметр("ЧислоДней", ЧислоДней); Запрос1.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий); Запрос1.УстановитьПараметр("ПредпраздничныйДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный); Выборка = Запрос1.Выполнить().Выбрать(); Если Выборка.Количество() = ЧислоДней тогда Пока Выборка.Следующий() цикл ТекДата=Выборка.ДатаКалендаря; Конеццикла; Возврат ТекДата; Конецесли; Возврат Неопределено; Конецфункции  | 
|||
| 
    47
    
        Шапокляк    
     03.10.13 
            ✎
    15:03 
 | 
         
        Запрос1.Текст="
 
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " +Формат(ЧислоДней, "ЧГ=0") + " | .... вот так точно заработает  | 
|||
| 
    48
    
        GANR    
     03.10.13 
            ✎
    15:05 
 | 
         
        (47) Там вдобавок еще и параметр запроса "ПредпраздничныйДень" не устанавливается - вообще ошибка на ошибке. Я у себя (46) на старой конфигурации УПП 1.2. отладил - работает нормально.     
         | 
|||
| 
    49
    
        azernot    
     03.10.13 
            ✎
    15:08 
 | 
         
        (48) Отладил, говоришь? Передай число дней = 0 ;)     
         | 
|||
| 
    50
    
        Шапокляк    
     03.10.13 
            ✎
    15:08 
 | 
         
        Да тут программа, наверно, не очень хорошо реагирует на то, что текст запроса с "|" начинается, а в текст запроса я как-то не вникала     
         | 
|||
| 
    51
    
        GANR    
     03.10.13 
            ✎
    15:18 
 | 
         
        (49) Атас... Знаю как исправить, но говорить не буду - хватит с меня.     
         | 
|||
| 
    52
    
        Sabbath    
     03.10.13 
            ✎
    15:18 
 | 
         
        Если не найдено "выбрать", то либо текст запроса пустой, либо кривой. Пустой будет если число дней <= 0, а кривизну можно проверить, получив текст запроса в отладчике, визуально или засунув его в консоль     
         | 
|||
| 
    53
    
        Шапокляк    
     03.10.13 
            ✎
    15:28 
 | 
         
        Запрос должен начинаться с "Выбрать", а не с "|Выбрать".     
         | 
|||
| 
    54
    
        Sabbath    
     03.10.13 
            ✎
    15:29 
 | 
         
        (53) не, должно и с | работать нормально     
         | 
|||
| 
    55
    
        catena    
     03.10.13 
            ✎
    15:30 
 | 
         
        (53)А он в сабже начинается с 
 
        " |Выбрать...  | 
|||
| 
    56
    
        GANR    
     03.10.13 
            ✎
    15:30 
 | 
         
        (53) Это-то работает - запрос на самом деле начинается с 
 
        " |  | 
|||
| 
    57
    
        GANR    
     03.10.13 
            ✎
    15:34 
 | 
         
        Буквально   В С Ё   неправильно в такой крохотной процедуре:
 
        - текст запроса собирается неправильно - параметр не устанавливается - число 0 не отрабатывается  | 
|||
| 
    58
    
        Шапокляк    
     03.10.13 
            ✎
    15:35 
 | 
         
        (56) Вот у меня когда перед "ВЫбрать" "|" - точно не работает, а когда нет этой штуки - работает, если собран нормально     
         | 
|||
| 
    59
    
        catena    
     03.10.13 
            ✎
    15:36 
 | 
         
        (58)Ты путаешь
 
        "|... и " |...  | 
|||
| 
    60
    
        Шапокляк    
     03.10.13 
            ✎
    15:38 
 | 
         
        (59) Они реально разные, но перед Выбрать не должно быть слэша.     
         | 
|||
| 
    61
    
        GANR    
     03.10.13 
            ✎
    15:43 
 | 
         
        (58)(60) Зайдите в УПП 1.2(ну или 1.3), вставьте (46) - будет видно, что 
 
        " |ВЫБРАТЬ ... после переноса строки работает нормально. А если исправить вот так "|ВЫБРАТЬ ... - работать уже не будет  | 
|||
| 
    62
    
        catena    
     03.10.13 
            ✎
    15:44 
 | 
         
        (60)Да, слэш действительно лучше не ставить :) Но вот пайп во втором случае будет восприниматься как перевод строки и никаком коду не мешает.     
         | 
|||
| 
    63
    
        Шапокляк    
     03.10.13 
            ✎
    15:44 
 | 
         
        (59) Впрочем, была неправа, работает и со слэшем после пустой строки.     
         | 
|||
| 
    64
    
        Sabbath    
     03.10.13 
            ✎
    15:47 
 | 
         
        (63) вот у меня конструктор открывает что так что так, а значит, должно работать     
         | 
|||
| 
    65
    
        GANR    
     03.10.13 
            ✎
    15:51 
 | 
         
        (64) Неа, если сделать вот так "|ВЫБРАТЬ - пишет "Не найден текст запроса"     
         | 
|||
| 
    66
    
        Sabbath    
     03.10.13 
            ✎
    15:53 
 | 
         
        (65) а, если так то да, этот символ же при переносе строки нужен, а после кавычек ставить бредово, тогда | в строку войдет как символ. Но у автора не так.     
         | 
|||
| 
    67
    
        Wobland    
     03.10.13 
            ✎
    15:57 
 | 
         
        феерично. 60 постов об одном и том же и пара-тройка класса "не работает"     
         | 
|||
| 
    68
    
        Босечка    
     03.10.13 
            ✎
    18:07 
 | 
         
        (46) Все равно не работает...     
         | 
|||
| 
    69
    
        GROOVY    
     03.10.13 
            ✎
    18:14 
 | 
         
        Прошло 4 часа. Не отладить такой код за 4 (ЧЕТЫРЕ) часа?! Что Вы делаете в профессии?     
         | 
|||
| 
    70
    
        GROOVY    
     03.10.13 
            ✎
    18:15 
 | 
         
        Какое вхождение имеет параметр "ЧислоДней" когда "все равно не работает"?     
         | 
|||
| 
    71
    
        Босечка    
     03.10.13 
            ✎
    18:29 
 | 
         
        ЧислоДней имеет значение целого числа.     
         | 
|||
| 
    72
    
        GROOVY    
     03.10.13 
            ✎
    18:31 
 | 
         
        (71) Если не секрет, какое число?     
         | 
|||
| 
    73
    
        Wobland    
     03.10.13 
            ✎
    18:33 
 | 
         
        (72) что, как маленький? ноль после запятой     
         | 
|||
| 
    74
    
        Wobland    
     03.10.13 
            ✎
    18:33 
 | 
         
        тут в текст запроса надо смотреть, сразу просветление настанет     
         | 
|||
| 
    75
    
        GANR    
     03.10.13 
            ✎
    18:44 
 | 
         
        (69) +1. Честное слово. Лучше промолчу...     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |