Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

1с ут10.3 вывод информации по товару

Григорий Елганов Знаток (260), на голосовании 7 месяцев назад
помогите пожалуйста.
пытаюсь вывести остаток товара в чеке ккм в отдельную колонку но пока без успешно что же я делаю не так.

вот код
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)

Если ОформленияСтрок.Количество() = 0 Тогда
Возврат;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаНоменклатуры.Номенклатура,
| ТаблицаНоменклатуры.ХарактеристикаНоменклатуры,
| ТаблицаНоменклатуры.Склад
|ПОМЕСТИТЬ ТаблицаВЗапрос
|ИЗ
| &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
|;
|
|ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Склад,
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыВРознице.Остатки(
| ,
| (Номенклатура, ХарактеристикаНоменклатуры, Склад) В
| (ВЫБРАТЬ
| ТаблицаВЗапрос.Номенклатура,
| ТаблицаВЗапрос.ХарактеристикаНоменклатуры,
| ТаблицаВЗапрос.Склад
| ИЗ
| ТаблицаВЗапрос КАК ТаблицаВЗапрос)) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Номенклатура.Услуга = ЛОЖЬ";
ТаблицаНоменклатуры = Товары.Выгрузить();
ТаблицаНоменклатуры.Колонки.Добавить("Склад",Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТаблицаНоменклатуры.ЗаполнитьЗначения(Склад,"Склад");

Запрос.УстановитьПараметр("ТаблицаНоменклатуры", ТаблицаНоменклатуры);

Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
//Сообщить ("Нет смогли определить остатки");
Возврат;
КонецЕсли;

ТаблицаОстатков = Результат.Выгрузить();
ТаблицаОстатков.Индексы.Добавить("Номенклатура,ХарактеристикаНоменклатуры");

СтруктураПоиска = Новый Структура;
МассивСтрок = Новый Массив;

Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл

СтруктураПоиска.Вставить("Номенклатура" , ОформлениеСтроки.ДанныеСтроки.Номенклатура);
СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", ОформлениеСтроки.ДанныеСтроки.ХарактеристикаНоменклатуры);
СтруктураПоиска.Вставить("Склад" , Склад);

МассивСтрок = ТаблицаОстатков.НайтиСтроки(СтруктураПоиска);
Остаток=0;
Если МассивСтрок.Количество() > 0 Тогда
Остаток = МассивСтрок[0].КоличествоОстаток;
КонецЕсли;
ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(Остаток);
Сообщить (Остаток);
КонецЦикла;

КонецПроцедуры
Голосование за лучший ответ
Ephire Auditore Знаток (470) 8 месяцев назад
в вопросе не указана таблица, из которой берутся данные о продажах. нужно добавить таблицу с продажами и связать ее с таблицей остатков по полям номенклатуры, характеристики номенклатуры и склада, вот измененный код:
 Запрос.Текст =  
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаНоменклатуры.Номенклатура,
| ТаблицаНоменклатуры.ХарактеристикаНоменклатуры,
| ТаблицаНоменклатуры.Склад
|ПОМЕСТИТЬ ТаблицаВЗапрос
|ИЗ
| &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
|;
|
|ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Склад,
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыВРознице.Остатки(
| &Период,
| (Номенклатура, ХарактеристикаНоменклатуры, Склад) В
| (ВЫБРАТЬ
| ТаблицаВЗапрос.Номенклатура,
| ТаблицаВЗапрос.ХарактеристикаНоменклатуры,
| ТаблицаВЗапрос.Склад
| ИЗ
| ТаблицаВЗапрос КАК ТаблицаВЗапрос)) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Номенклатура.Услуга = ЛОЖЬ";
где &Период - параметр типа Период, который нужно установить в значение даты оформления чека
Похожие вопросы