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


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #60 - 26. Октября 2012 :: 12:44
Печать  
Скачал "RiK_Sums", распаковал, зашел в конфигурацию.
Описалова то никакого нет, типа какие есть объекты, свойства и методы? Как в 1С++. Нашел только текст лицензии.
Разбираться в коде конфигурации ?
Больше точно ничего нет?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #61 - 26. Октября 2012 :: 12:50
Печать  
Улыбка

Слепить кросс-таблицу можно и в обычной ТЗ.
Вопрос в скорости и в универсальности только.
А можно и тупо при выводе в отчет.

На счет класса - там есть пример, и и описалово самого класса - там вроде как и так понятно, что передавать и как это сделано.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #62 - 26. Октября 2012 :: 15:02
Печать  
там есть файл 1CPP_Classes.als - положи его в 1cv7\bin или в каталог базы, и будет описание в 1с-ном синтакспомошнике (раздел Классы)
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #63 - 27. Октября 2012 :: 07:11
Печать  
Спасибо! Увидел, буду разбараться.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #64 - 27. Октября 2012 :: 09:26
Печать  
Satans Claws? а что это за третий параметр в строке
оИтогиПоГруппировкам.Инит(Контекст, тзГрп, 1);
В описании метода Инит(Конт, Группмровки) их только два ?
Параметр недокументированный, он есть? Каково его назначение?
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #65 - 27. Октября 2012 :: 09:56
Печать  
Сделал: ЗагрузитьВнешнююКомпоненту(КаталогИБ()+ "\RiK_SQL.dll")
Получил:
Компонента 1C++ инициализирована!
Компонента RiK_SQL.dll инициализирована!
Компонента FormEx инициализирована!
Компонента Моксель инициализирована!

Во внешнем отчете:
оИтогиПоГруппировкам = СоздатьОбъект("Отчет.ИтогиПоГруппировкам");
: Неудачная попытка создания объекта (Отчет.ИтогиПоГруппировкам)

Не пойму, что еще надо сделать, подскажите, плз.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #66 - 28. Октября 2012 :: 07:12
Печать  
В демке загляни в раздел Обработки. Там находятся определения и реализации классов.
Самый главный хедер - DefCls. При загрузке 1С++ анализирует именно его, и загружает всё что там описано. Этот хедер также может быть внешним файлом с имененм DefCls.prm.

В простейшем варианте просто перетащи все обработки из демки в свою конфу. Но желательно всё-же понимать, что делаешь.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #67 - 28. Октября 2012 :: 09:46
Печать  
Да, увидел, есть 5 обработок.
Для чего это - я так думаю, что кроме экспортных переменных, функций и процедур, 1С-ка ничего не увидит. Как еще могут использоваться эти обработки, явно ведь они не вызываются?

Вопрос: а как 1СРР работает без обработок, там ведь тоже есть классы?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #68 - 29. Октября 2012 :: 02:54
Печать  
Есть такая методология: Объектно Ориентированное Программирование.
Главное назначение 1С++ - это как раз реализация ООП в 1С. Всё остальное - бесплатное приложение.

Цитата:
... кроме экспортных переменных, функций и процедур, 1С-ка ничего не увидит
Это как раз есть часть концепции ООП. Называется "инкапсуляция".
Обработки h_ИтогиПоГруппировкам и классОтчет_ИтогиПоГруппировкам являются описанием нового типа Отчет.ИтогиПоГруппировкам.  И таких пользовательских типов в любой действующей системе дофига и больше.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #69 - 29. Октября 2012 :: 04:01
Печать  
Vlad7131 писал(а) 27. Октября 2012 :: 09:26:
Satans Claws? а что это за третий параметр в строке
оИтогиПоГруппировкам.Инит(Контекст, тзГрп, 1);
В описании метода Инит(Конт, Группмровки) их только два ?
Параметр недокументированный, он есть? Каково его назначение?



Потому что в моей базе этот класс достаточно серьезно допилен Улыбка
(на предмет дриллдауна, упрощения всяких однотипных действий и, наверное, много чего еще)
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #70 - 29. Октября 2012 :: 09:30
Печать  
Скопировал все обработки, почти все из глобальника, кроме загрузки компоненты. Строка СоздатьОбъект("Отчет.ИтогиПоГруппировкам") сработала. Но опять затык:
Отчет.ИтогиПоГруппировкам::ВывестиСтрокиГруппировок(Таблица Т=, ТаблицаЗначений ТЗ=, Число Уровень=1) : Поле агрегатного объекта не обнаружено
КонтекстФормы.ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя);
{классОтчет_ИтогиПоГруппировкам@MD(342) }

Вообще пишу типовой отчет "остатки товаров на складах" для типовой Торговли и склада. Редакции 8.
Может есть у кого готовый, можно вместе с конфой, любого релиза,
если с конфигурацией, то легче разбираться.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #71 - 29. Октября 2012 :: 10:10
Печать  
[quote author=Vlad7131 link=1348826949/60#70 date=1351503021]
Отчет.ИтогиПоГруппировкам::ВывестиСтрокиГруппировок(Таблица Т=, ТаблицаЗначений ТЗ=, Число Уровень=1) : Поле агрегатного объекта не обнаружено
КонтекстФормы.ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя);
[/quote]


Пишет же - в контексте формы отчета нет коллбэк-метода ВывестиСекцию().
Короче, в самом отчете должна быть процедура ВывестиСекцию() с 4 параметрами. Чуть раньше в кусках кода я даже приводил ее пример.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #72 - 29. Октября 2012 :: 10:50
Печать  
Да в том то и дело, что она есть:
//*******************************************************
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Если ИмяПоказателя = "Товар" Тогда
           Т.ВывестиСекцию("Строка");
     Иначе
           Т.ВывестиСекцию("Строка");
     КонецЕсли;
КонецПроцедуры
//*******************************************      
Процедура Печать()
     Т = СоздатьОбъект("Таблица");
     Т.ИсходнаяТаблица("ОстаткиЕд");
     оИтогиПоГруппировкам = СоздатьОбъект("Отчет.ИтогиПоГруппировкам");
     оИтогиПоГруппировкам.Инит(Контекст, "Товар,Склад");//, 1);
     оИтогиПоГруппировкам.ДобавитьКолонкуСуммы("Остаток", 2, "Ч015.2-");

     ТЗ.ВыбратьСтроки();
     Пока ТЗ.ПолучитьСтроку() = 1 Цикл  
           Beep();
           оИтогиПоГруппировкам.ПередПечатьюСтроки(Т, ТЗ);
           оИтогиПоГруппировкам.ПослеПечатиСтроки(Т, ТЗ);
     КонецЦикла;
     оИтогиПоГруппировкам.ПослеПечатиТаблицы(Т, ТЗ);
КонецПроцедуры
//*******************************************  
Процедура ОстаткиТоваров()
     Перем _инд;
     ТЗ = СоздатьОбъект("ТаблицаЗначений");
     Запрос = СоздатьОбъект("ODBCRecordset");
   Запрос.Отладка(Отладка);
     filter_cache_for_clients=0;      filter_cache_for_products_gr = 0;      filter_cache_for_products_el = 0;

     ТекстЗапроса="
     |      SELECT  
     |            СпрНоменклатура.ID as      [Товар $Справочник.Номенклатура],
     |        РегОстатки.Товар as      идТовар,
     |            РегОстатки.Склад as [Склад $Справочник.МестаХранения],
     |            РегОстатки.Склад as идСклад,
     |            РегОстатки.ОстатокТовараОстаток as Остаток
   |      FROM
     |            $РегистрОстатки.ОстаткиТоваров(:ДатаКон~,
     |            inner join $Справочник.Номенклатура as СпрНоменклатура (nolock) on СпрНоменклатура.id = Товар
     |            inner join $Справочник.МестаХранения as СпрСклады (nolock) on СпрСклады.id = Склад,
     |                               (Фирма='"+МД.ЗначениеВСтрокуБД(ПустаяФирма)+"') AND (СпрНоменклатура.IsFolder=2)"    
     +filter_vl("СпрНоменклатура",ВыбТовары)
     +filter_vl("СпрСклады",ВыбСклад)+"
   |,
     |                               (Фирма, Товар, Склад), (ОстатокТовара)) as РегОстатки  
     |   inner join $Справочник.Номенклатура as СпрНоменклатура (nolock) on СпрНоменклатура.id = РегОстатки.Товар
     |";
       Запрос.УстановитьТекстовыйПараметр("ДатаКон", ДатаКон);
     ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
     ТЗ.Сортировать("Товар,идТовар,Склад,идСклад");  
  Печать();
КонецПроцедуры
//========================================      
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #73 - 29. Октября 2012 :: 15:58
Печать  
в ГМ, после загрузки 1cpp добавь

     оНастройки = СоздатьОбъект("УправлениеНастройками");
     оНастройки.Включить("TurboBL");

Это включает возможность вазова процедур любого контекста.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: аналог слова "Все" или "Вошедшие в запрос"
Ответ #74 - 30. Октября 2012 :: 04:34
Печать  
Да, похоже, что ТурбоБЛ на включился - бывает такое.

ЗЫ

Код
Выбрать все
Процедура ВывестиСекцию(Т, ТЗ, стрПрефикс, ИмяПоказателя)
     Значение = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ИмяПоказателя);
     Если ИмяПоказателя = "Товар" Тогда
	     Т.ВывестиСекцию("Строка");
     Иначе
	     Т.ВывестиСекцию("Строка");
     КонецЕсли;
КонецПроцедуры 



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