Как отследить последний проход цикла? #803460


#0 by svird
Леплю в запросе такую конструкцию: Ругается на последнее ИЛИ
#1 by Вафель
трезай последние ххх символов
#2 by h-sp
Если Инд = СписокОбрабатываемыхДокументов.Количество-1 Тогда Запрос.Текст = Запрос.Текст + " ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение; Иначе             Запрос.Текст = Запрос.Текст + " ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение + " ИЛИ ";
#3 by svird
Спасибо
#4 by FIXXXL
лучше переопределяй текст " ИЛИ " по условию ибо потом глаза сломаешь сопровождать такие дубли типа Запрос.Текст = Запрос.Текст + " ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение; Иначе             Запрос.Текст = Запрос.Текст + " ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение + " ИЛИ "; типа: Запрос.Текст = Запрос.Текст + " ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение + ТекстИЛИ;
#5 by vde69
#6 by Злопчинский
Цикл
#7 by Галахад
А последнее или? :-)
#8 by Timon1405
в типовых есть
#9 by VladZ
Поставь "ИЛИ вначале: + "ИЛИ ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение;
#10 by Лефмихалыч
Хосспади!
#12 by Злопчинский
ну так как раз отрезаем последнее ИЛИ после которого ничего не идет
#13 by singlych
ГДЕ ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор) В (&МассивТипов)
#14 by Злопчинский
опоздун! ;-)
#15 by Вафель
нельзя так ибоусловие будет начинаться с ИЛИ
#16 by 1dvd
там СокрЛП
#17 by Вафель
За такое использование хаков нужно по рукам линейкой
#18 by Basilio
НачалоЦикла ... ... КонецЦикла
#19 by Злопчинский
Флаг = 3-Флаг - 5 лет без права переписки?
#20 by Лефмихалыч
можно. Не будет. Потому что СокрЛП.
#21 by Fragster
текст = "...
#22 by Fragster
ну, или воспользоваться функцией СтрСоединить(<Строки>, <Разделитель>) с массивом условий
#23 by Лефмихалыч
это за 10 строк там, где хватит и одной, надо по рукам линейкой
#24 by Вафель
Читабельность важнее минимального количества строк
#25 by Лефмихалыч
одна строчка в десять раз читабельнее десяти. Особенно, когда речь про образчики из этой ветки
#26 by Fragster
ну а вообще за формирование текст запроса через соединение строк - сразу по рукам линейкой. Есть за СтрЗаменить(Запрос.Текст, "&_УсловиеТипов", СформированнаяСтрокаУсловия)
#27 by Лефмихалыч
У дельфина вообще - 50 сантиметров. Расходимся
#28 by Вафель
далеко не факт
#29 by Вафель
Эта задача решается на СКД вообще без всякого кода
#30 by lexasan
Внесу свою лепту Для Инд = 0 По СписокОбрабатываемыхДокументов.Количество-1 Цикл     Запрос.Текст = Запрос.Текст + ?(Инд=0, "", " ИЛИ ") +" ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ."+ СписокОбрабатываемыхДокументов.Получить(Инд).Значение; КонецЦикла;
#31 by Лефмихалыч
или на построителе хотя б. Но бывает, что нагородить вот такой частокол эффективнее, чем существующий 100500лет механизм на скд переводить
#32 by Базис
ГДЕ    Ложь (Или 1 условие) (Или 1 условие) ... (Или N условие)
#33 by Вафель
технический долг потом скажет о себе
#34 by dmpl
Добавь в конце ИСТИНА.
#35 by 1dvd
Садись, два!
#36 by dmpl
Эх, вот зачем ты? Я же научить хотел ;)
#37 by dmpl
+ И да, цель-то будет достигнута - на последнее ИЛИ ругаться перестанет :)
#38 by Быдло замкадное
Добавь в конце  + " ЛОЖЬ"
#39 by 1dvd
<Любое условие> ИЛИ ИСТИНА всегда вернёт истину
#40 by r_i_n_i_k
Тогда ЛОЖЬ подойдёт же
#41 by Мыш
Конструктор запросов решит проблему )
#42 by dmpl
Дык нельзя же готовое на блюдечке подавать - надо чтобы и ТС немного подумал ;)
#43 by Интересно интересно
Нет. Его забанили: Запросов
#44 by 1dvd
Чем тут КЗ поможет?
#45 by Segate
а зачем отслеживать последнее или, когда можно отследить первый прогон? Конецесли и будет тебе счастье... не?
#46 by Рэйв
У него это ИЛИ должно в последнем не ставиться:)
#47 by Злопчинский
какая нафиг разница - отслеживать первый или последний?
#48 by vde69
самое простое решение уже давно было... например в
#49 by Segate
ну... последний прогон в цикле "Пока" ты толком не отследишь без доп манипуляций типа вычисления количества итераций цикла заранее... а так ничего вычеслять не надо и от количества итераций ничего не зависит...
#50 by Segate
просто добавить ложь - это не спортивно же xD
#51 by Asmody
Для кого в 1С схему запроса придумали?
#52 by Мыш
Ошибся. Схема, конечно же. Для тех, кто читает документацию.
#53 by Мыш
Отбор (Filter) Использование: Только чтение. Описание: Тип: ВыраженияСхемыЗапроса. Содержит выражения отбора. Соответствует выражению ГДЕ языка запросов. Доступность: Сервер, толстый клиент, внешнее соединение.
#54 by Fragster
схема запроса относительно СКД недоделанная, причем очень сильно. построитель и СтрЗаменить (когда его не хватает) намного меньше букв требуют и проще для дальнейшего сопровождения.
#55 by Мыш
Грузовик КамАЗ сильно недоделан относительно роторного экскаватора.
#56 by Fragster
ну вот, например, кусок для обновления одной записи РС без её чтения через менеджер:
#57 by 1dvd
развели, блин, демагогию
#58 by Вафель
А зачем так? Почему бы стразу звездочку не на написать?
#59 by Мыш
Можно накидать обратных примеров. Но какой смысл? Инструмент подбирается под задачу. И если он не подходит к энному количеству задач, то не значит, что он в принципе не годится. Не говоря уж о том, что "недоделан". Топор недоделан, пилить не может.
#60 by Fragster
потому что как только ты воспользуешься конструктором - звездочка превратится в тыкву. А потом ты превратишься в тыкву после добавления или удаления поля в регистр
#61 by Мыш
на , конечно
#62 by Fragster
Ну накидай. пока нашел одно использование, где без нее никак (ну, или сильно сложнее) - это удаление прям целых таблиц из запросов (например для запроса ДС с колонкой внешних пользователей для пользователей, у которых нет доступа к внешним пользователям). Но из-за того, что для этого нужно делать кучу циклов в циклах, это также неудобно. Да и случай не самый частый.
#63 by Вафель
Зачем конструктором такой простой запрос?
#64 by Fragster
во первых, он не простой - из него вырезаны куски получения обновленных значений для полей РС. во вторых - конструктор - самый простой способ проверить запрос на корректность и отформатировать его.
#65 by Мыш
Программное добавление своего поля в запрос динамического списка.
#66 by Мыш
+ > Да и случай не самый частый Я и не пишу, что это исключительный инструмент. Но своя область применения есть.
#67 by Fragster
ИМХО, в случай, когда схема запроса проигрывает СтрЗаменить ;)
#68 by Мыш
Это уже дискутабельно ;)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С