Имя: Пароль:
1C
1С v8
нужна помощь с запросом
0 krmik
 
01.03.13
14:59
на счете 10.1 есть следующие субконто: 1. Номенклатура 2. Склады 3. ГТД

требуется написать запрос по бухгалтерскому регистру, который покажет остатки и приходные документы  из которых состоит текущий остаток и количество участвующее в остатке. У меня мысли крутятся около такого запроса, но до конца никак не срастутся...

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

СГРУППИРОВАТЬ ПО
   ТаблицаДокументов.Период,
   ТаблицаДокументов.Регистратор,
   ТаблицаДокументов.Счет,
   ТаблицаДокументов.Субконто1,
   ТаблицаДокументов.Субконто2,
   ТаблицаДокументов.Субконто3,
   ТаблицаДокументов.КоличествоНачальныйОстаток,
   ТаблицаДокументов.КоличествоОборот,
   ТаблицаДокументов.КоличествоКонечныйОстаток,
   ХозрасчетныйОстатки.КоличествоОстаток

УПОРЯДОЧИТЬ ПО
   Период
1 lxndr
 
01.03.13
15:01
(0) это невозможно. Если нужны документы партии - должна быть соответствующая аналитика на плане счетов.
2 pessok
 
01.03.13
15:07
(1) ну он может вытащить регистратор
3 lxndr
 
01.03.13
15:08
(2) из остатков?
4 ssh2006
 
01.03.13
15:10
(0) Можешь заморочится таким способом - определить по "ФИФО" документы из тех соображений, что остаток образуют самые последние по времени документы. Т.е. например остаток 5. Пусть последние приходы в порядке убывания времени поступления с такими количествами - 1,3,5,4,5,5. Значит остаток 5 образуют приходы где кол 1,3,5.
5 Sammo
 
01.03.13
15:11
Собираешь остатки и join-ишь с оборотами по регистраторам, чтобы собрать количество >= остатка по убыванию даты регистратора
6 pessok
 
01.03.13
15:14
(3)из ОстаткиИОбороты
7 Тролль главный
 
01.03.13
15:15
(6) в оборотах да? в итоговыхостатках нет
8 DirecTwiX
 
01.03.13
15:15
И НЕ ТаблицаДокументов.Регистратор = НЕОПРЕДЕЛЕНО
И НЕ ТаблицаНакопления.Регистратор = НЕОПРЕДЕЛЕНО

Как регистратор может быть пустым? Максимум, там будет Null. А если хочешь избавиться от Null'ов, то используй внутренне соединение
9 pessok
 
01.03.13
15:16
(7) в итоговых остатках нельзя, есессна. какие регистраторы по остаткам могут быть? :)
10 ssh2006
 
01.03.13
15:18
+(4) пример в теме v8: Как лучше сделать отчет по взаиморасчетам по ФИФО
последний пост, запрос определяет документы, которые образовали задолженность с суммой "остатка" по каждому документу
11 krmik
 
01.03.13
17:39
конструкция запроса типа
И НЕ ТаблицаДокументов.Регистратор = НЕОПРЕДЕЛЕНО
И НЕ ТаблицаНакопления.Регистратор = НЕОПРЕДЕЛЕНО

у меня к месту. с ней все нормально.
12 krmik
 
01.03.13
17:44
пока у меня получается так:

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

СГРУППИРОВАТЬ ПО
   ТаблицаДокументов.Период,
   ТаблицаДокументов.Регистратор,
   ТаблицаДокументов.Счет,
   ТаблицаДокументов.Субконто1,
   ТаблицаДокументов.Субконто2,
   ТаблицаДокументов.Субконто3,
   ТаблицаДокументов.КоличествоНачальныйОстаток,
   ТаблицаДокументов.КоличествоОборот,
   ТаблицаДокументов.КоличествоКонечныйОстаток"


затем идет запрос


"ВЫБРАТЬ
   МАКСИМУМ(ВТ_Остатки.Период) КАК Период
ИЗ
   ВТ_Остатки КАК ВТ_Остатки
ГДЕ
   ВТ_Остатки.КоличествоОборот1 <= 0"

и последний запрос

"ВЫБРАТЬ
   ВТ_Остатки.Период,
   ВТ_Остатки.Регистратор,
   ВТ_Остатки.Счет,
   ВТ_Остатки.Субконто1,
   ВТ_Остатки.Субконто2,
   ВТ_Остатки.Субконто3,
   ВТ_Остатки.КоличествоНачальныйОстаток,
   ВТ_Остатки.КоличествоОборот,
   ВТ_Остатки.КоличествоКонечныйОстаток,
   ВТ_Остатки.КоличествоНачальныйОстаток1,
   ВТ_Остатки.КоличествоОборот1,
   ВТ_Остатки.КоличествоКонечныйОстаток1
ИЗ
   ВТ_Остатки КАК ВТ_Остатки
ГДЕ
   ВТ_Остатки.Период > &Период"


как раз вроде и выводит то что мне нужно. щас проверяю. Поле "КоличествоОборот1" как раз и выводит остаток на документ. Однако, что-то мне подсказывает, что все это можно одним запросом сделать.
13 Iren KI
 
01.03.13
17:57
нужна помощь. Программа 1с предприятие платформа  8.2(16 352)
редакция 2.0 (2.045.5)
выдает ошибку при закрытии месяца:

ОбщийМодуль.НалоговыйУчет.Модуль(1886)}: Ошибка при вызове метода контекста (Индекс)
   ИндексЗначения = Перечисления.ВидыРасходовНУ.Индекс(ВидРасхода);
по причине:
Несоответствие типов (параметр номер '1')
14 krmik
 
01.03.13
18:01
перед строкой  ИндексЗначения = Перечисления.ВидыРасходовНУ.Индекс(ВидРасхода);
поставте проверку, например что-то типа этого
Если ТипЗнч(ВидРасхода) = Тип("ПеречислениеСсылка.ВидыРасходовНУ") Тогда