|
Как собрать остатки по счету по таблице значений одного из субконто? | ☑ | ||
---|---|---|---|---|
0
kalisto
11.08.14
✎
01:31
|
Доброго времени суток.
Нужна помощь по бухгалтерии. Есть список номенклатуры, который выгружен из табл части документа. По каждой номенклатуре нужно проверить остатки на счете 41.01 по каждому складу и по каждой партии. Я пока еще плохо разбираюсь в восьмерке. Вот такой запрос нацарапала: ТаблЧасть = УстановкаЦенНоменклатуры.Товары.Выгрузить(,"Номенклатура"); ЗапросОстатки = Новый Запрос(); ЗапросОстатки.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.СуммаОстатокДт, | ХозрасчетныйОстатки.КоличествоОстатокДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , ) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.Счет = &Счет | И ХозрасчетныйОстатки.Субконто1 = &Субконто1"; ЗапросОстатки.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01")); ЗапросОстатки.УстановитьПараметр("Субконто1",ТаблЧасть); РезультатПоСчету = ЗапросОстатки.Выполнить().Выбрать(); Спецы, подскажите плиз, как сделать выбор остатков по списку номенклатуры? Этот запрос явно не правильный. Подскажите, где и что поправить надо. Или может хороший пример где найти. |
|||
1
zak555
11.08.14
✎
01:54
|
надо проверять после проведения
|
|||
2
Cube
11.08.14
✎
04:57
|
(0) "как сделать выбор остатков по списку номенклатуры?"
Вместо ХозрасчетныйОстатки.Субконто1 = &Субконто1 пиши ХозрасчетныйОстатки.Субконто1 В (&Субконто1) |
|||
3
Cube
11.08.14
✎
04:58
|
(0) А вообще, вот тебе готовый блок проверки остатков (правда, я его для УАТ писал, но, думаю, разберешься):
ДанныеДокумента = Товары.Выгрузить(, "Номенклатура, Количество"); ДанныеДокумента.Свернуть("Номенклатура", "Количество"); Запрос = Новый Запрос("ВЫБРАТЬ | ДанныеДокумента.Номенклатура, | ДанныеДокумента.Количество |ПОМЕСТИТЬ ДанныеДокумента |ИЗ | &ДанныеДокумента КАК ДанныеДокумента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеДокумента.Номенклатура КАК Номенклатура, | ДанныеДокумента.Количество КАК Количество, | ЕСТЬNULL(УАТ_ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток |ИЗ | ДанныеДокумента КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УАТ_ТоварыНаСкладах.Остатки( | &Период, | Организация = &Организация | И Склад = &Склад | И Номенклатура В | (ВЫБРАТЬ | ДанныеДокумента.Номенклатура | ИЗ | ДанныеДокумента КАК ДанныеДокумента)) КАК УАТ_ТоварыНаСкладахОстатки | ПО ДанныеДокумента.Номенклатура = УАТ_ТоварыНаСкладахОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ"); Запрос.УстановитьПараметр("Период", ?(Ссылка.Пустая(), КонецДня(Дата), МоментВремени())); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("ДанныеДокумента", ДанныеДокумента); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.Количество > Выборка.Остаток Тогда Сообщить("Недостаточно товара """ + Выборка.Номенклатура + """ на складе """ + Склад + """. Требуется: " + Формат(Выборка.Количество, "ЧДЦ=3; ЧН=") + ". Остаток: " + Формат(Выборка.Остаток, "ЧДЦ=3; ЧН=") + "."); Отказ = Истина; Иначе Движение = Движения.УАТ_ТоварыНаСкладах.ДобавитьРасход(); Движение.Период = Дата; Движение.Организация = Организация; Движение.Склад = Склад; Движение.Номенклатура = Выборка.Номенклатура; Движение.Количество = Выборка.Количество; КонецЕсли; КонецЦикла; |
|||
4
Cube
11.08.14
✎
05:09
|
(0) Ещё недочеты:
За такое расстреливают: ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01") пиши правильно - это предопределенный счет, у него есть имя (смотри в конфигураторе) и правильное написание будет что-то вроде: ПланыСчетов.Хозрасчетный.ТоварыНаСкладах Далее, вот ты пишешь: ТаблЧасть = УстановкаЦенНоменклатуры.Товары.Выгрузить(,"Номенклатура"); ... ЗапросОстатки.Текст = "ВЫБРАТЬ ... |ГДЕ ... | И ХозрасчетныйОстатки.Субконто1 = &Субконто1"; ... ЗапросОстатки.УстановитьПараметр("Субконто1",ТаблЧасть); И что это? Метод Выгрузить() создает таблицу значений. А в конструкции запроса "ГДЕ" можно указать либо ссылку, либо список значений, заполненный ссылками. ТЗ нельзя... |
|||
5
kalisto
11.08.14
✎
23:36
|
Огромное спасибо за ответы. Сейчас буду пробовать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |