Имя: Пароль:
1C
1C 7.7
v7: Временные таблицы
0 oleg056
 
17.09.12
11:05
Добрый день.
Есть ли в 1с7 что то на подобие временных таблиц.

Пример: Отфильтровать Справочник ТМЦ по "Актуальным" и делать запрос уже к отфильтрованному справочнику
1 Ёпрст
 
17.09.12
11:09
есть
2 dk
 
17.09.12
11:15
1c++ могет
3 oleg056
 
17.09.12
11:15
(1)
Можете подсказать как такое реализовать программно. Или реализация такаяже что и Справочник ПрайсЛист
4 oleg056
 
17.09.12
11:16
(2)
А стандартными методами не как?
5 Светлый Гений
 
17.09.12
11:18
(4)никак
6 dk
 
17.09.12
11:18
никак, только фильтрацию по предварительно отобранному списку значений можно, а вот свою таблицу с несколькими заданными полями - вроде никак
7 Ёпрст
 
17.09.12
11:20
(5,6) та ну ?
запрос-тз-запрос к тз..
8 dk
 
17.09.12
11:20
что за запрос к ТЗ в 7-ке?
9 Vakhrin
 
17.09.12
11:20
(7) запрос к ТЗ? стандратно? в семерке??
10 Светлый Гений
 
17.09.12
11:21
(7)что-то новое?
11 Vakhrin
 
17.09.12
11:21
можно без 1С++, но все равно через доп.объекты... например ADO )
12 dk
 
17.09.12
11:26
(7) "Акела промахнулся"? )
13 oleg056
 
17.09.12
11:35
Хм... Всем Спасибо.
Тогда обойдусь пока запросом
14 Ёпрст
 
17.09.12
11:37
(8) да, а что ?
15 Vakhrin
 
17.09.12
11:47
(14) поделись, плз!.. (наверное я что-то подзабыл уже))
16 GreyK
 
17.09.12
12:11
(15) Это тайное знание основанное на просветлении при танцах с бубном :)

Перем ТаблОстатков;
//_____________________________________________________________________________
Функция МояФункция(Товар)
   Результат = 0;
   Если Товар.ЭтоГруппа()=0 Тогда
       НомСтроки = 0;
       Если ТаблОстатков.НайтиЗначение(Товар,НомСтроки,"Товар") = 1 Тогда
           Результат = ТаблОстатков.ПолучитьЗначение(НомСтроки,"Остаток");
       КонецЕсли;
   КонецЕсли;
КонецФункции //Товар
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Где-то мы нашли таблицу с остатками товаров без итогов по группам, вот такая печалька :)
   //Но мы не привыкли отступать!
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Товар = Справочник.Товары.ТекущийЭлемент;
   |Функция Остаток = Сумма(МояФункция(Товар));
   |Группировка ТекущийЭлемент;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

Надеюсь верховный жрец не покарает за разглашение...
17 Vakhrin
 
17.09.12
12:17
(16) условия по нескольким полям для выборки суммы, среднего и/или еще что можно сделать?
18 GreyK
 
17.09.12
12:19
(17) Можно.
19 Vakhrin
 
17.09.12
12:20
(18) это хорошо )
20 Cthulhu
 
17.09.12
13:47
(16): такая функция даст целое значение. некошерно.
21 Ёпрст
 
17.09.12
13:50
(20) даёт любое значение, если что.
22 Ёпрст
 
17.09.12
13:50
с любой точностью.
23 Ёпрст
 
17.09.12
13:51
+22 нужно только добавить в неё переменную текста запроса с нужной точностью.
24 Cthulhu
 
17.09.12
13:59
(21): даладно?.. сам же говорил, что по разрядности реквизита из используемой в функции переменной запроса, а иначе нулевая точность... или как?..
25 Cthulhu
 
17.09.12
13:59
(23): во. а на примере (16)?..
26 Ёпрст
 
17.09.12
14:02
(25)

   |Период с ВыбНачПериода по ВыбКонПериода;
   |Товар = Справочник.Товары.ТекущийЭлемент;
   |ПеременнаяДляТочности = Справочник.Товары.РеквизитТипаЧислоСНУжнойТочностью;
   |Функция Остаток = Сумма(ПеременнаяДляТочности -ПеременнаяДляТочности + МояФункция(Товар));
   |Группировка ТекущийЭлемент;
27 Ёпрст
 
17.09.12
14:03
вообще, можно и с другово объекта взять переменную ( с документа, к примеру) она в вычисленной функции всё равно не принимает участия (нуль там), так, для точности ради.
28 Cthulhu
 
17.09.12
14:09
(27): и не тормозит выполнение запроса?..
29 PuhUfa
 
17.09.12
14:09
(26)(27) о как!
30 PuhUfa
 
17.09.12
14:10
Вроде же было достаточно умножить и потом поделить
31 Cthulhu
 
17.09.12
14:10
(28)+: а если в переменной запроса "для точности" которая просто использовать прямое присвоение, типа "ПеременнаяДляТочности = 0.0001"?..
32 Cthulhu
 
17.09.12
14:11
(30): лишние телодвижения. и существенно "привнесенные" - нуждающиеся в правке при изменении метаданных...
33 Ёпрст
 
17.09.12
14:17
(28) неа.. да и не с чего
34 Ёпрст
 
17.09.12
14:18
(31) дык в черном запросе точность вычисленной функции берётся из её переменной, переменную ПеременнаяДляТочности = 0.0001 не слепить.
35 Cthulhu
 
17.09.12
14:52
(34): а "ПеременнаяДляТочности = ВнешняяПеременнаяДляТочности;" - которая 0.001, ммм?..