Имя: Пароль:
1C
1С v8
КД. Запрос к табличной части документа
0 Tata001
 
22.08.12
14:34
в КД нужно исправить запрос, чтобы не попадали определеённые проводки с оопределнным субконто... Данный запрос не срабатывает
ВЫБРАТЬ
   ОтражениеЗарплатыВРеглУчете.Ссылка,
   ОтражениеЗарплатыВРеглУчете.ПометкаУдаления,
   ОтражениеЗарплатыВРеглУчете.Номер,
   ОтражениеЗарплатыВРеглУчете.Дата,
   ОтражениеЗарплатыВРеглУчете.Проведен,
   ОтражениеЗарплатыВРеглУчете.Организация,
   ОтражениеЗарплатыВРеглУчете.ПериодРегистрации,
   ОтражениеЗарплатыВРеглУчете.Ответственный,
   ОтражениеЗарплатыВРеглУчете.Комментарий,
   ОтражениеЗарплатыВРеглУчете.КраткийСоставДокумента,
   ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.(
       Ссылка,
       НомерСтроки,
       СчетДт,
       СубконтоДт1,
       ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА &ПустаяНомГр
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК      СубконтоДт2,
       СубконтоДт3,
       СчетКт,
       СубконтоКт1,
       СубконтоКт2,
       СубконтоКт3,
       СчетДтНУ,
       СубконтоДтНУ1,
       СубконтоДтНУ2,
       СубконтоДтНУ3,
       СчетКтНУ,
       СубконтоКтНУ1,
       СубконтоКтНУ2,
       СубконтоКтНУ3,
       СчетКтУСН,
       ОтражениеВУСН,
       Сумма,
       ВидНачисленияУдержания,
       ПодразделениеДт,
       ПодразделениеКт,
       СуммаНУ,
       СуммаПР,
       СуммаВР,
       ВидНачисленийОплатыТрудаПоСтатье255НК
   )
ИЗ
   Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете
ГДЕ
   ОтражениеЗарплатыВРеглУчете.Проведен
   И ОтражениеЗарплатыВРеглУчете.Организация = &Организация
   И ОтражениеЗарплатыВРеглУчете.Дата МЕЖДУ &ПериодС И &ПериодПо
   И НЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.Ссылка В
               (ВЫБРАТЬ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.Ссылка
               ИЗ
                   Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете КАК ОтражениеЗарплатыВРеглУчетеОтражениеВУчете
               ГДЕ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетДт = &СчетДт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетКт = &СчетКт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа)
==========
Подскажите плиз как подкорректировать
1 Tata001
 
22.08.12
14:39
нашла описку..но всеровно не работает
ВЫБРАТЬ
   ОтражениеЗарплатыВРеглУчете.Ссылка,
   ОтражениеЗарплатыВРеглУчете.ПометкаУдаления,
   ОтражениеЗарплатыВРеглУчете.Номер,
   ОтражениеЗарплатыВРеглУчете.Дата,
   ОтражениеЗарплатыВРеглУчете.Проведен,
   ОтражениеЗарплатыВРеглУчете.Организация,
   ОтражениеЗарплатыВРеглУчете.ПериодРегистрации,
   ОтражениеЗарплатыВРеглУчете.Ответственный,
   ОтражениеЗарплатыВРеглУчете.Комментарий,
   ОтражениеЗарплатыВРеглУчете.КраткийСоставДокумента,
   ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.(
       Ссылка,
       НомерСтроки,
       СчетДт,
       СубконтоДт1,
       ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА &ПустаяНомГр
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК СубконтоДт2,
       СубконтоДт3,
       СчетКт,
       СубконтоКт1,
       СубконтоКт2,
       СубконтоКт3,
       СчетДтНУ,
       СубконтоДтНУ1,
       СубконтоДтНУ2,
       СубконтоДтНУ3,
       СчетКтНУ,
       СубконтоКтНУ1,
       СубконтоКтНУ2,
       СубконтоКтНУ3,
       СчетКтУСН,
       ОтражениеВУСН,
       Сумма,
       ВидНачисленияУдержания,
       ПодразделениеДт,
       ПодразделениеКт,
       СуммаНУ,
       СуммаПР,
       СуммаВР,
       ВидНачисленийОплатыТрудаПоСтатье255НК
   )
ИЗ
   Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете
ГДЕ
   ОтражениеЗарплатыВРеглУчете.Проведен
   И ОтражениеЗарплатыВРеглУчете.Организация = &Организация
   И ОтражениеЗарплатыВРеглУчете.Дата МЕЖДУ &ПериодС И &ПериодПо
   И НЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.НомерСтроки В
               (ВЫБРАТЬ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.НомерСтроки
               ИЗ
                   Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете КАК ОтражениеЗарплатыВРеглУчетеОтражениеВУчете
               ГДЕ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетДт = &СчетДт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетКт = &СчетКт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа)
2 Tata001
 
22.08.12
14:46
хелп
3 salvator
 
22.08.12
14:47
Шо, опять?
4 Tata001
 
22.08.12
14:52
(3) там объект для тестирования неверный был,.... когда для тестирования выбрала правильный объект,то запрос выдал пустые записи
5 Tata001
 
22.08.12
15:08
актууально
6 salvator
 
22.08.12
15:11
В условие добавьте

И ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СчетДт = &СчетДт
                   И ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СчетКт = &СчетКт
               ТОГДА ВЫБОР
                       КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт1 = &ОснНомГруппа
                           ТОГДА ЛОЖЬ
                       ИНАЧЕ ИСТИНА
                   КОНЕЦ
           ИНАЧЕ ИСТИНА
       КОНЕЦ
7 salvator
 
22.08.12
15:12
+6 это условие после строки
И ОтражениеЗарплатыВРеглУчете.Дата МЕЖДУ &ПериодС И &ПериодПо
т.е. условие на непонятное сравнение номеров строк уберите вообще
8 Йохохо
 
22.08.12
15:14
проблема в последней части? протащи НЕ внутрь
9 Tata001
 
22.08.12
15:18
(8) проблема в нижней части
10 Tata001
 
22.08.12
15:21
(8) помогло
11 Tata001
 
22.08.12
15:25
(8)И  ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.НомерСтроки В
               (ВЫБРАТЬ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.НомерСтроки
               ИЗ
                   Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете КАК ОтражениеЗарплатыВРеглУчетеОтражениеВУчете
               ГДЕ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетДт = &СчетДт
                   и ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетКт = &СчетКт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СубконтоДт2 <> &ОснНомГруппа)
12 Tata001
 
22.08.12
15:28
(6) а как в вехней части запроса подкорректировать
ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА &ПустаяНомГр
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК СубконтоДт2

т.е. мне нужно сделать замену на пустую ссылку
13 GANR
 
22.08.12
15:30
(12) ЗНАЧЕНИЕ(Справочник.НужныйСправочник.ПустаяСсылка) ?
14 Tata001
 
22.08.12
15:31
(13) да.... просто при таком коде,у меня строки стаким условие вообще убираются из результата запроса
15 salvator
 
22.08.12
15:35
(11) А как в этом случае сработает условие на субконто?
16 Tata001
 
22.08.12
15:35
(11)  но тут правильно отобралось
17 Tata001
 
22.08.12
15:36
(11) у меня проблема с заменой значения
18 salvator
 
22.08.12
15:37
(17) В (0) у вас совершенно другое описание проблемы
19 Tata001
 
22.08.12
15:40
(18) у меня две проблемы,фильтр по определённым проводкам
и замена одного значения на другое (условие в верху прописано не помогает)
20 Tata001
 
22.08.12
15:40
(13)    ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА значение(справочник.НоменклатурныеГруппы.пустаяссылка)
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК СубконтоДт2

это не помогает
21 salvator
 
22.08.12
15:42
(18) т.е. нужно исключить из вложенной таблицы строки с проводкой 20/70 и субконто2 = основная ном.группа,
и в оставшихся строках заменить основную ном.группу на пустую ссылку, так?
22 Tata001
 
22.08.12
15:44
(21) так
23 salvator
 
22.08.12
15:45
(22) так исходя из конструкции в (11) вы не отберете ненужные строки
24 Tata001
 
22.08.12
15:46
(23) ВЫБРАТЬ
   ОтражениеЗарплатыВРеглУчете.Ссылка,
   ОтражениеЗарплатыВРеглУчете.ПометкаУдаления,
   ОтражениеЗарплатыВРеглУчете.Номер,
   ОтражениеЗарплатыВРеглУчете.Дата,
   ОтражениеЗарплатыВРеглУчете.Проведен,
   ОтражениеЗарплатыВРеглУчете.Организация,
   ОтражениеЗарплатыВРеглУчете.ПериодРегистрации,
   ОтражениеЗарплатыВРеглУчете.Ответственный,
   ОтражениеЗарплатыВРеглУчете.Комментарий,
   ОтражениеЗарплатыВРеглУчете.КраткийСоставДокумента,
   ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.(
       Ссылка,
       НомерСтроки,
       СчетДт,
       СубконтоДт1,
       ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА значение(справочник.НоменклатурныеГруппы.пустаяссылка)
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК
        СубконтоДт2,
       СубконтоДт3,
       СчетКт,
       СубконтоКт1,
       СубконтоКт2,
       СубконтоКт3,
       СчетДтНУ,
       СубконтоДтНУ1,
       СубконтоДтНУ2,
       СубконтоДтНУ3,
       СчетКтНУ,
       СубконтоКтНУ1,
       СубконтоКтНУ2,
       СубконтоКтНУ3,
       СчетКтУСН,
       ОтражениеВУСН,
       Сумма,
       ВидНачисленияУдержания,
       ПодразделениеДт,
       ПодразделениеКт,
       СуммаНУ,
       СуммаПР,
       СуммаВР,
       ВидНачисленийОплатыТрудаПоСтатье255НК
   )
ИЗ
   Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете
ГДЕ
   ОтражениеЗарплатыВРеглУчете.Проведен
   И ОтражениеЗарплатыВРеглУчете.Организация = &Организация
   И ОтражениеЗарплатыВРеглУчете.Дата МЕЖДУ &ПериодС И &ПериодПо
   И  ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.НомерСтроки В
               (ВЫБРАТЬ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.НомерСтроки
               ИЗ
                   Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете КАК ОтражениеЗарплатыВРеглУчетеОтражениеВУчете
               ГДЕ
                   ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетДт <> &СчетДт
                   и ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СчетКт <>&СчетКт
                   И ОтражениеЗарплатыВРеглУчетеОтражениеВУчете.СубконтоДт2 <>&ОснНомГруппа)
==
запрос работает только почему-то в табличной части нумерация строк перемешалась
25 GANR
 
22.08.12
15:50
(21) Разве такое в принципе возможно в 1С-овском языке запросов?
(24) А нельзя ли вообще получать данные не из этой таблицы Документ.ОтражениеЗарплатыВРеглУчете, а из этой Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете, а реквизиты шапки получать через поле Ссылка.* ? Вот здесь ещё можно поставить фильтр по проводкам. А если нужны документы с пустыми ТЧ ОтражениеВУчете - то ещё и дополнить их операцией ОБЪЕДИНИТЬ ВСЕ?
26 salvator
 
22.08.12
15:54
В общем, я бы так сделал. У меня все прекрасно отсеивает лишнее и заменяет остальное на пустую ссылку

ОтражениеЗарплатыВРеглУчете.Ссылка,
   ОтражениеЗарплатыВРеглУчете.ПометкаУдаления,
   ОтражениеЗарплатыВРеглУчете.Номер,
   ОтражениеЗарплатыВРеглУчете.Дата,
   ОтражениеЗарплатыВРеглУчете.Проведен,
   ОтражениеЗарплатыВРеглУчете.Организация,
   ОтражениеЗарплатыВРеглУчете.ПериодРегистрации,
   ОтражениеЗарплатыВРеглУчете.Ответственный,
   ОтражениеЗарплатыВРеглУчете.Комментарий,
   ОтражениеЗарплатыВРеглУчете.КраткийСоставДокумента,
   ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.(
       Ссылка,
       НомерСтроки,
       СчетДт,
       СубконтоДт1,
       ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
               ТОГДА значение(справочник.НоменклатурныеГруппы.пустаяссылка)
           ИНАЧЕ ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2
       КОНЕЦ КАК
        СубконтоДт2,
       СубконтоДт3,
       СчетКт,
       СубконтоКт1,
       СубконтоКт2,
       СубконтоКт3,
       СчетДтНУ,
       СубконтоДтНУ1,
       СубконтоДтНУ2,
       СубконтоДтНУ3,
       СчетКтНУ,
       СубконтоКтНУ1,
       СубконтоКтНУ2,
       СубконтоКтНУ3,
       СчетКтУСН,
       ОтражениеВУСН,
       Сумма,
       ВидНачисленияУдержания,
       ПодразделениеДт,
       ПодразделениеКт,
       СуммаНУ,
       СуммаПР,
       СуммаВР,
       ВидНачисленийОплатыТрудаПоСтатье255НК
   )
ИЗ
   Документ.ОтражениеЗарплатыВРеглУчете КАК ОтражениеЗарплатыВРеглУчете
ГДЕ
   ОтражениеЗарплатыВРеглУчете.Проведен
   И ОтражениеЗарплатыВРеглУчете.Организация = &Организация
   И ОтражениеЗарплатыВРеглУчете.Дата МЕЖДУ &ПериодС И &ПериодПо
   И ВЫБОР
           КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СчетДт = &СчетДт
                   И ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СчетКт = &СчетКт
               ТОГДА ВЫБОР
                       КОГДА ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.СубконтоДт2 = &ОснНомГруппа
                           ТОГДА ЛОЖЬ
                       ИНАЧЕ ИСТИНА
                   КОНЕЦ
           ИНАЧЕ ИСТИНА
       КОНЕЦ
УПОРЯДОЧИТЬ ПО
   Дата,
   НомерСтроки
27 GANR
 
22.08.12
15:59
(24) Этот запрос в последней операции

ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете.НомерСтроки В
               (...)

ПО СУТИ смотрит следующее:
Если хотя-бы один НомерСтроки из ТЧ документа присутствует в нижнем запросе (ко ВСЕМ документам в ИБ) - тогда ИСТИНА. Ерунда какая-то.

Может (26)? Но там документ не попадет в выборку если ХОТЯ-БЫ одна из проводок будет удовлетворять фильтру. Если такое устраивает - задача решена...
28 GANR
 
22.08.12
16:02
А если нужно именно из вложенной таблицы исключить такие проводки то, по-моему, надо делать как в (25)
Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете
29 salvator
 
22.08.12
16:03
(27) Попадет документ в выборку, пока будет хотя бы одна строка, отличная от уловия на проводку
30 GANR
 
22.08.12
16:08
(29) 2 стороны одной медали. Короче 3-й раз повторюсь. Исключить ОТДЕЛЬНЫЕ строки вложенных таблиц, обращаясь в основном запросе к таблице Документ.ОтражениеЗарплатыВРеглУчете никак не выйдет - либо весь документ, либо ничего. Только работая с этой таблицей Документ.ОтражениеЗарплатыВРеглУчете.ОтражениеВУчете такое возможно.
31 Defender aka LINN
 
22.08.12
16:12
(0) А нахрена для этого запрос вообще?