Переключение на Главную Страницу Страницы: 1 ... 4 5 [6]  ОтправитьПечать
Очень популярная тема (более 25 ответов) аналог слова "Все" или "Вошедшие в запрос" (число прочтений - 22438 )
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #75 - 30. Октября 2012 :: 04:55
Печать  
Получилось, встал в отладчике на первую строку"ВывестиСекцию":
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Если ИмяПоказателя = "Товар" Тогда
           Т.ВывестиСекцию("Строка|Товар");
     Иначе
           Т.ПрисоединитьСекцию("Строка|Склад");
     КонецЕсли;
КонецПроцедуры
У меня плоская таблица с колонками: Товар, Склад,Остаток.
Тлько для каждого товара - разное количество строк со складами.
С помощью этого класса товар - по вертикали, а склады по горизонтали не вывести? Или надо сначала добиться чтобы для каждого товара были все возможные склады, где то с 0 остатком?
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #76 - 30. Октября 2012 :: 05:05
Печать  
кури в сторону метода класса
УстановитьПараметрыРазворотаПоГоризонтали(ИмяПоказателя, сзЗначения, НачКолонка)

сзЗначения - это список со всеми значениями показателя, разворачиваемого по горизонтали.
Обычный способ получения оного такой:

Код
Выбрать все
сзЗначения = СоздатьОбъект("СписокЗначений");
ТЗ_Копия = СоздатьОбъект("ТаблицаЗначений");
ТЗ.Выгрузить(ТЗ_Копия,,, ИмяПоказателя);
ТЗ_Копия.Свернуть(ИмяПоказателя, "");
ТЗ_Копия.Сортировать(ИмяПоказателя, 1);
ТЗ_Копия.Выгрузить(сзЗначения,,, ИмяПоказателя); 



  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #77 - 30. Октября 2012 :: 05:06
Печать  
Вывести. Класс умеет выводить простыню по горизонтали.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #78 - 30. Октября 2012 :: 06:07
Печать  
Это я сделал:
Процедура Печать()
     Т = СоздатьОбъект("Таблица");
     Т.ИсходнаяТаблица("ОстаткиЕд");
     оИтогиПоГруппировкам = СоздатьОбъект("Отчет.ИтогиПоГруппировкам");
     оИтогиПоГруппировкам.Инит(Контекст, "Товар,Склад");//, 1);
     оИтогиПоГруппировкам.ДобавитьКолонкуСуммы("Остаток", 2, "Ч015.2-");  
сзСклады = СоздатьОбъект("СписокЗначений");
ТЗ_Копия = СоздатьОбъект("ТаблицаЗначений");
ТЗ.Выгрузить(ТЗ_Копия,,, "Склад");
ТЗ_Копия.Свернуть("Склад", "");
ТЗ_Копия.Сортировать("Склад", 1);
ТЗ_Копия.Выгрузить(сзСклады,,, "Склад");
  3);
     
     ТЗ.ВыбратьСтроки();
     Пока ТЗ.ПолучитьСтроку() = 1 Цикл  
           Beep();
           оИтогиПоГруппировкам.ПередПечатьюСтроки(Т, ТЗ);
           оИтогиПоГруппировкам.ПослеПечатиСтроки(Т, ТЗ);
     КонецЦикла;
     оИтогиПоГруппировкам.ПослеПечатиТаблицы(Т, ТЗ);
КонецПроцедуры
А каков порядок вывода в таблицу?
//*******************************************      
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Если ИмяПоказателя = "Товар" Тогда
           Т.ВывестиСекцию("Строка|Товар");
     Иначе
           Т.ПрисоединитьСекцию("Строка|Склад");
     КонецЕсли;
КонецПроцедуры
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #79 - 30. Октября 2012 :: 07:36
Печать  
[quote author=Vlad7131 link=1348826949/75#78 date=1351577221]
//*******************************************      
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Если ИмяПоказателя = "Товар" Тогда
           Т.ВывестиСекцию("Строка|Товар");
     Иначе
           Т.ПрисоединитьСекцию("Строка|Склад");
     КонецЕсли;
КонецПроцедуры [/quote]




[code]Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Т.ВывестиСекцию("Строка|Товар");
     Для й 1 = по КоличествоЗначенийПоГоризонтали Цикл
           Т.ПрисоединитьСекцию("Строка|Склад");
     КонецЦикла;
КонецПроцедуры[/code]
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #80 - 30. Октября 2012 :: 11:42
Печать  
Для й=1 по КоличествоЗначенийПоГоризонтали Цикл

А где определяется это КоличествоЗначенийПоГоризонтали ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #81 - 30. Октября 2012 :: 11:55
Печать  
Дык к классу есть наглядный пример, давно бы уже скормил свою ТЗ, подправил макет и наслаждался
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #82 - 30. Октября 2012 :: 11:58
Печать  
Какой пример, это отчет из конфигурации RIK?
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #83 - 30. Октября 2012 :: 12:05
Печать  
3);
КоличествоЗначенийПоГоризонтали=сзСклады.РазмерСписка();

А здесь где брать товар,склад:
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Товар=???
     Т.ВывестиСекцию("Строка|Товар");
     Для й = 1 по КоличествоЗначенийПоГоризонтали Цикл
           Склад=???
           Остаток=???
           Т.ПрисоединитьСекцию("Строка|Склад");
     КонецЦикла;
КонецПроцедуры
Переменная "й" где нибудь используется?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #84 - 30. Октября 2012 :: 12:28
Печать  
Vlad7131 писал(а) 30. Октября 2012 :: 11:58:
Какой пример, это отчет из конфигурации RIK?


ну да.

ЗЫ: и что самое главное, в хейдере класса в комментах перечислены все методы класса и зачем они нужны.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 
ОтправитьПечать