|
v8: Узнать количество элементов номенклатуры. | ☑ | ||
---|---|---|---|---|
0
artprog
15.01.12
✎
14:53
|
Добрый день.
Делаю перебор номенклатуры таким образом: dynamic result = baza.Справочники.Номенклатура.Выбрать(); while ((bool)result.Следующий()) {} как перед этим узнать количество элементов номенклатуры, не помеченных на удаление? |
|||
1
aleks-id
15.01.12
✎
14:58
|
запросом
|
|||
2
aleks-id
15.01.12
✎
14:59
|
выбрать
количество(1) из справочник.номенклатура как товар где не товар.пометкаудаление и не товар.этогруппа |
|||
3
Александр_
Тверь 15.01.12
✎
15:00
|
ВЫБРАТЬ
СУММА(1) КАК КоличествоЭлементов ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ (НЕ Номенклатура.ПометкаУдаления) |
|||
4
PR
15.01.12
✎
15:00
|
(2), (3) КОЛИЧЕСТВО(*)
|
|||
5
aleks-id
15.01.12
✎
15:01
|
(4) да на коленке писал второпях ))
|
|||
6
Александр_
Тверь 15.01.12
✎
15:02
|
(4) ы?
|
|||
7
artprog
16.01.12
✎
13:47
|
Спасибо :) но если делать это запросом, то правильнее наверное запросом выбрать всю номенклатуру, а потом узнать количество элементов выборки? Не подскажите такой запрос?
я с составителем запросов не дружу) |
|||
8
evgen2011
16.01.12
✎
13:49
|
(0) в армии 1с-ить завставляют?
|
|||
9
Wobland
16.01.12
✎
13:49
|
(7) бери (4), не мучайся
|
|||
10
artprog
16.01.12
✎
13:50
|
правда есть один нюанс. у меня на c# проходят только запросы к регистрам, а запросы к справочникам вылетают ошибкой. Почему это может происходить?
|
|||
11
andrewks
16.01.12
✎
13:50
|
(10) запрос, код и описание ошибки в студию
|
|||
12
andrewks
16.01.12
✎
13:51
|
(4) а (3) тут ни при чём
|
|||
13
Ненавижу 1С
гуру
16.01.12
✎
13:52
|
а цель конечная?
|
|||
14
artprog
16.01.12
✎
14:23
|
(11)
zapros_nom.Текст = @" |ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ЛОЖЬ"; dynamic result = zapros_nom.Выполнить().Выбрать(); вылетает Ссылка на объект не указывает на экземпляр объекта. |
|||
15
artprog
16.01.12
✎
14:28
|
(13)конечная цель програмно выгрузить всю номенклатуру + цены + остаток в файл
|
|||
16
Ненавижу 1С
гуру
16.01.12
✎
14:30
|
(15) а зачем знать количество элементов выборки?
|
|||
17
artprog
16.01.12
✎
14:31
|
чтобы отображать прогрессбар
|
|||
18
artprog
16.01.12
✎
14:32
|
(16) а то человек прождав, пока выгрузится 65000 наименований решит что еще долго и остановит, а там может 500 их осталось.
|
|||
19
Ненавижу 1С
гуру
16.01.12
✎
14:33
|
(18) у выборки есть метод Количество()
|
|||
20
artprog
16.01.12
✎
14:34
|
(19)у выборки да, но у меня запрос к справочнику не проходит.
Ссылка на объект не указывает на экземпляр объекта. |
|||
21
Ненавижу 1С
гуру
16.01.12
✎
14:35
|
(20) ошибка то на какой строке конкретно?
|
|||
22
artprog
16.01.12
✎
14:35
|
(21) dynamic result = zapros_nom.Выполнить()
|
|||
23
GROOVY
16.01.12
✎
14:36
|
(22) Пиши на православном языке, что за замашки дикие на латинице код составлять?
|
|||
24
Ненавижу 1С
гуру
16.01.12
✎
14:37
|
а так?
dynamic result = zapros_nom.Выполнить(); dynamic selection = result.Выполнить(); |
|||
25
artprog
16.01.12
✎
14:40
|
на первой строчке
|
|||
26
Ненавижу 1С
гуру
16.01.12
✎
14:41
|
(25) тогда больше текста, может ты объект запрос криво создаешь?
|
|||
27
artprog
16.01.12
✎
14:44
|
dynamic zapros_nom = baza.NewObject("Запрос");
zapros_nom.Текст = @" |ВЫБРАТЬ ПЕРВЫЕ 500 | СпНоменклатура.Код |ИЗ | Справочник.Номенклатура КАК СпНоменклатура |ГДЕ | СпНоменклатура.ПометкаУдаления = ЛОЖЬ"; dynamic result = zapros_nom.Выполнить().Выбрать(); |
|||
28
artprog
16.01.12
✎
14:45
|
например вот такой запрос работает нормально:
z_nom_ost = @"ВЫБРАТЬ ОстаткиТоваров.Номенклатура КАК Tovar, ОстаткиТоваров.КоличествоОстаток КАК Kolichestvo ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ОстаткиТоваров ГДЕ ОстаткиТоваров.Склад.Код = &Склад"; ВСЕ запросы к регистрам работают, а к справочникам - нет. |
|||
29
Ненавижу 1С
гуру
16.01.12
✎
14:46
|
ничего не нашел, кроме как синонимы полей сделать на латинице?
|
|||
30
GROOVY
16.01.12
✎
14:47
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 500 Код ИЗ Справочник.Номенклатура ГДЕ НЕ ПометкаУдаления"; Результат = Запрос.Выполнить(); |
|||
31
GROOVY
16.01.12
✎
14:48
|
(28) За такой запрос обычно принято расстреливать.
|
|||
32
artprog
16.01.12
✎
14:48
|
(31) почему?
|
|||
33
Ненавижу 1С
гуру
16.01.12
✎
14:49
|
(32) он намекает на параметры виртуальной таблицы
|
|||
34
artprog
16.01.12
✎
14:49
|
(31) это уже сотая модификация запроса. изначально был такой:
" |ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.ПометкаУдаления = ЛОЖЬ"; |
|||
35
GROOVY
16.01.12
✎
14:49
|
(33) + на Код = &Склад
|
|||
36
GROOVY
16.01.12
✎
14:51
|
Моя рекомендация посмотреть мультики по основам запросов http://chistov.spb.ru/publ/free_webinar/6
|
|||
37
Ненавижу 1С
гуру
16.01.12
✎
14:51
|
(35) так я понял он из-вне параметры получает (не из базы)
|
|||
38
Ненавижу 1С
гуру
16.01.12
✎
14:52
|
и к чему (30), если автор пишет на C#?
|
|||
39
artprog
16.01.12
✎
14:52
|
(36) я запросы к 1ске вообще не пишу, мне нужно разобраться почему он не работает со справочниками, а с регистрами работает
|
|||
40
Griffin
16.01.12
✎
14:57
|
(34) Может, тоже надо псевдоним присвоить, как в запросе к регистру? И еще, по такому запросу в выборку попадут группы справочника, если он иерархический
|
|||
41
artprog
16.01.12
✎
15:03
|
(40) мне как раз с группами нужно
|
|||
42
artprog
16.01.12
✎
15:04
|
пробовал так:
Запрос.Текст = " |ВЫБРАТЬ | СпНоменклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК СпНоменклатура |ГДЕ | СпНоменклатура.ПометкаУдаления = ЛОЖЬ"; |
|||
43
Griffin
16.01.12
✎
15:06
|
(42) А так:
Запрос.Текст = " |ВЫБРАТЬ | СпНоменклатура.Ссылка как SprNom_ra |ИЗ | Справочник.Номенклатура КАК СпНоменклатура |ГДЕ | СпНоменклатура.ПометкаУдаления = ЛОЖЬ"; |
|||
44
artprog
16.01.12
✎
15:07
|
не работает. Ссылка на объект не указывает на экземпляр объекта.
|
|||
45
artprog
16.01.12
✎
19:39
|
Есть еще идеи?
|
|||
46
hhhh
16.01.12
✎
20:29
|
(44) а на какой строке выдает ошибку ссылка на объект? Пока у тебя таблица здесь, до объектов еще далеко.
|
|||
47
artprog
16.01.12
✎
21:00
|
(46) dynamic result = zapros_nom.Выполнить();
|
|||
48
artprog
17.01.12
✎
20:50
|
эгегей!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |