|
Вывод остатков на определенную дату | ☑ | ||
---|---|---|---|---|
0
bayron1
27.05.24
✎
13:25
|
День добрый, уважаемые знатоки. Прошу подсказать, в задании нужно вывести остатки по всем товарам в ТЧ. В ТЧ я эти товары добавляю сам, т.е. список получается произвольный. Когда я задавал параметр просто &Номенклатура у меня выводился остаток только по одному конкретному товару. Пытаюсь путем создания массива, и передать массив в качестве параметра на сервер. Подскажите, пожалуйста
P.s. я еще только начал обучение 1с &НаКлиенте Процедура ПолучитьОстатки(Элемент, ВыбраннаяДата) Остаток = Выбор(Элементы.Остатки.ТекущиеДанные.Номенклатура, ВыбраннаяДата); Элементы.Остатки.ТекущиеДанные.Остатки = Остаток; МассивНоменклатуры = Новый Массив; Таблица = Элементы.Остатки.ТекущиеДанные; Для Каждого Строка из Таблица Цикл МассивНоменклатуры.Добавить(Строка.Номенклатура); КонецЦикла; КонецПроцедуры &НаСервере Функция Выбор(Товар, ВыбраннаяДата) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток, | ОстаткиНоменклатурыОстатки.Номенклатура.Код КАК Код, | ОстаткиНоменклатурыОстатки.Номенклатура.Ссылка КАК Номенклатура |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры)) КАК ОстаткиНоменклатурыОстатки"; Граница = Новый Граница(ВыбраннаяДата, ВидГраницы.Включая); Запрос.УстановитьПараметр("Дата", ВыбраннаяДата); Запрос.УстановитьПараметр("МассивНоменклатуры",Товар); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Возврат Выборка.Остаток; КонецФункции |
|||
1
steep1
27.05.24
✎
13:21
|
(0) наверно в этом проблема - Таблица = Элементы.Остатки.ТекущиеДанные ты получаешь данные выделенной строки
|
|||
2
Волшебник
27.05.24
✎
13:25
|
Выбор() — плохое имя функции
|
|||
3
bayron1
27.05.24
✎
13:28
|
(1) В этом я и застрял, как обратиться не только к выделенной строке?
|
|||
4
Смотрящий
27.05.24
✎
13:30
|
(3) Остатки у тебя как таблица или как Объект.Остатки ?
|
|||
5
bayron1
27.05.24
✎
13:37
|
(4) Как таблица
|
|||
6
Смотрящий
27.05.24
✎
13:44
|
(5) Тогда убери передачу в Выбор первого параметра
В Выбор беги по всей таблице Остатки и пихай номенклатуру в МассивНоменклатуры Повторно беги по таблице, предварительно выгрузив результат запроса в таблицу, и устанавливай Остаток |
|||
7
bayron1
27.05.24
✎
13:45
|
(6) Спасибо!
|
|||
8
Волшебник
27.05.24
✎
13:50
|
и Выбор() переименуйте
|
|||
9
bayron1
27.05.24
✎
15:52
|
Немного разобрался, там все таки Остатки были Обьект.Остатки. Теперь ошибки нет, но остаток выводится у одного товара. Предполагаю что ошибка в последней строке , где возврат, возвращает одно число
&НаКлиенте Процедура ПолучитьОстатки(Элемент, ВыбраннаяДата) МассивНоменклатуры = Новый Массив; Для каждого СтрТЗ из ЭтотОбъект.Остатки Цикл МассивНоменклатуры.Добавить(СтрТЗ.Номенклатура); КонецЦикла; Остаток = Выбор(Элементы.Остатки.ТекущиеДанные.Номенклатура, ВыбраннаяДата); Элементы.Остатки.ТекущиеДанные.Остатки = Остаток; КонецПроцедуры &НаСервере Функция Выбор(Товар, ВыбраннаяДата) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток, | ОстаткиНоменклатурыОстатки.Номенклатура.Код КАК Код, | ОстаткиНоменклатурыОстатки.Номенклатура.Ссылка КАК Номенклатура |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры)) КАК ОстаткиНоменклатурыОстатки"; Граница = Новый Граница(ВыбраннаяДата, ВидГраницы.Включая); Запрос.УстановитьПараметр("Дата", ВыбраннаяДата); Запрос.УстановитьПараметр("МассивНоменклатуры",Товар); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Возврат Выборка.Остаток; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |