Имя: Пароль:
1C
1C 7.7
v7: Альтернатива COUNT
,
0 oleg056
 
15.09.12
18:17
Необходимо сделать запрос к справочнику и выбрать повторяющиеся элементы по полям.
"КодТовара"
"Актуален"
Пример
ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = Перечисление.Да);
   |Группировка КодТовара;
   |Функция Всего = Считать(КодТовара)
   |"//}}ЗАПРОС
   ;
Чем заменить "Считать" в запросе что посчитать количество.
Заранее спасибо
1 miki
 
15.09.12
18:18
Счётчик
2 oleg056
 
15.09.12
18:32
Наверное , что то не так делаю
ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = Перечисление.Да);
   |Группировка КодТовара;
   |Функция Всего = Счётчик(КодТовара);
   |"//}}ЗАПРОС
Ошибка - "Поле агрегатного объекта не обнаружено (Да)2"
3 ДенисЧ
 
15.09.12
18:34
|Функция Всего = Счётчик();
4 miki
 
15.09.12
18:37
(2)для перечислений хорошим тоном считается указать вид.
5 oleg056
 
15.09.12
18:41
(3), (4)
Ошибка осталась
ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = Перечисление.Да);
   |Группировка КодТовара;
   |Функция Всего = Счётчик();
   |"//}}ЗАПРОС
6 miki
 
15.09.12
18:43
(5)читать умеем? Перед ".да" надо бы добавить идентификатор. 146%, что это "булево".
7 oleg056
 
15.09.12
18:46
(6)
Если вам не сложно? Можно пример
8 miki
 
15.09.12
18:47
Пример чего? Как написАть ".Булево" между "Перечисление" и ".Да"?
9 oleg056
 
15.09.12
18:52
Так работает
ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = 1);
   |Группировка КодТовара;
   |Функция Всего = Счётчик(КодТовара);
   |"//}}ЗАПРОС

А так нет

ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = Перечисление.Булево.Да);
   |Группировка КодТовара;
   |Функция Всего = Счётчик(КодТовара);
   |"//}}ЗАПРОС
10 ДенисЧ
 
15.09.12
18:53
Обогиядумнеяду....
перемДа = Перечисление.Булево.Да;
ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)

   |Код = Справочник.ТМЦ.Код;
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = перемДа);
   |Группировка КодТовара;
   |Функция Всего = Счётчик(КодТовара);
   |"//}}ЗАПРОС


И работать будет быстрее...
11 oleg056
 
15.09.12
18:56
Большое спасибо
12 oleg056
 
16.09.12
15:13
(4)(10)
Я не уверен. Но в справочнике я не нашел тип данных Булево.
Может вы путаете с 8кой
13 ДенисЧ
 
16.09.12
15:16
(12) А в справочнике не надо смотреть...
Надо посмотреть в Перечисленияю
А ещё нужно дваразаклацнуть по Актуален в конфигураторе и посмотреть  тип...
14 oleg056
 
16.09.12
16:19
(13)Разобрался
перемДа = Перечисление.ДаНет.Да;
Но осталась проблема с запросом уже все перепробовал (

ТекстЗапроса =
   "//{{ЗАПРОС(НайтиТМЦ)
   |КодТовара = Справочник.ТМЦ.КодТовара;
   |Актуален = Справочник.ТМЦ.Актуален;
   |Условие(Актуален = перемДа);
   |Функция Всего = Счётчик();
   |Группировка КодТовара;
   |"//}}ЗАПРОС
В Справочнике ТМЦ есть два товара с разным полем "Код", но одинаковым полем "КодТовара" оба актуальны. Проблема в том что Всего показывает 1, а не 2
15 miki
 
16.09.12
16:25
а сколько раз в выборку попадёт одно и тоже значение поля, по которому группировка?
Добавь ещё одну - вложенную, по элементам, может и получишь то, что хочешь...
16 НП
 
16.09.12
16:27
(0) Попробуйте без запроса. Загоните элементы с Актувльностью в таблицу значений, сверните по КодТовара.
17 oleg056
 
16.09.12
16:41
(15)(16)Сделал простой запрос к Справочнику ТМЦ и он не показывает новые добавленные единицы товара.
Хотя в справочнике, из под пользователя, их видно.
18 oleg056
 
16.09.12
16:43
Извините. Разобрался. Проблема была с Датой актуальностью итогов