Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 окт 2024, 21:26

Новый отчет в остатках ТМЦ

Автор skillful, 07 мая 2010, 15:30

0 Пользователей и 1 гость просматривают эту тему.

skillful

Здравствуйте!
версия 7.7 конфигурация "Торговля и склад" (7.70.027)

Хочу переделать отчет остатки ТМЦ,
стандартный отчет выводит сначало название категорий, потом товар:
пример



А нужно сделать вот так:
название категорий вообще не выводилось построчно
а выводились только сами товары (а рядом в следующей ячейке название категории к которой относится товар ВАЖНО)
пример

товар1       расходные материалы/чернила фасованные/чернила ink-tek    цена и тд.
товар2       расходные материалы/чернила фасованные/чернила ink-tek    цена и тд.

Покапавшись в конфигураторе обноружил некий код в остатках ТМЦ,
думаю в нем нужно править. Есль ли решение этой проблемы?



// выводим группы ТМЦ
Пока СписокГрупп.РазмерСписка()>0 Цикл
Группа = СписокГрупп.ПолучитьЗначение(1);
Если ТМЦ.ПринадлежитГруппе(Группа)=1 Тогда
ТЗ.НоваяСтрока();
ТЗ.Уровень = СписокГрупп.РазмерСписка();
ТЗ.ПечТекстСтроки = Группа.Наименование;
ТЗ.ПечКод = Группа.Код;
ТЗ.ПечКодПоз = Группа.КодСоответствия;
ТЗ.Родитель    = Группа.Родитель;
ТЗ.ТекРасшифровка = Группа;
КонецЕсли;
СписокГрупп.УдалитьЗначение(1);
КонецЦикла;   

ТМЦСтрока = "" + ТМЦ + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(ТМЦ.Артикул), "");
                 
Если ПредставлениеЦены = "отпускная цена (только розница)"  Тогда
Пока Запрос.Группировка("ЦенаПрод") = 1 Цикл
                                               
ТЗ.НоваяСтрока();                             
ТЗ.Уровень = 0;
ТЗ.ТекРасшифровка = ТМЦ;
ТЗ.Родитель = ТМЦ.Родитель;
ТЗ.ПечЕд = ?(ВидЕдиницы = 1,ТМЦ.ОсновнаяЕдиница, ТМЦ.БазоваяЕдиница);
ТЗ.ПечТекстСтроки = ТМЦСтрока + ?(ТМЦ.МинОстаток=0,"",", мин. остаток = "+СокрЛП(глФРМКоличество(ТМЦ.МинОстаток,ТЗ.ПечЕд)));
ТЗ.ПечКод = ТМЦ.Код;
ТЗ.ПечКодПоз = ТМЦ.КодСоответствия;
Если ВыводитьЗаказанный = 1 Тогда
ТЗ.Заказано = Запрос.ЗаказаноКонОст;
КонецЕсли;
ЗаполнитьСтроку(ТЗ, Запрос, СписокСкладов, ВДокумент);
КонецЦикла;
иначе
ТЗ.НоваяСтрока();                             
ТЗ.Уровень = 0;
ТЗ.ТекРасшифровка = ТМЦ;
ТЗ.Родитель = ТМЦ.Родитель;
ТЗ.ПечЕд = ?(ВидЕдиницы = 1,ТМЦ.ОсновнаяЕдиница, ТМЦ.БазоваяЕдиница);
ТЗ.ПечТекстСтроки = ТМЦСтрока + ?(ТМЦ.МинОстаток=0,"",", мин. остаток = "+СокрЛП(глФРМКоличество(ТМЦ.МинОстаток,ТЗ.ПечЕд)));
ТЗ.ПечКод = ТМЦ.Код;
ТЗ.ПечКодПоз = ТМЦ.КодСоответствия;
Если ВыводитьЗаказанный = 1 Тогда
ТЗ.Заказано = Запрос.ЗаказаноКонОст;
КонецЕсли;
ЗаполнитьСтроку(ТЗ, Запрос, СписокСкладов, ВДокумент);
КонецЕсли; 
глОживить(1);

КонецЦикла;       

// Последняя строка для общих итогов
ТЗ.НоваяСтрока();
ТЗ.Уровень = 12;

РассчитатьИтогиПоГруппам(СписокСкладов);     

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1  Цикл
ПечТекстСтроки = ТЗ.ПечТекстСтроки  + Группа.Наименование;
ПечКод = ТЗ.ПечКод;
ПечКодПоз = ТЗ.ПечКодПоз;
ПечЕд = ТЗ.ПечЕд;
ТекРасшифровка = ТЗ.ТекРасшифровка;
    Если (ТЗ.Уровень > 0) И (ТЗ.Уровень < 12) Тогда       
ИмяСекции = "СтрокаГ";           
ИначеЕсли ТЗ.Уровень = 12 Тогда
ИмяСекции = ?((ПредставлениеЦены <> "не показывать") ИЛИ (ИтогиПоКоличеству = 1),"ПодвалИтого","Подвал");
Иначе
Если ТЗ.ТекРасшифровка.Матрица=1 Тогда
ИмяСекции = "СтрокаМ";
Иначе
ИмяСекции = "Строка";
КонецЕсли;
КонецЕсли;             
Таб.ВывестиСекцию(ИмяСекции+"|ТМЦ");




Tatitutu

Решение есть. Сам запрос выложите
там нужно поставить группировка Номенклатура без групп

*  MAGAZKA - лучшая программа для розничного магазина (с) *

skillful

запрос

Функция ТекстЗапросаБезКомиссии()

   СтрПериод = ?(ДатаКонца>= ПолучитьДатуТА(),"",
   "Период с ДатаКонца по ДатаКонца;");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |" + СтрПериод +
   "
   |Фирма              = Регистр.ОстаткиТМЦ.Фирма,             
   |                           Регистр.РезервыТМЦ.Фирма;
   |УпрАналитика = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
   |                           Регистр.РезервыТМЦ.Фирма.УпрАналитика;
   |ЮрЛицо = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,     
   |                           Регистр.РезервыТМЦ.Фирма.ЮрЛицо;
   |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура,     
   |                           Регистр.Заказы.Номенклатура,
   |                           Регистр.РезервыТМЦ.Номенклатура;
   |Склад = Регистр.ОстаткиТМЦ.Склад,             
   |                           Регистр.РезервыТМЦ.Склад;"; 

   Если ВыводитьЗаказанный = 1  Тогда
ТекстЗапроса = ТекстЗапроса +
"Заказано = Регистр.Заказы.КоличествоПриход;
|Функция ЗаказаноКонОст = КонОст(Заказано);";
   КонецЕсли;

   ТекстЗапроса = ТекстЗапроса +
   "Количество = Регистр.ОстаткиТМЦ.Количество;
   |Резерв     = Регистр.РезервыТМЦ.Количество;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Группировка Номенклатура"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+";";
               
   Возврат ТекстЗапроса;

КонецФункции // ТекстЗапросаБезКомиссии()



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск