Группа: Пользователи
Сообщений: 445
Из: Казахстан
Спасибо сказали: 43 раз
Рейтинг: 43
Добрый вечер !
Имеется регистр ТовЗапас (товарный запас) со следующими измерениями и ресурсами : Измерения : Товар,Склад,Мол,Контрагент. Ресурсы : Количество,Стоимость. Как в нижеуказанной процедуре вывести в секции "Cтрока" значение измерений Склад и Мол?
Процедура Сформировать() СпТов=СоздатьОбъект("Справочник.Материалы"); Рег=СоздатьОбъект("Регистр.ТовЗапас"); Таб=СоздатьОбъект("Таблица"); ИтогСк=0; ИтогГР=0; колстр=1; Сптов.ПорядокКодов(); Сптов.НайтиПоКоду(СокрЛП(Склад.Код)); ТС=Сптов.ТекущийЭлемент(); сптов.ИспользоватьДату(ДатаПер); сптов.ИспользоватьРодителя(ТС); Если ПустаяСтрока(Грмат.код)=0 Тогда СпТов.ВыбратьЭлементыПоРеквизиту("ГруппаМатериалов",Грмат); иначе СпТов.ВыбратьЭлементы(); конецЕсли; Рег.ВременныйРасчет(); РассчитатьРегистрыНа(ДатаПер); Таб.ВывестиСекцию("Шапка"); Если Сжато=2 тогда Таб.ВывестиСекцию("Графы"); иначе Таб.ВывестиСекцию("ШапкаГр"); КонецЕсли; СпТов.ПолучитьЭлемент(); Группа=СпТов.ГруппаМатериалов; Таб.ВывестиСекцию("Группа"); ост=Рег.СводныйОстаток(СпТов.код,Склад,,,"Количество"); ИтогГр=ИтогГр+ост*Сптов.цена; ИтогСк=ИтогСк+ост*Сптов.цена; Если Сжато=2 тогда если ост> спТов.нормазапдень тогда Таб.ВывестиСекцию("Строка"); //как здесь из регистра прочитать значения измерений Склад и МОЛ ? конецесли; колстр=колстр+1; КонецЕсли; Пока СпТов.ПолучитьЭлемент()>0 Цикл Если СпТов.ПометкаУдаления()=0 тогда Если Группа<>спТов.ГруппаМатериалов тогда если итоггр>0 тогда Таб.ВывестиСекцию("ИтогГР"); конецесли; колстр=колстр+1; Если колстр>63 тогда таб.НоваяСтраница(); Таб.ВывестиСекцию("Графы"); колстр=0; конецесли; ИтогГР=0; Таб.ВывестиСекцию("Группа"); конецЕсли; ост=Рег.СводныйОстаток(СпТов.код,Склад,,,"Количество"); ИтогГр=ИтогГр+ост*Сптов.цена; ИтогСк=ИтогСк+ост*Сптов.цена; Если Сжато=2 тогда если ост> спТов.нормазапдень тогда Таб.ВывестиСекцию("Строка"); //как здесь из регистра прочитать значения измерений Склад и МОЛ ? конецесли; КонецЕсли; конецЕсли; Группа=спТов.ГруппаМатериалов; КонецЦикла; Таб.ВывестиСекцию("ИтогГР"); Если ПустаяСтрока(Грмат.код)=1 тогда Таб.ВывестиСекцию("ИтогСк"); КонецЕсли;
Группа: Местный
Сообщений: 455
Из: Украина
Спасибо сказали: 148 раз
Рейтинг: 149.5
andrew76 @ Сегодня, 18:26
, Добрый день! Сформулируйте еще раз! Вы хотите получить данные из регистра? А справочников материалов зачем Вам? Сама задача в чем заключается? Вообще можно запросом к регистру все это получить
ТекстЗапр = " |Период с ДатаС по ДатаПо; |Фир = Регистр.Остатки.Фирма; |Скл = Регистр.Остатки.МестоХранения; |ТМЦ = Регистр.Остатки.ТМЦ;"; |Док = Регистр.Остатки.ТекущийДокумент; |Кво = Регистр.Остатки.ОстатокТовара;; |Условие (Фир = выбФирма);"; |Условие (Скл в ВыбСклад); |Условие (Скл.Тип = Перечисление.ТипыМестХранения.Склад); |Условие (ТМЦ в ВыбТМЦ); |Группировка Скл; |Группировка ТМЦ упорядочить по ТМЦ.Код без групп; |Функция НОКво = НачОст(Кво); |Функция КОКво = КонОст(Кво); |Функция ПКво = Приход(Кво); |Функция РКво = Расход(Кво);"; Если ВыбТМЦ.РазмерСписка() = 0 Тогда Заг1 = Заг1 + "По всім ТМЦ. "; Иначе Заг1 = Заг1 + "По ТМЦ зі списку: " + ВыбТМЦ.ВСтрокуСРазделителями() + ". "; КонецЕсли; Если ВыбСклад.Выбран() = 0 Тогда Заг2 = Заг2 + "По всім складам."; Иначе Заг2 = Заг2 + "По складу " + СокрЛП(ВыбСклад.ИсторическоеНаименование.Получить(ДатаПо)) + "."; КонецЕсли;
Если Запр.Выполнить(ТекстЗапр) = 0 Тогда Возврат; КонецЕсли;
Таб.ВывестиСекцию("Шапка"); Пока Запр.Группировка("Скл") = 1 Цикл Таб.ВывестиСекцию("Скл"); текНом = 0; Пока Запр.Группировка("ТМЦ") = 1 Цикл Если Запр.ТМЦ.Выбран() = 0 Тогда Продолжить; КонецЕсли; Если Запр.ТМЦ.ЭтоГруппа() = 1 Тогда Иначе текНом = текНом + 1; УчЦена = Запр.ТМЦ.УчетнаяЦена.Получить(ДатаПо); Таб.ВывестиСекцию("ТМЦ"); КонецЕсли; КонецЦикла;
Если Запр.Скл.ЭтоГруппа() = 0 Тогда Таб.ВывестиСекцию("ИтСклад"); ИтКво = ИтКво + текНом; текНом = 0; КонецЕсли; КонецЦикла; Таб.ВывестиСекцию("Итог"); Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0); Таб.ТолькоПросмотр(1); Таб.ПараметрыСтраницы(2,95,,3,3,3,3,,,,,); Таб.Показать("Оборотка ТМЦ по складам"); КонецПроцедуры
Сообщение отредактировал denis84 - 14.07.20, 20:12
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!