|
Данные из регистра накопления в документ | ☑ | ||
---|---|---|---|---|
0
pandemion3
08.04.22
✎
14:31
|
Добрый день
Такой вопрос: сделал запрос через конструктор (см. ниже), но столкнулся с проблемой Значения регистра сведений подставляется без проблем, но когда подключаю к запросу ещё и регистр накопления остатки, данные остатков просто складываются и записываются в каждую строчку табличной части КОД: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураСрезПоследних.Поставщик КАК Поставщик, | НоменклатураСрезПоследних.Номенклатура КАК Номенклатура, | НоменклатураСрезПоследних.МинимальноеКоличество КАК МинимальноеКоличество, | ОстаткиНоменклатурыОстатки.ФактКоличествоОстаток КАК ФактКоличествоОстаток |ИЗ | РегистрСведений.Номенклатура.СрезПоследних КАК НоменклатураСрезПоследних, | РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НовСтр = Объект.Остатки.Добавить(); НовСтр.ФактКоличество = ВыборкаДетальныеЗаписи.ФактКоличествоОстаток; НовСтр.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; НовСтр.Поставщик = ВыборкаДетальныеЗаписи.Поставщик; НовСтр.ПланКоличество = ВыборкаДетальныеЗаписи.МинимальноеКоличество; КонецЦикла; Что мне надо получить в итоге: в табличную часть документа записывались "Поставщик" "Номенклатура" "Минимальное количество" и "Фактическое количество" Заполнение ТЧ автоматическое через кнопку Надеюсь я понятно донёс суть |
|||
1
lodger
08.04.22
✎
14:33
|
запрос плохо написал.
|
|||
2
pandemion3
08.04.22
✎
14:35
|
(1) А можешь, пожалуйста, подсказать, как реализовать? Пробовал разными способами, но этот был пока самый оптимальный
Если без регистра сведений писать запрос, то подставляется всё хорошо Но при этом и регистр сведений отдельно работает тоже хорошо Я не понимаю как связать их :( |
|||
3
lodger
08.04.22
✎
14:41
|
написание запроса надо начинать с вводной:
а) источники данных и их структура б) требуемый результат со всеми отборами, условиями, нюансами. например: имеем РегистрСведений Номенклатура с измерениями Поставщик и Номенклатура с ресурсом МинимальноеКоличество; РегистрНакопления ОстаткиНоменклатуры с измерениями Номенклатура с ресурсом ФактКоличество. нужно заполнить ТЧ документа с отбором по Поставщику N из шапки документа и остатком по Складу M |
|||
4
lodger
08.04.22
✎
14:44
|
потом думаешь, как надо связать исходные данные:
по каждой номенклатуре из Номенклатура надо подобрать факт остаток из ОстаткиНоменклатуры преобразуем слова в условие связи: РегистрСведений.Номенклатура.СрезПоследних КАК НоменклатураСрезПоследних Левое Соединение РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки ПО НоменклатураСрезПоследних.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура |
|||
5
lodger
08.04.22
✎
14:46
|
думаем о сокращении лишних строк и накладываем отбор:
РегистрСведений.Номенклатура.СрезПоследних КАК НоменклатураСрезПоследних переписываем на: РегистрСведений.Номенклатура.СрезПоследних(,Поставщик = &Контрагент) КАК НоменклатураСрезПоследних и перед исполнением запроса подаём этот параметр системе: Запрос.УстановитьПараметр("Контрагент",Объект.Контрагент) |
|||
6
pandemion3
08.04.22
✎
15:20
|
Всё получилось, спасибо огромное!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |