Имя: Пароль:
1C
1С v8
Как проще избавиться от пустой записи в запросе
,
0 suvolod
 
20.11.12
09:19
Есть запрос по движениям документа Поступление товаров и услуг  - ниже привожу его в сильно упрощенном виде

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

СГРУППИРОВАТЬ ПО
   ВЫБОР
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = &ТоварыНаСкладах
           ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1
   КОНЕЦ

Документ, помимо проводок по 41 счету, делает еще проводки по НДС-ному счету 19.03. У этого счета нет субконто Номенклатура, поэтому в результате запроса у появляется появляется пустая строка с пустым полем Номенклатура.

Как правильнее от нее избавиться? Самый очевидный способ - добавить в конец условие ГДЕ, но интересует методически правильное решение такой задачи.
1 azernot
 
20.11.12
09:20
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Счет = &Счет41 и Регистратор = &Регистратор,...
2 programmer1c_
63
 
20.11.12
09:21
Добавить в параметры вирт. таблицы условие по счету не предлагать?
3 Undefined vs NULL
 
20.11.12
09:21
правильно - в параметрах засунуть отбор по счету
4 suvolod
 
20.11.12
09:22
(1)(2). Да, так тоже можно, немного напрягает только то, что мне придется там прописывать целый список счетов.
5 butterbean
 
20.11.12
09:23
(4) массив подпихни
6 azernot
 
20.11.12
09:24
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , НЕ Счет = &Счет19 и Регистратор = &Регистратор
7 Undefined vs NULL
 
20.11.12
09:24
(4) по запросу этого не видно
8 НЕА123
 
20.11.12
09:24
(4)
условие на видСубконто
?
9 programmer1c_
63
 
20.11.12
09:24
Только непонятно почему используется вирт. таблица ДвиженияССубконто - нельзя выбрать таблицу оборотов к примеру? Мне кажется запрос работал бы побыстрее - хотя на 1 документе не так заметно будет
10 suvolod
 
20.11.12
09:24
ладно.. понял, спасибо. Нужно делать через отбор по списку счетов в параметрах вирт. таблицы
11 Undefined vs NULL
 
20.11.12
09:25
(8) мне вот болше всего нравится
12 suvolod
 
20.11.12
09:27
пока писал, увидел решение лучше :)
(8) - спасибо, с ВидСубконто изящнее получается
13 programmer1c_
63
 
20.11.12
09:27
или может автору нужно что-то наподобие анализа субконто? разворачивание по субконто?
14 suvolod
 
20.11.12
09:28
(13)Полный запрос такой:

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

СГРУППИРОВАТЬ ПО
   ВЫБОР
       КОГДА ХозрасчетныйДвиженияССубконто.СчетДт = &ТоварыВРозничнойТорговлеВПродажныхЦенахАТТ
           ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1
   КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВремТаб.Номенклатура,
   ВремТаб.Количество,
   ВремТаб.СуммаЗакупаБезНДС,
   ВремТаб.ТорговаяНаценка,
   ВЫРАЗИТЬ(ВремТаб.СуммаЗакупаБезНДС / ВремТаб.Количество КАК ЧИСЛО(15, 2)) КАК ЦенаУчетная,
   ВЫРАЗИТЬ((ВремТаб.СуммаЗакупаБезНДС + ВремТаб.ТорговаяНаценка) / ВремТаб.Количество КАК ЧИСЛО(15, 2)) КАК ЦенаРозничная,
   ВремТаб.СуммаЗакупаБезНДС + ВремТаб.ТорговаяНаценка КАК СуммаРозничная
ИЗ
   ВремТаб КАК ВремТаб
ГДЕ
   ВремТаб.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
15 suvolod
 
20.11.12
09:29
(14)делаю печатную форму к доку ПТиУ, который должен показывать поступление в закупочных, розничных ценах и наценку
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший