8.х Запрос - найти документы которые не делают нужные записи в регистр накопления

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Franc333_2008, 12 ноя 2009.

  1. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте пишу запросик который должен выдавать номера документов ( расходная накладная)
    которые не делают положительной записи (приход) в регистр Партии Номенклатуры ( чтобы не просматривать глазами тысячи документов за более чем полгода).

    Суть запроса как я понимаю в следующем:
    а)перебор по расходным накладным у которых контрагент = Центр
    и табличная часть.номенклатура = такой-то товар (Просто при анализе я нахожу сначала товар с которым у меня проблема и затем у же просматриваю все расходники в которых он присутствует) . Нашел рн - затем подчиненный запрос по регистру накопления - есть ли по этому документу в этом регистре положительные записи .

    нашел на каком-то форуме про вид движения в регистре

    КОГДА ОстаткиНоменклатуры.ВидДвижения = &Приход
    КОГДА ОстаткиНоменклатуры.ВидДвижения <> &Приход

    но не знаю это правильно ? почему параметр ?


    б) Но тут есть другой момент в расходной накладной есть поле номер по которому я и пытаюсь объединить эти 2 запроса - а регистре колонки номер нет ( там есть документ регистратор = расходная накладная и номер ) . Можно как-либо способом выбирать подстроку ?

    допустим

    номер = Формат( документ регистратор , с21 символа по 31й)

    ????????????????????????????????????????????????????????
    Подскажите пожалуйста ?
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Так почему по номеру соединяешь? соединяй по ссылка - регистратор. А почему расходная накладная делает приход, если должна делать расход? Конфигурация какая?
  3. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!

    Давайте договоримся с Вами так, Вы четко описываете проблему, желательно со скринами, а я в свою очередь, помогу Вам её решить.

    Удачи!
  4. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Для Стэк_ джи

    Конфигурация астор 8ка
    Вся проблемма состоит в том что если в периферийной базе сделали какие-либо исправления задним периодом то при перевыгрузке в центр накладные которым не хватает товара "приезжают" без движений в плюс по регистру партии номенклатуры .
    И чтобы понять какая накладная из периферийной базы "приехала" пустой
    можно пойти 2мя путями
    1) заходить в каждую расходную накладную смотреть её движения по регистру - ( плохой вариант)

    2) через запрос получить номера накладных у которых в этом регистре нет положительных записей !!!!( то чего я и хочу)

    Как я слышал в конфигурации Управлении Производственным предприятием 8.1 есть такая же проблемма - по описанию понял что это одно и то же !


    Вот сейчас запощу текст запроса который я пытался сделать - может это внесет ясность .


    Миалорду - с картинками не получится . С добавленными мною пояснениями - ситуация более понятна ?
  5. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Как я понял это должно подойти:
    Код:
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Ссылка
    |ИЗ
    |    (ВЫБРАТЬ
    |        РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    |        ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.Регистратор, ЛОЖЬ) КАК ЕстьДвижение
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты
    |            ПО РеализацияТоваровУслуг.Ссылка = ПартииТоваровНаСкладахОбороты.Регистратор
    |    ГДЕ
    |        РеализацияТоваровУслуг.Проведен) КАК ВложенныйЗапрос
    |ГДЕ
    |    ВложенныйЗапрос.ЕстьДвижение = ЛОЖЬ"
    
    
    Ну только поправь документ и регистр.
    Выводится проведенный документ, который по идее должен двигать по этому регистру, но по нему не двинул,.
  6. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Пардон посмотрел регистр в нём не оказалось поля документ регистратор - но при постоении запроса есть характеристика ссылка- владелец - может это нужно ?

    Для Стэк-джи

    Посмотрел ваш запрос - спасибо - но похоже не подойдет - он ведь двигает !!!( а не совсем не двигает) расходует со своего склада но не приходует на центральный .

    Он делает движения в любом случае но вместо 2х одно ( расход со своего склада и не делает приход на склад Центра !)
  7. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    теперь понятно, что это перемещение ) регистратор будет, если установишь как у меня параметры виртуальной таблицы.
  8. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    у меня почему-то :unsure: :smile: сообщения не появляются........................

    Сейчас проверю !!!!
  9. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Попробуй так:
    Код:
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Ссылка
    |ИЗ
    |    (ВЫБРАТЬ
    |        РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    |        МАКСИМУМ(ВЫБОР
    |                КОГДА ПартииТоваровНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    |                    ТОГДА ИСТИНА
    |                ИНАЧЕ ЛОЖЬ
    |            КОНЕЦ) КАК ЕстьПриход
    |    ИЗ
    |        РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
    |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |            ПО ПартииТоваровНаСкладах.Регистратор = РеализацияТоваровУслуг.Ссылка
    |    ГДЕ
    |        РеализацияТоваровУслуг.Проведен
    |    
    |    СГРУППИРОВАТЬ ПО
    |        РеализацияТоваровУслуг.Ссылка) КАК ВложенныйЗапрос
    |ГДЕ
    |    (НЕ ВложенныйЗапрос.ЕстьПриход)
    </span>
    
    </FONT></FONT></pre>
  10. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    я еще не проверил - времени пока нет .............
  11. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Только что проверил !

    Пишет что :unsure:
    Поле не найдено Партии НоменклатурыОбороты .ВидДвижения«» - ругается именно на вид движения !

    ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка
    ИЗ
    (ВЫБРАТЬ
    РасходнаяНакладная.Ссылка КАК Ссылка,
    МАКСИМУМ(ВЫБОР
    КОГДА ПартииНоменклатурыОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ) КАК ЕстьПриход
    ИЗ
    РегистрНакопления.ПартииНоменклатуры.Обороты КАК ПартииНоменклатурыОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ПО ПартииНоменклатурыОбороты.Регистратор = РасходнаяНакладная.Ссылка
    ГДЕ
    РасходнаяНакладная.Проведен

    СГРУППИРОВАТЬ ПО
    РасходнаяНакладная.Ссылка) КАК ВложенныйЗапрос
    ГДЕ
    (НЕ ВложенныйЗапрос.ЕстьПриход)


    наверное у вас другая структура регистра накопления ? или я чего-то не понимаю ! :smile:
  12. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    А так?
    Код:
     ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка
    ИЗ
    (ВЫБРАТЬ
    РасходнаяНакладная.Ссылка КАК Ссылка,
    МАКСИМУМ(ВЫБОР
    КОГДА ПартииНоменклатурыОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ) КАК ЕстьПриход
    ИЗ
    РегистрНакопления.ПартииНоменклатуры КАК ПартииНоменклатурыОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ПО ПартииНоменклатурыОбороты.Регистратор = РасходнаяНакладная.Ссылка
    ГДЕ
    РасходнаяНакладная.Проведен
    
    СГРУППИРОВАТЬ ПО
    РасходнаяНакладная.Ссылка) КАК ВложенныйЗапрос
    ГДЕ
    (НЕ ВложенныйЗапрос.ЕстьПриход)
    
  13. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    А вообще, если ты уверен, что документы двигают Расход, то нечто вроде:
    Код:
    ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка
    ИЗ
    (ВЫБРАТЬ
    ПартииНоменклатурыОбороты.Регистратор КАК Ссылка,
    МАКСИМУМ(ВЫБОР
    КОГДА ПартииНоменклатурыОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ) КАК ЕстьПриход
    ИЗ
    РегистрНакопления.ПартииНоменклатуры КАК ПартииНоменклатурыОбороты
    СГРУППИРОВАТЬ ПО
    ПартииНоменклатурыОбороты.Регистратор) КАК ВложенныйЗапрос
    ГДЕ
    (НЕ ВложенныйЗапрос.ЕстьПриход)
    
  14. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    :unsure: Результат получен . Скажите пожалуйста - разница м/у тем что я написал и что вы прислали
    состояла
    в том что вы написали наименование регистра ПартииНоменклатуры а не ПартииНоменклатурыОбороты
    и всё - может я ещё чего не заметил ? (использовал ваш код из сообщения за 16-13) .

    Сейчас доработаю под себя условия - но результат уже выводится . :smile:
  15. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    [ИмяРегистраСведений].Обороты, [ИмяРегистраСведений].Остатки - виртуальные таблицы, [ИмяРегистраСведений] - "реальная таблица". Покопайся в литературе по этому поводу, если интересует.
  16. TopicStarter Overlay
    Franc333_2008
    Offline

    Franc333_2008 Опытный в 1С

    Регистрация:
    12 ноя 2009
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Выкладываю текст запроса который меня устроил . Спасибо большое за помощь и ссылку на материал про виртуальные и реальные таблицы !

    Код:
    ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка
    ИЗ
    (ВЫБРАТЬ
    РасходнаяНакладная.Ссылка КАК Ссылка,
    МАКСИМУМ(ВЫБОР
    КОГДА ПартииНоменклатурыОбороты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ) КАК ЕстьПриход
    ИЗ
    РегистрНакопления.ПартииНоменклатуры КАК ПартииНоменклатурыОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ПО ПартииНоменклатурыОбороты.Регистратор = РасходнаяНакладная.Ссылка
    ГДЕ
    РасходнаяНакладная.Проведен И
    РасходнаяНакладная.Контрагент = &ЦентральныйОфис
    
    СГРУППИРОВАТЬ ПО
    РасходнаяНакладная.Ссылка) КАК ВложенныйЗапрос
    ГДЕ
    (НЕ ВложенныйЗапрос.ЕстьПриход)
    
    
    
    

Поделиться этой страницей