Имя: Пароль:
1C
1С v8
Помогите с запросом (попытка2)
, ,
0 Ben_art
 
10.06.13
15:19
Пожалуйста помогите с запросом :
Момент = Новый Граница(КонецДня(Дата), ВидГраницы.Включая); // дата отчёта
   Момент1 = Новый Граница(КонецДня(ДатаОстатки), ВидГраницы.Включая); // дата остатков
   Запрос.УстановитьПараметр("Момент",Момент);  // дата отчёта
   Запрос.УстановитьПараметр("Момент1",Момент1); // дата остатков
   Запрос.УстановитьПараметр("Склад",Склад);
   Запрос.Текст = "ВЫБРАТЬ
                  |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
                  |    ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
                  |    ЕСТЬNULL(ХозрасчетныйОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
                  |    ЕСТЬNULL(ХозрасчетныйОстатки1.КоличествоОстаток, 0) КАК КоличествоОстаток1
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Момент, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстатки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Момент1, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстатки1
                  |        ПО ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОстатки1.Субконто1
                  |ГДЕ
                  |    ХозрасчетныйОстатки.КоличествоОстаток > 4
                  |    И ХозрасчетныйОстатки1.КоличествоОстаток > 6
                  |    И ХозрасчетныйОстатки.Субконто2 = &Склад";
   РезультатЗапроса = Запрос.Выполнить();              
   Выборка = РезультатЗапроса.Выбрать();
   ЧислоТоваров = -1;


Нужно списать товар ОтчётомОРозничныхПродажах , но именно тот которого на так называемую дату остатков достаточно. Отсюда проблема на дату остатков может быть поступление и тогда отчёт забирает товар у оптовой реализации.
Помогите с задачей.
1 Ben_art
 
10.06.13
15:23
UPD: Отчёты делаются задним числом , но не должны отбирать товар у реализации (
2 scanduta
 
10.06.13
15:25
Ну исключай постпуления ... тогда бери физическую таблицу регистра накопления выбирай поле регистратор и убирай то что тебе не нужно (поступление за сегодняшний день)
3 Ben_art
 
10.06.13
15:34
Тогда подскажите как к этому запросу прикрутить условие чтобы
не было поступлений на >= дата создания отчёта ?
4 scanduta
 
10.06.13
15:45
Через ВЫБОР делай


ВЫБОР КОГДА Регистратор="нужный" ТОГДА
     ВЫБОР ЕСЛИ Регистратор.ДАТА=
5 Ben_art
 
10.06.13
18:00
А более лёгкие варианты есть ?
6 RomanYS
 
10.06.13
18:15
Если я правильно понял, надо списать задним числом, но так чтобы потом ни в какой последующий момент не провалиться в минус. Можно взять таблицу ОборотыИОстатки от нужной даты по последний документ, развернуть по регистратору, а потом сгруппировать уже без регистратора с функцией минимум(Таблица.КоличествоКонечныйОстаток)
7 Ben_art
 
10.06.13
18:43
(6) Что это за таблица такая , подскажите как регистр называется ?
8 RomanYS
 
10.06.13
18:49
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   МИНИМУМ(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата, , Регистратор, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура


такая же виртуальная таблица есть и у регистра бухгалтерии, только параметров там побольше (счета, корсчета, субконто...)
9 Ben_art
 
10.06.13
18:54
(8) К сожалению у меня нет такого регистра (
10 RomanYS
 
10.06.13
19:08
это пример, у тебя есть
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты
11 Ben_art
 
10.06.13
19:10
ой да , нашёл
12 RomanYS
 
10.06.13
19:13
Описание доступных таблиц: Конфигуратор - Справка - Содержание справки - Встроенный язык - Работа с запросами - Таблицы запросов
13 RomanYS
 
10.06.13
19:14
Если есть минимальное понимание, то всё есть в конструкторе запросов
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший