Имя: Пароль:
1C
1С v8
Помогите с запросом
,
0 Krolik Bezobraznik
 
06.11.14
09:10
В запросах не силен, а потому подскажите или дайте направление.

Есть регистр накопления НезавершенноеПроизводствоБухгалтерский и есть док. Требование накладная. Необходимо найти доки за период, которые были проведены, но движение по этому регистру не сделали. Произошло по причине неверно указанного счета затрат в ТЧ Материалы.

У меня в результате запроса или все записи (которые сделали движение и не сделали) или только те, которые сделали движение

вот мой запрос

ВЫБРАТЬ
    ТребованиеНакладная.Ссылка,
    НезавершенноеПроизводствоБухгалтерскийУчет.Регистратор
ИЗ
    РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет КАК НезавершенноеПроизводствоБухгалтерскийУчет
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная
        ПО НезавершенноеПроизводствоБухгалтерскийУчет.Регистратор = ТребованиеНакладная.Ссылка
ГДЕ
    ТребованиеНакладная.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаН, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаК, ДЕНЬ)
    И ТребованиеНакладная.Проведен
1 Юзер123
 
naïve
06.11.14
09:13
запросом принципиально? Сделай выборку по регистру за период , запиши данные в таблицу 1.


Сделай выборку по документам за период проведенным не помеченным и запици данные в тз2.


Потом  циклом по Тз2 отбирай доки которых нет в тз1
2 butterbean
 
06.11.14
09:13
нужно ВЫБРАТЬ ... ИЗ Документ.ТребованиеНакладная и к нему левое соединение РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет по регистратору, и в ГДЕ добавить условие на НезавершенноеПроизводствоБухгалтерскийУчет.Регистратор ЕСТЬ NULL
3 butterbean
 
06.11.14
09:14
(1) просто ппц
4 Looser-1c
 
06.11.14
09:16
(3) Почему "просто" ? )))
5 Krolik Bezobraznik
 
06.11.14
09:16
(1) Я думаю есть более элегантный способ =)) (2) Ага, спс помогло. Д3умал что если такое условие добавлю то ничего не выдаст, надо было проверить =))
6 Krolik Bezobraznik
 
06.11.14
09:17
СПС, топ можно закрывать =)
7 DiMel_77
 
06.11.14
09:17
(0) наверное проще так:

ВЫБРАТЬ
    ТребованиеНакладная.Ссылка
ИЗ
    Документ.ТребованиеНакладная КАК ТребованиеНакладная
ГДЕ
    ТребованиеНакладная.Проведен
    И Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И НЕ Ссылка В
                (ВЫБРАТЬ
                    НезавершенноеПроизводствоБухгалтерскийУчет.Регистратор
                ИЗ
                    РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.Обороты(&НачалоПериода, &КонецПериода, Регистратор,) КАК НезавершенноеПроизводствоБухгалтерскийУчет)
8 butterbean
 
06.11.14
09:18
(7) за ...НЕ В (ВЫБРАТЬ ...) табуреткой по одному месту, а лучше не по одному
9 Krolik Bezobraznik
 
06.11.14
09:19
(2) По такому запросу 143 строки в качестве результата (7) 156 строк в результате =)
10 Krolik Bezobraznik
 
06.11.14
09:21
(8) А что не так в его запросе?
11 butterbean
 
06.11.14
09:21
(10) сделай на 50000 документах — поймешь
12 Krolik Bezobraznik
 
06.11.14
09:24
(11) Так и скажите что время запроса будет большое =)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший