| 
    
        
     
     | 
    
  | 
Запрос в динамическом списке | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        rowflag    
     21.03.13 
            ✎
    19:55 
 | 
         
        Почему не работает? (работает в консоли запросов)
  
        ВЫБРАТЬ картриджи_СвободноеДвижениеТЧСписок.Номенклатура ПОМЕСТИТЬ СодержимоеТабличнойЧастиДокумента ИЗ Документ.картриджи_СвободноеДвижение.ТЧСписок КАК картриджи_СвободноеДвижениеТЧСписок ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО картриджи_СвободноеДвижениеТЧСписок.Ссылка = картриджи_СвободноеДвижение.Ссылка ГДЕ картриджи_СвободноеДвижение.Ссылка = &СсылкаНаДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ СодержимоеТабличнойЧастиДокумента КАК СодержимоеТабличнойЧастиДокумента ПО (СодержимоеТабличнойЧастиДокумента.Номенклатура В (ОстаткиНаСкладахОстатки.Номенклатура)) ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник И ЕстьNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура,0) = 0  | 
|||
| 
    1
    
        SherifSP    
     21.03.13 
            ✎
    19:58 
 | 
         
        Ошибка какая или ничего не выводит?     
         | 
|||
| 
    2
    
        rowflag    
     21.03.13 
            ✎
    20:00 
 | 
         
        Ошибка при выполнении запроса. Ошибка при выполнении запроса.
  
        по причине: {(1, 37)}: Поле не найдено "картриджи_СвободноеДвижениеТЧСписок.Дата" картриджи_СвободноеДвижениеТЧСписок.<<?>>Дата  | 
|||
| 
    3
    
        rowflag    
     21.03.13 
            ✎
    20:00 
 | 
         
        (и ничего не выводит:( )     
         | 
|||
| 
    4
    
        mistеr    
     21.03.13 
            ✎
    20:02 
 | 
         
        (0)(2) Показания не сходятся.     
         | 
|||
| 
    5
    
        rowflag    
     21.03.13 
            ✎
    20:04 
 | 
         
        (в том то и фиг)     
         | 
|||
| 
    6
    
        rowflag    
     21.03.13 
            ✎
    20:04 
 | 
         
        Может потому что пакетный запрос с динамическом списке не     
         | 
|||
| 
    7
    
        rowflag    
     21.03.13 
            ✎
    20:05 
 | 
         
        не     
         | 
|||
| 
    8
    
        rowflag    
     21.03.13 
            ✎
    20:05 
 | 
         
        не работает?     
         | 
|||
| 
    9
    
        palpetrovich    
     21.03.13 
            ✎
    20:05 
 | 
         
        может все-таки 
  
        ПО СодержимоеТабличнойЧастиДокумента.Номенклатура =ОстаткиНаСкладахОстатки.Номенклатура  | 
|||
| 
    10
    
        H A D G E H O G s    
     21.03.13 
            ✎
    20:07 
 | 
         
        (8) Работает, но основную таблицу во временную помещать нельзя.     
         | 
|||
| 
    11
    
        rowflag    
     21.03.13 
            ✎
    20:09 
 | 
         
        (10) а как надо?     
         | 
|||
| 
    12
    
        rowflag    
     21.03.13 
            ✎
    20:09 
 | 
         
        (у меня основная таблица указано "Документ.картриджи_СвободноеДвижение" )     
         | 
|||
| 
    13
    
        rowflag    
     21.03.13 
            ✎
    20:10 
 | 
         
        (9) да. Так и надо.     
         | 
|||
| 
    14
    
        rowflag    
     21.03.13 
            ✎
    20:12 
 | 
         
        (но результат тот же. Хотя прекрасно работает в КЗ)     
         | 
|||
| 
    15
    
        rowflag    
     21.03.13 
            ✎
    20:13 
 | 
         
        Про какую "дата" ругается - не понимаю...     
         | 
|||
| 
    16
    
        palpetrovich    
     21.03.13 
            ✎
    20:15 
 | 
         
        (13) а это зачем? И ЕстьNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура,0) = 0
  
        ососбенно если надо как (9)  | 
|||
| 
    17
    
        rowflag    
     21.03.13 
            ✎
    20:15 
 | 
         
        (16) чтобы выбрать только те, которых нет в табличной части.     
         | 
|||
| 
    18
    
        palpetrovich    
     21.03.13 
            ✎
    20:16 
 | 
         
        +16 и  наверное все-тки обращаться нужно к виртуальной  таблице - и эт туда уйдет   ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник     
         | 
|||
| 
    19
    
        rowflag    
     21.03.13 
            ✎
    20:17 
 | 
         
        (УФ если что)     
         | 
|||
| 
    20
    
        kosts    
     21.03.13 
            ✎
    20:18 
 | 
         
        Странный запрос. Зачем соединение в первом подзапросе. Зачем вообще первая часть?...
  
        По сабжу про Дату возможно система ожидает наличия некоторых обязательных полей в динамическом запросе, типа номер, дата, ссылка.  | 
|||
| 
    21
    
        rowflag    
     21.03.13 
            ✎
    20:21 
 | 
         
        (20) первая часть - получаем содержимое табличной части
  
        вторая часть получаем остатки на складе источнике и выводим те, которых нет в табличной части.  | 
|||
| 
    22
    
        kosts    
     21.03.13 
            ✎
    20:22 
 | 
         
        Предположу: или на форме в списке есть реквизит, в котором в свойстве Данные вписано "Дата".     
         | 
|||
| 
    23
    
        kosts    
     21.03.13 
            ✎
    20:24 
 | 
         
        (21) Это ясно из запроса, я про то, что не нужно явное соединение документа и его ТЧ.
  
        По этому можно всё сделать без первой части, подставив ТЧ сразу во второй подзапрос, вроде =)  | 
|||
| 
    24
    
        rowflag    
     21.03.13 
            ✎
    20:24 
 | 
         
        (22) не пойму. Как это влияет на запрос?     
         | 
|||
| 
    25
    
        rowflag    
     21.03.13 
            ✎
    20:25 
 | 
         
        (23) сейчас попробую сделать..     
         | 
|||
| 
    26
    
        kosts    
     21.03.13 
            ✎
    20:31 
 | 
         
        Не знаю точно, но вроде так, если основная таблица это документ, то запрос должен вернуть список в котором есть "ссылка на документ", которая притом не повторяется, иначе могут наблюдаться глюки при просмотре таких списков. (могу ошибаться).     
         | 
|||
| 
    27
    
        rowflag    
     21.03.13 
            ✎
    20:52 
 | 
         
        Вот так выводит только те, что в табличной части..
  
        ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО ОстаткиНаСкладахОстатки.Номенклатура = картриджи_СвободноеДвижение.ТЧСписок.Номенклатура ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = &СкладИсточник И картриджи_СвободноеДвижение.Номер = &Номер  | 
|||
| 
    28
    
        rowflag    
     21.03.13 
            ✎
    21:00 
 | 
         
        Удалил динамический список, создал его заново, заполним запросом из (0).
  
        Теперь выводит другую ошибку: Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Поле не найдено "Номенклатура"  | 
|||
| 
    29
    
        rowflag    
     21.03.13 
            ✎
    21:01 
 | 
         
        Указал основную таблицу: "Документ.картриджи_СвободноеДвижение" - стал также ругаться на "дату".     
         | 
|||
| 
    30
    
        kosts    
     21.03.13 
            ✎
    21:03 
 | 
         
        (29) Ну попробуй, добавь в запрос Дату документа.
  
        Дальше видно будет.  | 
|||
| 
    31
    
        rowflag    
     21.03.13 
            ✎
    21:06 
 | 
         
        Добавил
  
        ВЫБРАТЬ картриджи_СвободноеДвижениеТЧСписок.Номенклатура, картриджи_СвободноеДвижение.Дата ПОМЕСТИТЬ СодержимоеТабличнойЧастиДокумента ИЗ Документ.картриджи_СвободноеДвижение.ТЧСписок КАК картриджи_СвободноеДвижениеТЧСписок ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО картриджи_СвободноеДвижениеТЧСписок.Ссылка = картриджи_СвободноеДвижение.Ссылка ГДЕ картриджи_СвободноеДвижение.Номер = "000000153" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ СодержимоеТабличнойЧастиДокумента КАК СодержимоеТабличнойЧастиДокумента ПО (СодержимоеТабличнойЧастиДокумента.Номенклатура = ОстаткиНаСкладахОстатки.Номенклатура) ГДЕ ОстаткиНаСкладахОстатки.Склад.Наименование = "Для отправки в филиалы" И ЕСТЬNULL(СодержимоеТабличнойЧастиДокумента.Номенклатура, 0) = 0 Другая ошибка: Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: {(5, 38)}: Поле не найдено "картриджи_СвободноеДвижениеТЧСписок.ПометкаУдаления" картриджи_СвободноеДвижениеТЧСписок.<<?>>ПометкаУдаления,  | 
|||
| 
    32
    
        rowflag    
     21.03.13 
            ✎
    21:08 
 | 
         
        Мне кажется я неправильно пользуюсь динамическим списком..
  
        Ибо в КЗ этот запрос выводит все прекрасно. А именно номенклатуру на складе, которой нет в табличной части.  | 
|||
| 
    33
    
        kosts    
     21.03.13 
            ✎
    21:11 
 | 
         
        (31) Скорее всего система ожидает все типичные реквизиты документа, т.к. основная таблица - это документ.     
         | 
|||
| 
    34
    
        rowflag    
     21.03.13 
            ✎
    21:12 
 | 
         
        Как быть?     
         | 
|||
| 
    35
    
        kosts    
     21.03.13 
            ✎
    21:15 
 | 
         
        (34) По УФ мало подскажу, возможно основную таблицу нужно указать как РегистрНакопления.ОстаткиНаСкладах.Остатки если это возможно...     
         | 
|||
| 
    36
    
        rowflag    
     21.03.13 
            ✎
    21:16 
 | 
         
        (35) не возможно. Попробую вместо динамического списка использовать реквизит типа "таблицу значений".
  
        Только плохо что остатки не будут динамически обновляться.  | 
|||
| 
    37
    
        kosts    
     21.03.13 
            ✎
    21:21 
 | 
         
        (36) Плохо проверил, сейчас у себя глянул - вполне возможно указать основную таблицу, например, как РегистрНакопления.МестонахождениеН.Остатки пробуй     
         | 
|||
| 
    38
    
        rowflag    
     21.03.13 
            ✎
    21:23 
 | 
         
        С запросом из (0)?     
         | 
|||
| 
    39
    
        kosts    
     21.03.13 
            ✎
    21:24 
 | 
         
        (38) Ну примерно.     
         | 
|||
| 
    40
    
        rowflag    
     21.03.13 
            ✎
    21:26 
 | 
         
        (нет. Только документ..)     
         | 
|||
| 
    41
    
        rowflag    
     21.03.13 
            ✎
    21:26 
 | 
         
        (вот если бы избавиться от первой части....)     
         | 
|||
| 
    42
    
        rowflag    
     21.03.13 
            ✎
    21:27 
 | 
         
        (тогда можно было бы, наверное)     
         | 
|||
| 
    43
    
        kosts    
     21.03.13 
            ✎
    21:28 
 | 
         
        (41) Динамический список можно добавить в реквизиты формы руками.     
         | 
|||
| 
    44
    
        rowflag    
     21.03.13 
            ✎
    21:28 
 | 
         
        Начал пробовать. При этом запросе никаких ошибок нет, основная таблица - РН.Остатки, но он выводит содержимое табличной части.
  
        ВЫБРАТЬ ОстаткиНаСкладахОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.картриджи_СвободноеДвижение КАК картриджи_СвободноеДвижение ПО ОстаткиНаСкладахОстатки.Номенклатура = картриджи_СвободноеДвижение.ТЧСписок.Номенклатура ГДЕ ОстаткиНаСкладахОстатки.Склад = "Склад" И картриджи_СвободноеДвижение.Номер = "000000153"  | 
|||
| 
    45
    
        kosts    
     21.03.13 
            ✎
    21:29 
 | 
        
 
 Напиши словами, что должен вернуть запрос  | 
|||
| 
    46
    
        rowflag    
     21.03.13 
            ✎
    21:33 
 | 
         
        Выводит остатки на складе и все..     
         | 
|||
| 
    47
    
        rowflag    
     21.03.13 
            ✎
    21:42 
 | 
         
        (завтра еще поработаю над этим)     
         | 
|||
| 
    48
    
        rowflag    
     21.03.13 
            ✎
    21:43 
 | 
         
        Спасибо за помощь! Понял что дело в основной таблице.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |