|   |   | 
| 
 | Запрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        d3N4eGG 01.03.12✎ 13:13 | 
        Запрос "достает" Номер Договора из Справочника ДоговораКонтрагентор.
  Но достает самый первый созданный договор, а мне нужно достать самый последний (по дате). Как это сделать? Функция ВернутьНомерПоследнегоДоговора(Ссылка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка, | ДоговорыКонтрагентов.Владелец, | ДоговорыКонтрагентов.НомерДоговора КАК НомерДоговора, | ДоговорыКонтрагентов.ДатаДоговора КАК ДатаДоговора |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ПО Контрагенты.ДоговорПоУмолчанию = ДоговорыКонтрагентов.Ссылка |ГДЕ | ДоговорыКонтрагентов.Владелец = &Ссылка | |УПОРЯДОЧИТЬ ПО | ДатаДоговора"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Возврат ВыборкаДетальныеЗаписи.НомерДоговора; КонецЦикла; КонецФункции | |||
| 1
    
        Wobland 01.03.12✎ 13:13 | 
        выбрать первый один, упорядоченный по дате убыв     | |||
| 2
    
        Wobland 01.03.12✎ 13:18 | 
        о боже, открыл запрос, и сразу вопрос не понял     | |||
| 3
    
        d3N4eGG 01.03.12✎ 13:19 | 
        :D но все же получилось, спасибо     | |||
| 4
    
        Assena 01.03.12✎ 13:20 | 
        а цикл зачем? если тока один нужен     | |||
| 5
    
        nuctoh 01.03.12✎ 13:21 | 
        Вообще, приведенный запрос попахивает кривизной и избыточностью:
  1. Контрагенты.Ссылка и ДоговорыКонтрагентов.Владелец - одно и то же лицо 2. Зачем вообще соединять слева контрагента с договором? 3. Если уж соединение слева - необходимость, продиктованная выбором контрагента в любом случае, а договора - при его наличии, то и условие должно ставиться именно на контрагента | |||
| 6
    
        НЕА123 01.03.12✎ 13:21 | 
        (2)
  че-то я поплыл... вроде в (0) возврат ссылка.ДоговорПоУмолчанию.НомерДоговора; достаточно? | |||
| 7
    
        d3N4eGG 01.03.12✎ 13:22 | 
        ладн, сейчас, будем исправлять, спасибо.     | |||
| 8
    
        Wobland 01.03.12✎ 13:23 | 
        (6) имхается мне, что ему достаточно просто читать поле ДоговорПоУмолчанию. без всяких функций     | |||
| 9
    
        d3N4eGG 01.03.12✎ 13:26 | 
        Я еще не до конца разобрался с запросами, поэтому так вышло. 
  В общем, надо из справочника ДоговорыКонтрагентов выбрать номер последнего договора этого контрагента. как правильно запрос будет выглядить? | |||
| 10
    
        nuctoh 01.03.12✎ 13:27 | 
        Этот код решает?
  Функция ВернутьНомерПоследнегоДоговора(Ссылка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ДоговорыКонтрагентов.НомерДоговора |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Владелец | |УПОРЯДОЧИТЬ ПО | ДоговорыКонтрагентов.ДатаДоговора УБЫВ"; Запрос.УстановитьПараметр("Владелец", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Возврат ?(Выборка.Следующий(), Выборка.НомерДоговора, Неопределено); КонецФункции | |||
| 11
    
        Assena 01.03.12✎ 13:29 | 
        садись, Пять))     | |||
| 12
    
        d3N4eGG 01.03.12✎ 13:30 | 
        Спасибо =D     | |||
| 13
    
        Wobland 01.03.12✎ 13:33 | 
        (9) скажи мне, пожалуйста, номер тебе зачем? вот подозреваю отчего-то, что договор у тебя в голове представляется в виде номера, хотя правильней было бы воспринимать его как ссылку     | |||
| 14
    
        palpetrovich 01.03.12✎ 13:39 | 
        сорьки, офФ-топик: народ, а что такое     |ВЫБРАТЬ ПЕРВЫЕ 1 1
  в чем суть? | |||
| 15
    
        Wobland 01.03.12✎ 13:40 | 
        (14) возвращает только первую строку. с любовью, Капитан О     | |||
| 16
    
        palpetrovich 01.03.12✎ 13:41 | 
        (15) хм, таки не понял, а в чем отличие от  |ВЫБРАТЬ ПЕРВЫЕ 1 ?     | |||
| 17
    
        Wobland 01.03.12✎ 13:41 | 
        palpetrovich, у тебя аккаунт спёрли или это весна влияет? ;)     | |||
| 18
    
        Wobland 01.03.12✎ 13:42 | 
        (16) первые 1<пробел>1 синтаксически неверно     | |||
| 19
    
        d3N4eGG 01.03.12✎ 13:44 | 
        (13) В данном случае, номер договора - это его наименование, которое в ручную вводится. Это не внутренний идентификатор или что-то такое. Мне именно название нужно было.     | |||
| 20
    
        НЕА123 01.03.12✎ 13:45 | 
        (18)
  "ВЫБРАТЬ ПЕРВЫЕ 1 1 |КАК Поле1 ? | |||
| 21
    
        palpetrovich 01.03.12✎ 13:45 | 
        (18) БП для Ураины, 
  Функция ПравилаКонвертацииОбъектовДляПланаОбменаЗагружены(Знач ИмяПланаОбмена) Экспорт ТекстЗапроса = " |ВЫБРАТЬ ПЕРВЫЕ 1 1 |ИЗ | РегистрСведений.ПравилаДляОбменаДанными КАК ПравилаДляОбменаДанными |ГДЕ | ПравилаДляОбменаДанными.ВидПравил = ЗНАЧЕНИЕ(Перечисление.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов) | И ПравилаДляОбменаДанными.ПравилаЗагружены | И ПравилаДляОбменаДанными.ИмяПланаОбмена = &ИмяПланаОбмена |"; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("ИмяПланаОбмена", ИмяПланаОбмена); Возврат Не Запрос.Выполнить().Пустой(); КонецФункции | |||
| 22
    
        palpetrovich 01.03.12✎ 13:46 | 
        (20) а, последняя "1" - это наименование поля, да?     | |||
| 23
    
        НЕА123 01.03.12✎ 13:48 | 
        (21)
  есть хотя бы одна запись. | |||
| 24
    
        НЕА123 01.03.12✎ 13:48 | 
        (22)
  значение поля. проверка, есть хотя бы одна запись. | |||
| 25
    
        Wobland 01.03.12✎ 13:50 | 
        (20) согласен     | |||
| 26
    
        palpetrovich 01.03.12✎ 13:56 | 
        (23)(24) все равно туплю, так что-ли? 
  |ВЫБРАТЬ ПЕРВЫЕ 1 |1 КАК КакХочуТакИНазову | |||
| 27
    
        Wobland 01.03.12✎ 14:00 | 
        (26) ну. будет тебе поле КакХочуТакИНазову, содержащее единицу. первые 1 в этом случае лишнее     | |||
| 28
    
        НЕА123 01.03.12✎ 14:01 | 
        (26)
  ага. | |||
| 29
    
        НЕА123 01.03.12✎ 14:02 | 
        +(28)
  проверил - поле1 получается. | |||
| 30
    
        palpetrovich 01.03.12✎ 14:04 | 
        спасибо     | |||
| 31
    
        Wobland 01.03.12✎ 14:05 | 
        (29) проверил, получается КакХочуТакИНазову     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |