![]() |
![]() |
![]() |
|
Правильный вариант отчета | ☑ | ||
---|---|---|---|---|
0
myr4ik07
17.01.15
✎
17:27
|
Есть документ ПотребностьВНоменклатуре которые заполняется на Основании документа ЗаказПокупателя вот с таким кодом
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда Контрагент = ДанныеЗаполнения.Контрагент; Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл НоваяСтрока = Товары.Добавить(); //НоваяСтрока.Количество = ТекСтрокаТовары.Количество; НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура; НоваяСтрока.Документ = ДанныеЗаполнения; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", ТекСтрокаТовары.Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяСтрока.Количество = ТекСтрокаТовары.Количество - ВыборкаДетальныеЗаписи.КоличествоОстаток КонецЦикла; КонецЕсли; КонецПроцедуры не могу понять каким образом в Параметр передавать Номенклатуру, кроме того "костыля", что я сделал. В итоге для каждой Номенклатеры из ЗаказПокупателя в документ ПотребностьВНоменклатуре Реквизит Количество должен заполняться Количество заказанного товара - Остаток на складах по заказаном товаре |
|||
1
GROOVY
17.01.15
✎
17:32
|
Сибирский пушной зверек! Гдеж вас всех учат то?!
"ВЫБРАТЬ | Номенклатура, КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&МассивНоменклатура))"; |
|||
2
myr4ik07
17.01.15
✎
17:39
|
(1) ну так и тут параметр нужно заполнить или вы имеете ввиду, что бы удалить то, что сделал конструктор На Основании и выбрать ТЧ документа ЗаказПокупателя и Сравнить с Остатвками?
|
|||
3
myr4ik07
17.01.15
✎
17:44
|
но есть же ДанныеЗаполнения в этом Событии, что нужно использовать, тут без ДанныеЗаполнения никак... наверное
покажите пример, не могу понять ваши пример дальше, я не понимаю как одновременно заполнить параметр + строку там где нужно взять перебор ТЧ с ДанныеЗаполнения.Товары.Количество и Выборку с результата Запроса типа ВыборкаДетальныеЗаписи.Количество |
|||
4
myr4ik07
17.01.15
✎
18:00
|
сделал вообще "самый шустрый" вариант :D
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда Контрагент = ДанныеЗаполнения.Контрагент; Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл НоваяСтрока = Товары.Добавить(); //НоваяСтрока.Количество = ТекСтрокаТовары.Количество; НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура; НоваяСтрока.Документ = ДанныеЗаполнения; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", ТекСтрокаТовары.Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяСтрока.Количество = ТекСтрокаТовары.Количество - ВыборкаДетальныеЗаписи.КоличествоОстаток КонецЦикла; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
5
GROOVY
17.01.15
✎
18:05
|
Нужно сделать не запрос в цикле, а цико по результату запросе. Источником должны быть 2 таблицы, документа основания и остатков из регистра.
Массив как параметр передавать умеете? Что такое массив знаете? |
|||
6
myr4ik07
17.01.15
✎
18:48
|
(5) как бы понимаю что это массив и как передать параметр в простом случаи, а вот в этом прошу слезно пример полный потому что если бы понимал то не спрашивал )
|
|||
8
GROOVY
17.01.15
✎
18:58
|
Запрос.УстановитьПараметр("ИмяПараметра", ИмяМассива)
|
|||
9
myr4ik07
17.01.15
✎
19:11
|
(8) так список номенклатуры все ровно нужно получать через Для каждого Из
|
|||
10
myr4ik07
17.01.15
✎
19:22
|
(5) я понял наконец то о чем вы )
|
|||
11
myr4ik07
17.01.15
✎
19:22
|
(5) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |