|
подсчет количества | ☑ | ||
---|---|---|---|---|
0
Vasus55
17.01.12
✎
15:49
|
подскажите пожалуйста как можно реализовать следующую задачку??
создаю обычным способом отчет, в нем несколько колонок, в том числе ТипКонтакта мне необходимо в цикле (я так думаю) найти колонку типконтакта, найти в ней значения "Встреча" подсчитать их количество и вывести его в поле ввода |
|||
1
GROOVY
17.01.12
✎
15:51
|
Это же надо так формулировать задачу... Вроде и слова русские...
|
|||
2
AAlexandra
17.01.12
✎
15:53
|
(0) А "Обычным способом" - это, простите, как?
Для меня "обычным способом" - это СКД. А там есть вкладочка "Ресурсы".. |
|||
3
Shurjk
17.01.12
✎
15:54
|
КоличествоРазличных
|
|||
4
Vasus55
17.01.12
✎
15:55
|
через конструктор выходной формы
мне кажется это самый обычный для чайников способ)) |
|||
5
Vasus55
17.01.12
✎
16:02
|
(3) делаю так не пашет
|
|||
6
AAlexandra
17.01.12
✎
16:04
|
(5) чего конкретно делаешь и что конкретно не получается?
И вообще, тебя не смущает, что ты сначала запросом данные из БД получаешь, а потом их же собираешься "считать в цикле".. Может сразу в запросе и посчитать все, что тебе нужно? (3) это имел ввиду.. |
|||
7
Vasus55
17.01.12
✎
16:06
|
(6)
вот основной костяк Процедура ЭтапыРаботыСКлиентомИнициализация() //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ(ЭтапыРаботыСКлиентом) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! ПостроительОтчетаЭтапыРаботыСКлиентом.Текст = "ВЫБРАТЬ | ОбслуживаемыеКлиенты.Дата, | ОбслуживаемыеКлиенты.Менеджер, | ОбслуживаемыеКлиенты.Контрагент КАК Организация, | ОбслуживаемыеКлиентыКонтакты.ТипКонтакта КАК ТипКонтакта, | ОбслуживаемыеКлиентыКонтакты.Комментарии |ИЗ | Документ.ОбслуживаемыеКлиенты.Контакты КАК ОбслуживаемыеКлиентыКонтакты | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОбслуживаемыеКлиенты КАК ОбслуживаемыеКлиенты | ПО ОбслуживаемыеКлиентыКонтакты.Ссылка = ОбслуживаемыеКлиенты.Ссылка |ГДЕ | ОбслуживаемыеКлиенты.Дата МЕЖДУ &НачПериода И &КонПериода | И ОбслуживаемыеКлиентыКонтакты.ТипКонтакта = &ТипКонтакта | И ОбслуживаемыеКлиенты.Менеджер = &Менеджер | И ОбслуживаемыеКлиенты.Контрагент = &Контрагент |ИТОГИ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТипКонтакта) |ПО | Организация"; ПостроительОтчетаЭтапыРаботыСКлиентом.ЗаполнитьНастройки(); ПостроительОтчетаЭтапыРаботыСКлиентом.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок; ПостроительОтчетаЭтапыРаботыСКлиентом.ТекстЗаголовка = "Этапы работы с клиентом"; Настройка = ВосстановитьЗначение("НастройкаОтчетыЭтапыРаботыСКлиентомЭтапыРаботыСКлиентом_b8b0ac67-889a-4a10-bce2-1d92b0677d6b"); Если Настройка <> Неопределено Тогда ПостроительОтчетаЭтапыРаботыСКлиентом.УстановитьНастройки(Настройка); КонецЕсли; //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ КонецПроцедуры |
|||
8
1с-кин
17.01.12
✎
16:11
|
(0) из самого отчеты вы не получите ничего. Отчет - он сам получает, но ничего не отдает.
Вам нужно: - на основе условий запроса (7) сделать свой запрос, - отдельно обработать реквизит документов "ТипКонтакта = Встреча" и подсчитать их количество здесь, в запросе, - вывести результат в поле ввода. |
|||
9
GROOVY
17.01.12
✎
16:11
|
Чего сделать то надо? Подсчитать количество "Встреч"? Или подсчитать количество разных типов контактов? Или посчитать количество каждого из типов контактов? Куда эту информацию выводить? В итоги в макете? В поле ввода на форме?
|
|||
10
1с-кин
17.01.12
✎
16:11
|
(1) похоже, вы отвыкли работать с с не-пользователями 1С :)
|
|||
11
GROOVY
17.01.12
✎
16:12
|
(8) Из табличного документа можно спокойно брать данные после того как он сформирован.
|
|||
12
1с-кин
17.01.12
✎
16:14
|
(11) как вы будете обращаться к области памяти из 1С, где находится отчет? :)
либо внутри самого отчета (а зачем?), либо - сделать аналогичный запрос, но получить нужные данные. |
|||
13
1с-кин
17.01.12
✎
16:15
|
(9) >Куда эту информацию выводить? В итоги в макете? В поле ввода на форме?
это может совсем пеменять все обсуждение :) |
|||
14
1с-кин
17.01.12
✎
16:15
|
*поменять
|
|||
15
Vasus55
17.01.12
✎
16:22
|
ТипКОнтакта может принмиать разные значения, но мне нужно посчитать конкретно количество значений "встреча" и вы вести его в поле ввода, который находится в на форме отчета
понятно изъснился? |
|||
16
AAlexandra
17.01.12
✎
16:25
|
(15) а отчет тут причем? нужно только одно число получить? Никакую итоговую таблицу рисовать не надо?
|
|||
17
Vasus55
17.01.12
✎
16:28
|
(16) это одной из действий
просто в отчете я выбираю контрагента и выводится сотрудничество с ним, в этом же отчете выводится ТипКонтакта с ним(встреча, звонок, факс....)и нужно посчитать сколько раз происходила с ним встреча.... |
|||
18
1с-кин
17.01.12
✎
16:29
|
(17) контрагента выбираете ПОСЛЕ того, как отчет сформирован?
|
|||
19
Vasus55
17.01.12
✎
16:30
|
(18) нет до
|
|||
20
Vasus55
17.01.12
✎
16:33
|
данные выводятся в ПолеТабличногоДокумента
|
|||
21
1с-кин
17.01.12
✎
16:39
|
(19) тогда добавьте:
Результат = ПостроительОтчетаЭтапыРаботыСКлиентом.Выполнить().Выгрузить() и считайте количество либо по ТЗ, либо запросом к ТЗ, либо через Выборку (...Выполнить().Выбрать()). |
|||
22
1с-кин
17.01.12
✎
16:39
|
+ ТЗ - это Результат.
|
|||
23
1с-кин
17.01.12
✎
16:41
|
Добавить (21) можно там, где выполняется запрос (7)
|
|||
24
AAlexandra
17.01.12
✎
16:44
|
"ВЫБРАТЬ
| ОбслуживаемыеКлиенты.Дата, | ОбслуживаемыеКлиенты.Менеджер, | ОбслуживаемыеКлиенты.Контрагент КАК Организация, | ОбслуживаемыеКлиентыКонтакты.ТипКонтакта КАК ТипКонтакта, | ОбслуживаемыеКлиентыКонтакты.Комментарии, | ВЫБОР КОГДА ОбслуживаемыеКлиентыКонтакты.ТипКонтакта = &ТипКонтактаВстреча ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК КоличествоВстреч |ИЗ | Документ.ОбслуживаемыеКлиенты.Контакты КАК ОбслуживаемыеКлиентыКонтакты | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОбслуживаемыеКлиенты КАК ОбслуживаемыеКлиенты | ПО ОбслуживаемыеКлиентыКонтакты.Ссылка = ОбслуживаемыеКлиенты.Ссылка |ГДЕ | ОбслуживаемыеКлиенты.Дата МЕЖДУ &НачПериода И &КонПериода | И ОбслуживаемыеКлиенты.Менеджер = &Менеджер | И ОбслуживаемыеКлиенты.Контрагент = &Контрагент"; |ИТОГИ | СУММА(КоличествоВстреч) |ПО | Организация"; Например, можно так посчитать количество встреч в запросе.. На уровне группировки по контрагенту получишь число, не придется в цикле повторно записи обходить.. А вообще, почему ты делаешь запрос к документам? И раз уж делаешь, то пометку удаления проверять надо.. По регистрам нет движений? |
|||
25
Vasus55
17.01.12
✎
17:01
|
(21)уже выдает ошибку
Результат = ПостроительОтчетаЭтапыРаботыСКлиентом.Выполнить(); обращение к процедуре как к функции |
|||
26
AAlexandra
17.01.12
✎
17:07
|
(25) есть же синтаксис-помощник, там можно посмотреть, что делать дальше.. И как из ПостроителяОтчета получить РезультатЗапроса, а из него ТаблицуЗначений.
|
|||
27
Vasus55
17.01.12
✎
17:16
|
воще забыл про него)))
|
|||
28
Vasus55
17.01.12
✎
17:51
|
(26) че то синтаксис-помощник не особо мне помогает(((
|
|||
29
vmv
17.01.12
✎
17:54
|
(28) его назначение подсказать
|
|||
30
Vasus55
17.01.12
✎
17:56
|
(29) да нет вроде сам догадываюсь))
|
|||
31
AAlexandra
17.01.12
✎
17:58
|
(28) Это печально, без скилла Пользования синтаксис помощником писать что-то самому практически нереально..
1) ПостроительОтчета (ReportBuilder) Метод Выполнить (Execute) Описание: Выполняет запрос, построенный для отчета. Пример: ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.Текст = ТекстЗапроса; ПостроительОтчета.Выполнить(); 2) ПостроительОтчета (ReportBuilder) Свойство Результат Тип: РезультатЗапроса. Результат выполнения запроса для формирования отчета. 3) РезультатЗапроса (QueryResult) Методы Выгрузить (Unload) Описание: Создает таблицу значений (или дерево значений) и копирует в нее все записи набора. Пример: ТаблицаРезультатов = РезультатЗапроса.Выгрузить(); ИТОГ: ПостроительОтчетаЭтапыРаботыСКлиентом.Выполнить(); МояТЗ = ПостроительОтчетаЭтапыРаботыСКлиентом.Результат.Выгрузить(); Как-то так должно работать.. Еще где-то между ПостроительОтчетаЭтапыРаботыСКлиентом.Текст = "..." и ПостроительОтчетаЭтапыРаботыСКлиентом.Выполнить(); Должны параметры заполняться.. ;) |
|||
32
Vasus55
17.01.12
✎
18:42
|
AAlexandra
(17) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |