Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как получить записи одного регистра накопления отсутствующие в другом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Vidocq05
Есть два регистра накопления с полями Регистратор, Склад, Номенклатура. Документ всегда делает все записи в Регистр1, но может делать не все записи в Регистр2. Как мне запросом получить записи из Регистр1 которых нет в Регистр2? Надеюсь понятно объяснил. smile.gif
podcast
Vidocq05 @ Сегодня, 12:08 необходимо зарегистрироваться для просмотра ссылки ,
Делаете запрос по Регистру 2 помещаете его в ВТ, потом выбираете данные из Регистра 1, и в условие ставьте галку вручную нажимаете ПКМ Конструктор запрос выбираете данные из своей ВТ и ставите Не В.
Регистр1.Регистратор НЕ В (
Выбрать ВТ.Регситратор
Из ВТ)
Vidocq05
podcast @ Сегодня, 12:12 необходимо зарегистрироваться для просмотра ссылки ,
Ну может не совсем понятно объяснил. Например: В Регистре2 есть 4 записи с одинаковым регистратором но с разной номенклатурой и складами. В Регистре1 тоже есть такие же записи и есть еще одна запись с тем же регистратором но с другой номенклатурой и складом. Как мне ее получить? Т.е. сопоставление должно быть и по регистратору и по складу и по номенклатуре, а не только по регистратору как в Вашем примере.
podcast
Vidocq05 @ Сегодня, 12:25 необходимо зарегистрироваться для просмотра ссылки ,
Тогда попробуйте через связь где
Левое соединение
Регистр1.Номенклатура <> Регистр2.Номенклатура
И Регистр1.Склад <> Регистр2.Склад
И Регистр1.Регистратор = Регистр2.Регистратор

Petre
Vidocq05
podcast @ Сегодня, 13:47 необходимо зарегистрироваться для просмотра ссылки ,
Пробовал и так. В моем случае нужно
Левое соединение
Регистр1.Номенклатура <> Регистр2.Номенклатура
И Регистр1.Склад <> Регистр2.Склад
И Регистр1.Регистратор <> Регистр2.Регистратор

Пишет, что не хватает памяти и выкидывает с 1С.
pablo
Регистр1 Левое соединение Регистр2 по Регистр1.Номенклатура = Регистр2.Номенклатура  И Регистр1.Склад = Регистр2.Склад И Регистр1.Регистратор = Регистр2.Регистратор
и Регистр2.Регистратор IS NULL

Vidocq05
Petre @ Сегодня, 13:52 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо. Получилось. Кому интересно, вот код:
ВЫБРАТЬ
    Регистр1Обороты.Регистратор,
    Регистр1Обороты.Склад,
    Регистр1Обороты.Номенклатура,
    Регистр1Обороты.КоличествоОборот
ИЗ
    РегистрНакопления.Регистр1.Обороты(, , Регистратор, ) КАК Регистр1Обороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Регистр2.Обороты(, , Регистратор, ) КАК Регистр2Обороты
        ПО Регистр1Обороты.Регистратор = Регистр2Обороты.Регистратор
            И Регистр1Обороты.Склад = Регистр2Обороты.Склад
            И Регистр1Обороты.Номенклатура = Регистр2Обороты.Номенклатура
ГДЕ
    Регистр2Обороты.Регистратор ЕСТЬ NULL
    И Регистр2Обороты.Номенклатура ЕСТЬ NULL
    И Регистр2Обороты.Склад ЕСТЬ NULL
pablo
P.S. Первая картинка во втором ряду
Petre
Vidocq05 @ Сегодня, 14:28 необходимо зарегистрироваться для просмотра ссылки ,
ВЫБРАТЬ
    Регистр1.Регистратор КАК Регистратор,
    Регистр1.Склад КАК Склад,
    Регистр1.Номенклатура КАК Номенклатура
ИЗ
    РегистрНакопления.Регистр1 КАК Регистр1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Регистр2 КАК Регистр2
        ПО Регистр1.Регистратор = Регистр2.Регистратор
            И Регистр1.Склад = Регистр2.Склад
            И Регистр1.Номенклатура = Регистр2.Номенклатура
ГДЕ
    Регистр2.Регистратор ЕСТЬ NULL


Пока писал, уже разобрались )))
Vidocq05
Petre @ Сегодня, 14:48 необходимо зарегистрироваться для просмотра ссылки ,
Можно и так )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.