|
v7: Опять запрос.. (я не умею называть темы) | ☑ | ||
---|---|---|---|---|
0
bananan
17.01.13
✎
17:15
|
Есть готовый запрос
Текст запроса такой: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |ТМЦ = Регистр.Обороты.ТМЦ; |Клиент = Регистр.Обороты.Клиент; |Агент = Регистр.Обороты.Агент; |РасходГрн = Регистр.Обороты.РасходГрн; |РасходКво = Регистр.Обороты.РасходКво; |Функция РасходГрнСумма = Сумма(РасходГрн); |Функция КвоРасход = Сумма(РасходКво); |Группировка Агент без групп; |Группировка Клиент без групп; |Группировка ТМЦ; |Условие(ТМЦ в ВыбТМЦ); |Условие(Клиент в ВыбКлиент); |Условие(Агент в ВыбАгент);"; Если СпИнкас.ТекущаяСтрока() = 2 Тогда ТекстЗапроса = ТекстЗапроса +" |Условие(Клиент.Инкас =0);"; ИначеЕсли СпИнкас.ТекущаяСтрока() = 3 Тогда ТекстЗапроса = ТекстЗапроса +" |Условие(Клиент.Инкас =1);"; Конецесли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Так вот: нужно сюда добавить возможность выбора склада.. я сделал так: "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Склад = Регистр.Обороты.Склад; |ТМЦ = Регистр.Обороты.ТМЦ; |Клиент = Регистр.Обороты.Клиент; |Агент = Регистр.Обороты.Агент; |РасходГрн = Регистр.Обороты.РасходГрн; |РасходКво = Регистр.Обороты.РасходКво; |Функция РасходГрнСумма = Сумма(РасходГрн); |Функция КвоРасход = Сумма(РасходКво); |Группировка Агент без групп; |Группировка Клиент без групп; |Группировка ТМЦ; |Условие(Склад в выбСклад); |Условие(ТМЦ в ВыбТМЦ); |Условие(Клиент в ВыбКлиент); |Условие(Агент в ВыбАгент);"; Если СпИнкас.ТекущаяСтрока() = 2 Тогда ТекстЗапроса = ТекстЗапроса +" |Условие(Клиент.Инкас =0);"; ИначеЕсли СпИнкас.ТекущаяСтрока() = 3 Тогда ТекстЗапроса = ТекстЗапроса +" |Условие(Клиент.Инкас =1);"; Конецесли; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда НИчего в результатах не изменилось. К тому же в форме добавил "поле" для выбора склада... ну и кнопки к этому полю.. Когда при открытии отчета в первый раз нажимаю кнопку выбора - нормально работает. А когда после этого еще раз нажимаю на кнопку выбора - выдает ошибку: Если выбСклад.РазмерСписка()>0 Тогда {\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВ.ERT(436)}: Поле агрегатного объекта не обнаружено (РазмерСписка) Ну и два впороса: 1. Что не так у меня в запросе 2. Что не так с полем выбора склада? |
|||
1
Попытка1С
17.01.13
✎
17:17
|
выбСклад это реквизит а не Список
|
|||
2
КонецЦикла
17.01.13
✎
17:17
|
Условия по складу нет в запросе, вот что не так
ЗЫ. Угадал автора не открывая топег, кстати |
|||
3
bananan
17.01.13
✎
17:18
|
(2) А это что:
|Условие(Склад в выбСклад); |
|||
4
bananan
17.01.13
✎
17:19
|
(1) Ну и как обходиться с реквезитом?
|
|||
5
КонецЦикла
17.01.13
✎
17:19
|
(3) А если не выбран?
Делай по аналогии с имеющимся блин |
|||
6
КонецЦикла
17.01.13
✎
17:20
|
Если ВыбСклад.Выбран() = 1 Тогда
ТекстЗапроса = ТекстЗапроса +" |Условие(Склад = ВыбСклад);"; КонецЕсли; |
|||
7
bananan
17.01.13
✎
17:22
|
(6) Спасибо!
|
|||
8
Ёпрст
17.01.13
✎
17:22
|
(0)
Если выбСклад.РазмерСписка()>0 вот это выкинь и привет |
|||
9
КонецЦикла
17.01.13
✎
17:24
|
(8) Да, должно и так прокатить, забыл уже :)
|
|||
10
miki
17.01.13
✎
17:28
|
(6)Плохой совет. А если есть группы? А если не выбран?
(8)Или принудительно пихать в СЗ пустышку, как вариант. |
|||
11
bananan
17.01.13
✎
17:29
|
Делал все по аналогии того запроса и формы какие были... НО
Сначала предисловие поле выбора склада в рамке к нему "приатачены" 4 кнопки "...", "......", "Х" и "ХХ" третья кнопка - удалить текущий слкад, яетвертая - удалить все склады Потому что здесь Склад - реквизит регистра, а не список - возникает вопрос: "Как удалить текущий склад\все склады?" |
|||
12
sapphire
17.01.13
✎
17:30
|
ТС изменяет 1С++ с нативными запросами....
|
|||
13
bananan
17.01.13
✎
17:30
|
(10) Пардон, а что такое СЗ?
|
|||
14
Ёпрст
17.01.13
✎
17:32
|
(11) Выбсклад=""
|
|||
15
bananan
17.01.13
✎
17:33
|
(14) Не понял Выбсклад что присвоить?
|
|||
16
miki
17.01.13
✎
17:33
|
(15)ничего. Буквально :))
|
|||
17
varelchik
17.01.13
✎
17:34
|
(13) СЗ=СписокЗначений
|
|||
18
miki
17.01.13
✎
17:34
|
+ и два_икса тебе ни к чему, раз не СЗ (список значений), а просто поле.
|
|||
19
bananan
17.01.13
✎
17:44
|
(17-18) Спасибо
|
|||
20
bananan
17.01.13
✎
17:44
|
(16) Где выбСклад ничего не присваивать?
|
|||
21
miki
17.01.13
✎
17:49
|
где Х "Удалить". В твоём случае лучше написать "Очистить" или "По всем".
|
|||
22
bananan
17.01.13
✎
18:10
|
(21) Сейчас там стоит код: выбСклад.УдалитьЗначение(выбСклад.ТекущаяСтрока()), т.е. кго заменить на процедуру очистки списка значений?
|
|||
23
miki
17.01.13
✎
18:14
|
(22)у тебя же нету СЗ? Если просто поле - очищай как в (14). А для XX-"удалить все склады" на нет СЗ и суда нет.
|
|||
24
Cthulhu
17.01.13
✎
18:15
|
мне кажется, что наступает самое время для выяснения того, что, оказывается, вдруг понадобилось фильтровать по нескольким складам.
|
|||
25
bananan
17.01.13
✎
18:19
|
(23) Поле для выбора склада я делал так: добавить реквезить диалога в тип указал сто это Список.Склады
Вопрос у меня в этой форме уже были поля для выбора: ТМЦ Агент Клиент Так вот когда запускаю скрипт на выполнение те поля что были: коращены в белый, а то что я добавил - серый Тут видимо не такие поля? |
|||
26
bananan
17.01.13
✎
18:37
|
И вообще честно говоря я не понимаю в чем разница при нажатии на кнопку "..." и кнопку "...."
|
|||
27
Ёпрст
17.01.13
✎
18:38
|
(26) смотри формулу кнопки.
|
|||
28
bananan
17.01.13
✎
18:43
|
(27) Для первой кнопки ВыбратьТМЦ(0) для второй выбратьТМЦ(1)
Вот код процедуры ВыбратьТМЦ(Реж): Процедура ВыбратьТМЦ(Реж) Перем Фрм; Перем Тек; Если ВыбТМЦ.РазмерСписка()>0 Тогда Тек=ВыбТМЦ.ПолучитьЗначение(ВыбТМЦ.ТекущаяСтрока()); КонецЕсли; ОткрытьПодбор("Справочник.ТМЦ",,Фрм,Реж,Тек); Фрм.ВыборГруппы(1); КонецПроцедуры В чем разница? |
|||
29
Cthulhu
17.01.13
✎
18:45
|
В 4-м параметре вызова системной процедуры открытия подбора.
|
|||
30
bananan
17.01.13
✎
18:51
|
(29) А если это подСправоник.Склады?
|
|||
31
Cthulhu
17.01.13
✎
18:53
|
(30): я не знаю, что такое "подСправочник".
|
|||
32
bananan
17.01.13
✎
18:54
|
+(30) Ну и в конце концов в первом случае что делается и что делается во тором случае??
|
|||
33
bananan
17.01.13
✎
18:55
|
(31) Я брал єто поле для вібора склада, склад выбираю из Справочника.Склады
|
|||
34
miki
17.01.13
✎
19:01
|
(32) выбор может единичным (ткнул->выбрал->форма выбора закрылась сама) и множественным (ткнул->выбрал, ткнул->выбрал, ..., ткнул->выбрал, пока сам форму выбора не закроешь).
|
|||
35
bananan
17.01.13
✎
19:13
|
(34) уже вроде просветлело у меня в мозгу :)
|
|||
36
bananan
17.01.13
✎
19:27
|
Еще вопрос когда я нажимаю кнопку "...." возде складов (открывается окно выбора складов) но когда клацаю на складе он появляется в окне выбора ТМЦ а не в окне выбора складов
Полчему? Команда у кнопки "...." возле ТМЦ - ВыбратьТМЦ(1), вощле складов вЫбратьСклады(1) соответственные процедуры: Процедура ВыбратьТМЦ(Реж) Перем Фрм; Перем Тек; Если ВыбТМЦ.РазмерСписка()>0 Тогда Тек=ВыбТМЦ.ПолучитьЗначение(ВыбТМЦ.ТекущаяСтрока()); КонецЕсли; ОткрытьПодбор("Справочник.ТМЦ",,Фрм,Реж,Тек); Фрм.ВыборГруппы(1); КонецПроцедуры и Процедура ВыбратьСклад(Реж) Перем Фрм; Перем Тек; ОткрытьПодбор("Справочник.Склады",,Фрм,Реж,Тек); Фрм.ВыборГруппы(1); КонецПроцедуры Почему склад появляется в окне ТМЦ? |
|||
37
monsterZE
17.01.13
✎
19:51
|
=) потому что криво написана обработка подбора
|
|||
38
bananan
17.01.13
✎
19:54
|
(37) нашел,:
Процедура ОбработкаПодбора(Выб) Если Выб.Вид()="Клиенты" Тогда ВыбКлиент.ДобавитьЗначение(Выб); ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка()); ИначеЕсли Выб.Вид()="Агент" Тогда ВыбАгент.ДобавитьЗначение(Выб); ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка()); Иначе ВыбТМЦ.ДобавитьЗначение(Выб); ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка()); КонецЕсли; КонецПроцедуры НО, понятия не имею как мне сюда "прикрутить" складі... :( |
|||
39
bananan
17.01.13
✎
19:57
|
т.е. Выб.Вид() - это что ?
|
|||
40
bananan
17.01.13
✎
19:58
|
или вернее как здесь мне определить что выбор произошел в окне выбора склада??
|
|||
41
bananan
17.01.13
✎
20:01
|
+ (39)(40) все - разобрался сам
|
|||
42
bananan
18.01.13
✎
12:25
|
Еще вопрос: у меня на форме несколько элементов, например на данный момент меня интересует выбСклад и ВыбТМЦ, как програмно узнать тип выбСклад и тип ВыбТМЦ? Скорее всего этот вопрос из элементарных, но, сори, я не знаю как это сделать.
|
|||
43
monsterZE
18.01.13
✎
12:30
|
ТтипЗначения?
|
|||
44
monsterZE
18.01.13
✎
12:30
|
с одной т =)
|
|||
45
monsterZE
18.01.13
✎
12:31
|
Ctrl+F1 - там ответы на большенство "элементарных" вопросов ;-)
|
|||
46
bananan
18.01.13
✎
12:39
|
(43)(45) Я чегното не понимаю задал :
Сообщить("СКлиентамиСАгентами()"); Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); Выдает: СКлиентамиСАгентами() 111 Как это понимать? Где, к примеру: " = ВыбТМЦ, "?? И что за 111? |
|||
47
bananan
18.01.13
✎
12:59
|
Еть здесь кто живой?
|
|||
48
monsterZE
18.01.13
✎
13:18
|
(47) ты чего хочешь то? =)
|
|||
49
bananan
18.01.13
✎
13:19
|
Ребята. подскажите или помогите!!! ПОЖАЛУЙТСА!!!!!
|
|||
50
bananan
18.01.13
✎
13:19
|
(48) смотри (46)
|
|||
51
lefthander
18.01.13
✎
13:22
|
//Сообщить("СКлиентамиСАгентами()");
В сообщить не отрабатывает процедуры. Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); а эту так попробуй |
|||
52
bananan
18.01.13
✎
13:23
|
(51) А там СКлиентамиСАгентами() в кавычках, т.е. это ТЕКСТОВОЯ СТРОКА, а не вызов процедуры!
|
|||
53
bananan
18.01.13
✎
13:25
|
(51) И пробывать не надо было, но попробывал, как и ожидал в ответ получил в окне сообщений
111 Что это за 111? И еще вопрос. Мне нужно чтобы процедура вернула значение. Как это сделать? |
|||
54
bananan
18.01.13
✎
13:27
|
+ (53) по поводу возврата значения - вопрос отпадает. В 1С есть функции :)
|
|||
55
bananan
18.01.13
✎
13:46
|
Хорошо. такая лажа у меня:
ТекстЗапроса = //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Слад; Группировка Клиент без групп; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); Выдает ошибку: Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда {\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(58)}: Группировка Агент без групп; Группировка Слад <<?>> ; Запрос[12] : Переменная 'Слад' не опеределена Склад /переменная/ - определяется в запросе: Склад = Регистр.Обороты.Склад; Чего здесь нетак? |
|||
56
bananan
18.01.13
✎
13:49
|
Help my, please!!!!
|
|||
57
Ёпрст
18.01.13
✎
13:50
|
Склад<>Слад
|
|||
58
cw014
18.01.13
✎
13:52
|
Клиент "инкас", потрите мне "СпИнкас"
|
|||
59
Cthulhu
18.01.13
✎
13:53
|
Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");
(а 111 это приведенный к типу первого операнда - ЧИСЛА! - результат выражения) |
|||
60
Cthulhu
18.01.13
✎
13:53
|
и - за "пробЫвать" - предлагаю или коленку простреливать, или в игнор.
|
|||
61
bananan
18.01.13
✎
13:53
|
(57) Большое спасибо, мне надо быть внимательнее.
|
|||
62
bananan
18.01.13
✎
13:54
|
(58) СпИнкас - это флажок (0 или 1)
|
|||
63
bananan
18.01.13
✎
13:55
|
(59) Ничего не понял: первый операнд чего Сообщить? так там первый операнд строка
|
|||
64
monsterZE
18.01.13
✎
14:00
|
(63) ты СП то все-таки почитывай.. а не тупо копипасть
|
|||
65
monsterZE
18.01.13
✎
14:01
|
хоть бы даже по тем коммандам, которые копипастишь
а то 111 в страшных снах сниться будет |
|||
66
bananan
18.01.13
✎
14:03
|
(64) Да читаб я, а здесь конкренто, чего за 111???
|
|||
67
bananan
18.01.13
✎
14:07
|
+(66) в Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); где "111" или кака функция возвращает 111???
И прчем здесь СП и копипаст? |
|||
68
lefthander
18.01.13
✎
14:11
|
111 - это скорее всего значение того самого выбТМЦ,
Сообщить(ВыбТМЦ+" = ВыбТМЦ, "+выбСклад +" = выбСклад") Таким образом что сообщит? |
|||
69
monsterZE
18.01.13
✎
14:11
|
херово читал значит.
Возвращаемые значения типов данных: 0 - неопределенный тип данных; 1 - числовой тип данных; 2 - строковый тип данных; 3 - тип данных Дата; 10 - агрегатный тип данных 'Перечисление'; 11 - агрегатный тип данных 'Справочник'; 12 - агрегатный тип данных 'Документ'; 13 - агрегатный тип данных 'Календарь'; 14 - агрегатный тип данных 'ВидРасчета'; 100 - внешний объект ('Текст', 'Таблица', 'Запрос', 'ЖурналРасчетов' и т.п.). |
|||
70
monsterZE
18.01.13
✎
14:12
|
можно подругому зайти =) для чего тебе тип?
|
|||
71
bananan
18.01.13
✎
14:13
|
А в данном, коенкретном случае: шут с ним с типом значения.
Меня собственно интересует в конце концов не это. У меня на форме есть четыре окошка для выбора: ТМЦ, Агент, Клиент, Склад Так вот все 4 на входе получают соответветствующие справочники, но, почему-то (здесь явно я сделал что-то не так) окно выбора Склад (визуально! - серый цвет окна, остальные фон - белый! Почему? Мне это надо для Процедура ОбработкаПодбора(Выб) т.е. надо сюда вставить подбор склада... написал такой код: Процедура ОбработкаПодбора(Выб) Если Выб.Вид()="Клиенты" Тогда ВыбКлиент.ДобавитьЗначение(Выб); ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка()); ИначеЕсли Выб.Вид()="Агент" Тогда ВыбАгент.ДобавитьЗначение(Выб); ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка()); Иначе ВыбТМЦ.ДобавитьЗначение(Выб); ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка()); КонецЕсли; Если Выб.Вид()="Склады" Тогда Сообщить(выбСклад+"----------"); выбСклад.Добавить(Выб); выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка()); Сообщить("----------"+выбСклад); КонецЕсли; КонецПроцедуры Выдает ошибку: выбСклад.Добавить(Выб); {\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(446)}: Поле агрегатного объекта не обнаружено (Добавить) Чего здесь не так??? |
|||
72
bananan
18.01.13
✎
14:14
|
(69) и где в коде:
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); Числовой тип данных??? |
|||
73
bananan
18.01.13
✎
14:18
|
monsterZE Чего молчишь?
|
|||
74
monsterZE
18.01.13
✎
14:18
|
(72) такое ощущение, что у тебя ваще каша в бошке =)
то ты копипастишь правильную строчку.. то опять свою ТипЗначения(ВыбТМЦ) вот это числовой тип потому что оно возвращает число |
|||
75
bananan
18.01.13
✎
14:20
|
(74) Хорошо. в данном сообщить Два ТипЗнавчения - они вернули соответственно две 11
Откуда взялась третья 1????!!!! |
|||
76
monsterZE
18.01.13
✎
14:21
|
визуально! - серый цвет окна, остальные фон - белый!
может оно у тебя отключено? =) (75) чего гадать - выведи ДВА сообщить =) |
|||
77
bananan
18.01.13
✎
14:21
|
(76) Минуту. Сча выведу
|
|||
78
monsterZE
18.01.13
✎
14:21
|
ты видишь отличие между
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); и Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); ? |
|||
79
monsterZE
18.01.13
✎
14:22
|
ты видишь отличие между:
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); и Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); ? |
|||
80
Cthulhu
18.01.13
✎
14:23
|
бесполезняк. вменяемости не наблюдается.
|
|||
81
bananan
18.01.13
✎
14:27
|
(79) Опечатка там у меня. и разницу, конечно вижу.
код: ТекстЗапроса = СформироватьЗапрос(1); //Создание объекта типа Запрос Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ "); Сообщить(ТипЗначения(выбСклад)+" = выбСклад"); Запрос = СоздатьОбъект("Запрос"); Сообщить("ТекстЗапроса - "+ТекстЗапроса); выдает: 100 11 ТекстЗапроса - //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Клиент без групп; Группировка Склад; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); Здесь значит ТМЦ - справочник, а Склад - внешний объект ('Текст', 'Таблица', 'Запрос', 'ЖурналРасчетов' и т.п.). ТАк как мне обрабатывать ОбработкаПодбора(Выб) при выборе склада? |
|||
82
monsterZE
18.01.13
✎
14:33
|
--
Синтаксис: ОбработкаПодбора(<Элемент>,<КонтФормы>) Назначение: Предопределенная процедура обработки подбора значения при нажатия кнопки Выбрать в Форме Подбора значения. Параметры: <Элемент> - элемент справочника подбора или документ, передаваемый для обработки. -- по аналогии со своей текйще процедурой и сделай там как определяется куда пихать? =) а запрос в (81) выполняется? или тебе это надо, чтобы запрос выполнился? =) |
|||
83
monsterZE
18.01.13
✎
14:35
|
что такое выбСклад
и что такое .Добавить? |
|||
84
bananan
18.01.13
✎
14:41
|
выбСлад - окно выбора Склада на форме. а склад берется из Справочник.Склады,
и по аналогии С ТМЦ, АГент и Клиент (что тоже справочники) должно работать Если Выб.Вид()="Склады" Тогда выбСклад.Добавить(Выб); выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка()); КонецЕсли; Но выдает ошибку: выбСклад.Добавить(Выб); а выбраный склад в данном окне - появляется в окне выбора ТМЦ! |
|||
85
bananan
18.01.13
✎
14:50
|
(83) .Добавить - опять опечатка
Надо: ДобавитьЗначение Но код: Процедура ОбработкаПодбора(Выб) Если Выб.Вид()="Клиенты" Тогда ВыбКлиент.ДобавитьЗначение(Выб); ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка()); ИначеЕсли Выб.Вид()="Агент" Тогда ВыбАгент.ДобавитьЗначение(Выб); ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка()); Иначе ВыбТМЦ.ДобавитьЗначение(Выб); ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка()); КонецЕсли; Если Выб.Вид()="Склады" Тогда Сообщить(выбСклад+"----------"); выбСклад.ДобавитьЗначение(Выб); выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка()); Сообщить("----------"+выбСклад); КонецЕсли; КонецПроцедуры Выдает ошибку: выбСклад.ДобавитьЗначение(Выб); {\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(447)}: Поле агрегатного объекта не обнаружено (ДобавитьЗначение) Почему? |
|||
86
bananan
18.01.13
✎
14:52
|
И почему выбранный здесь склад попадает в окно выбора ТМЦ???
|
|||
87
bananan
18.01.13
✎
14:57
|
+(86) Как мне в данном случае быть? Как кодить7
|
|||
88
bananan
18.01.13
✎
15:04
|
Написал такой код:
Процедура ОбработкаПодбора(Выб) Если Выб.Вид()="Клиенты" Тогда ВыбКлиент.ДобавитьЗначение(Выб); ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка()); Сообщить("ВыбКлиент"+ТипЗначения(ВыбКлиент)); ИначеЕсли Выб.Вид()="Агент" Тогда ВыбАгент.ДобавитьЗначение(Выб); ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка()); Иначе ВыбТМЦ.ДобавитьЗначение(Выб); ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка()); КонецЕсли; Если Выб.Вид()="Склады" Тогда Сообщить("----------"); Сообщить("выбСклад"+ТипЗначения(выбСклад)); выбСклад.ДобавитьЗначение(Выб); выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка()); Сообщить("----------"+выбСклад); КонецЕсли; КонецПроцедуры При выборе клиента - выдает 100 Склада 11 получается что ВыбКлиент, - спискок, или текст или таблица значений, а склад - Справочник... А мне надо чтобы и Справочник был как и Клиент и ТМЦ и Агент . Мне надо чтобы все они были одного типа!!!! |
|||
89
Стрелок
18.01.13
✎
15:08
|
автор ты когда нибудь начнёшь думать сам головой а не задницей?????
|
|||
90
bananan
18.01.13
✎
15:10
|
(89) Думая я в основном - головой, но здесь я НЕ ПОНИМАЮ как сделать или что я сделал неправильно
|
|||
91
bananan
18.01.13
✎
16:07
|
Объясните, ПОЖАЛУЙСТА, у меня в таблице вывода поле: Запрос.ЗначениеУпорядочивания(1) /оно, это поле - выражение/
Что такое ЗначениеУпорядочивания(1) и где его искать? |
|||
92
Cthulhu
18.01.13
✎
16:20
|
не твоё это всё. не мучь себя.
|
|||
93
Стрелок
18.01.13
✎
16:30
|
автор ты пытаешься программировать методом научного и не очень тыка. вопрос - ты раньше чем занимался? до того как проиграл в карты "программирование в 1С 7.7"?
|
|||
94
Ёпрст
18.01.13
✎
16:32
|
(91)
ЗначениеУпорядочивания(<?>,) Синтаксис: ЗначениеУпорядочивания(<Группировка>,<Упорядочив>) Назначение: Возвращает значение заданного поля упорядочивания текущей группы. Параметры: <Группировка> - выражение, содержащее номер или имя группировки (номер работает быстрее).; <Упорядочив> - необязательный параметр. Порядковый номер параметра упорядочивания указанной группировки. Значение по умолчанию: 1. но это моветон, наследство от конструктора отчетов |
|||
95
lefthander
18.01.13
✎
16:40
|
(88) Попробуйте тоже самое, только замените ТипЗначения(ВыбСклад) на ВыбСклад
|
|||
96
bananan
18.01.13
✎
16:48
|
(94) Спасибо, уже нашел и разобрался с этим
Но возник следующий вопрос... Данные запросы делаются по Регистру обороты, как мне задать чтобы запрос обрабатывал только документы РасходнаяНакладнаяН,ВозвратнаяНакладнаН и второе чтобы он не обрабатывал документы: РасходнаяНакладнаяН,ВозвратнаяНакладнаН??? |
|||
97
Ёпрст
18.01.13
✎
16:48
|
поставить условие на вид документа
|
|||
98
Стрелок
18.01.13
✎
16:49
|
смотри типовую ТиС отчёт "продажи"
|
|||
99
bananan
18.01.13
✎
16:51
|
(97) (98) Спасибо посмотрю
|
|||
100
bananan
18.01.13
✎
16:53
|
+(99) у меня не ТиС, а Бухгалтерия для Украины, и там нет отчета Продажи
(97) А как поставить такое условие? |
|||
101
Стрелок
18.01.13
✎
16:54
|
(100) бухгалтерия с регистрами? точно фейк
|
|||
102
bananan
18.01.13
✎
17:00
|
(101) Да, с регистрами там их 15 штук!
|
|||
103
Стрелок
18.01.13
✎
17:00
|
(102) с чего ты взял что это "Бухгалтерия"?
|
|||
104
bananan
18.01.13
✎
17:02
|
1С предприятия для SQL
|
|||
105
Стрелок
18.01.13
✎
17:03
|
(104) и? что это значит?
|
|||
106
bananan
18.01.13
✎
17:05
|
(103) бухгалтерия + торговля +производство + зарплата + кадры...
|
|||
107
bananan
18.01.13
✎
17:07
|
(97) Как поставить в запросе такое условие?
|
|||
108
2012_12_17
18.01.13
✎
17:09
|
Если честно, я за 8 лет работы с 1с 7.7 так и не понял как там они эти запросы делают, поэтому НИКОГДА ими не пользуюсь. Ну а если уж по другому нельзя то тупо ищу похожее или то что мне нужно в типовых конфигурациях или нетиповых, таких как рарус нефтебаза.
|
|||
109
Стрелок
18.01.13
✎
17:10
|
(106) Ооо это комплексная. жуть.
|ПЕРИОД С Дата1 По Дата2; |Фирма=Регистр.ПартииТоваров.Фирма; |Товар=Регистр.ПартииТоваров.Товар; |Валюта=Регистр.ПартииТоваров.Товар.ВалютаУчета; |Покупатель=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Контрагент, |Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяРозничная.Контрагент, |Регистр.ПартииТоваров.ТекущийДокумент.ПриходнаяНакладная.Контрагент, |Регистр.ПартииТоваров.ТекущийДокумент.ПродажаРеализатора.Контрагент, |Регистр.ПартииТоваров.ТекущийДокумент.ЧекКА.ЭККА, |Регистр.ПартииТоваров.ТекущийДокумент.ОтчетКА.ЭККА; |Склад=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Склад, |Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяРозничная.Склад, |Регистр.ПартииТоваров.ТекущийДокумент.ПриходнаяНакладная.Склад, |Регистр.ПартииТоваров.ТекущийДокумент.ЧекКА.Склад, |Регистр.ПартииТоваров.ТекущийДокумент.ОтчетКА.Склад; |Поставщик=Регистр.ПартииТоваров.Поставщик; |Поставка=Регистр.ПартииТоваров.Поставка; |ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент; |ТекДок=Регистр.ПартииТоваров.ТекущийДокумент; |ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара; |Стоимость=Регистр.ПартииТоваров.Стоимость; |НДС=Регистр.ПартииТоваров.НДС; |НДСрасхода=Регистр.ПартииТоваров.НДСрасхода; |Оборот=Регистр.ПартииТоваров.Оборот; |Прибыль=Регистр.ПартииТоваров.Прибыль; |КодОперации=Регистр.ПартииТоваров.КодОперации;"; |
|||
110
Стрелок
18.01.13
✎
17:11
|
|Период с ДатаНачала по ДатаКонца;
|Фирма=Регистр.ПартииТоваров.Фирма; |ТекДок=Регистр.ПартииТоваров.ТекущийДокумент; |Супер=Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Контрагент.Агент.Супервайзер; |Продажа=Регистр.ПартииТоваров.ОстатокТовараДал; |КодОперации=Регистр.ПартииТоваров.КодОперации; |Функция ПродажаВДалах=Расход(Продажа) Когда (ТекДок.Вид()=""РасходнаяНакладная""); |Условие (КодОперации=ПродажаКупленногоТовара); |Условие (Фирма=глПустаяФирма); |Группировка Супер без групп; |Без Итогов;"; |
|||
111
Стрелок
18.01.13
✎
17:11
|
три
ТекстЗапроса=" |Период с ДатаНачала по ДатаКонцаПроплат; |Фирма=Регистр.ВзаиморасчетыПоставщиков.Фирма,Регистр.ВзаиморасчетыПокупателей.Фирма; |Клиент=Регистр.ВзаиморасчетыПоставщиков.Контрагент,Регистр.ВзаиморасчетыПокупателей.Контрагент; |КредДокумент=Регистр.ВзаиморасчетыПоставщиков.КредДокумент,Регистр.ВзаиморасчетыПокупателей.КредДокумент; |ДатаКредДок=Регистр.ВзаиморасчетыПоставщиков.КредДокумент.ДатаДок,Регистр.ВзаиморасчетыПокупателей.КредДокумент.ДатаДок; |Долг=Регистр.ВзаиморасчетыПоставщиков.Долг,Регистр.ВзаиморасчетыПокупателей.Долг; |Функция ДолгКонОст = КонОст(Долг); |Группировка КредДокумент без групп; |Группировка Клиент без групп; |Условие (Фирма=ВыбФирма); |Условие (Клиент в СписокУсловийПоКлиентам); |Условие (ЗапросПоВзаиморасчетам.ДолгКонОст>0); |Условие ((КредДокумент.Вид()=""РасходнаяНакладная"") или (КредДокумент.Вид()=""РасходнаяНакладнаяКеги"")); |Условие ((КредДокумент.ДатаДок>=ДатаНачала) и (КредДокумент.ДатаДок<=ДатаКонца)); |Без Итогов;"; |
|||
112
Стрелок
18.01.13
✎
17:12
|
хватит примеров?
|
|||
113
monsterZE
18.01.13
✎
17:15
|
|Условие ((КредДокумент.Вид()=""РасходнаяНакладная"") или (КредДокумент.Вид()=""РасходнаяНакладнаяКеги""));
|
|||
114
Cthulhu
18.01.13
✎
17:16
|
Бух(Укр) - и с регистрами. а-хре-неть.
|
|||
115
bananan
18.01.13
✎
17:16
|
(112) Предостаточно - только от этих трех примеров у меня помутнение в мозгу! :)
|
|||
116
Стрелок
18.01.13
✎
17:16
|
(114) это конченый комплекс
|
|||
117
Стрелок
18.01.13
✎
17:17
|
Стрелок
2 - 02.12.08 - 19:44 ПУБ как и "комплексная" - эти конфы надо съесть, переварить и съесть ещё раз то что переварилось их надо понять имзнутри, надо стать такими же как они - непредсказуемымми, изменчивыми, ветренными надо вжиться в шкуру экономиста, расчётчика, бухгалтера по производству. Потом одеть маску главбуха. они как Марианская впадина - есть глубина - тиочно знаем, но достичь - фик они как Луна. вроде близко, а посмотреть что там с другой стороны - фик они как судьба - всё время "непередом" к пользователя, а главное(!!!!) к программисту работа с этими конфами как игра на минном поле в футбол..... к концу матча уже думаешь "хоть бы рвануло а то уже вроде всё оббегал а пути к воротам нет" читать о них всё равно что читать о сексе. возбуждение и предвкушение есть - толку мало и не тот кайф. с ними надо спать" © Стрелок |
|||
118
bananan
18.01.13
✎
17:18
|
(113) А не выдаст ошибку
Переменная не определена (Кред.Документ)??? |
|||
119
Стрелок
18.01.13
✎
17:18
|
(118) выдаст конечно. ЭТО ПРИМЕРЫ из работающих запросов
|
|||
120
monsterZE
18.01.13
✎
17:19
|
=) я не верю в твой возраст! этого не может быть!
|
|||
121
bananan
18.01.13
✎
17:19
|
(118) Тогда как в запросе (по регистрам) определить Кред.Документ?
|
|||
122
bananan
18.01.13
✎
17:19
|
(120) О чьем возрасте речь?
|
|||
123
monsterZE
18.01.13
✎
17:20
|
О возрасте гарного хлопца бананананааа =)
|
|||
124
Cthulhu
18.01.13
✎
17:20
|
(88): выбСклад=тВыб;//.ДобавитьЗначение(Выб);
(120): ну или он - блондинка. |
|||
125
bananan
18.01.13
✎
17:24
|
Ребята как мне в запросе по регистрам установить типы документов для выбора?
|
|||
126
Стрелок
18.01.13
✎
17:24
|
(125) ты чем раньше занимался? до 1С?
|
|||
127
bananan
18.01.13
✎
17:26
|
(126) РНР, ActionScript 2
|
|||
128
monsterZE
18.01.13
✎
17:27
|
КредДокумент=Регистр.ВзаиморасчетыПоставщиков.КредДокумент
- должен подставить реквизиты своего регистра (127) чем докажешь? =) |
|||
129
Ёпрст
18.01.13
✎
17:27
|
(120) 'nj cnfhxtcrbq vfhfpv// njkmrj ncccccc!
|
|||
130
bananan
18.01.13
✎
17:28
|
+(125) Сделал так:
|Док = Регистр.Обороты.ТекущийДокумент; Вроде работает... |
|||
131
monsterZE
18.01.13
✎
17:29
|
пхп.ру/форум
--- Автор: бананан парни помогите написать скрип!!!! -- |
|||
132
bananan
18.01.13
✎
17:30
|
(131) monsterZE, какой скрипт тебе помогти написать?
|
|||
133
Стрелок
18.01.13
✎
17:31
|
(132) мне помоги - напиши скрипт выгрузки всех скульных баз 1С на диске в бэкап.
|
|||
134
monsterZE
18.01.13
✎
17:32
|
(132) я это запомню! =)
|
|||
135
bananan
18.01.13
✎
17:39
|
(134) Я слов на ветер не броаю
|
|||
136
Стрелок
18.01.13
✎
17:40
|
||||
137
bananan
18.01.13
✎
17:41
|
И, вроде, последний вопрос по поводу условия на выборку в регсистре документов я сделал так:
|Док = Регистр.Обороты.ТекущийДокумент; ... |Условие(Док.Вид()=""РасходнаяНакладнаяН""); А как написать условие |Условие(Док.Вид()=""РасходнаяНакладнаяН""); НЕ равно?? |
|||
138
Стрелок
18.01.13
✎
17:42
|
<> б л я
|
|||
139
Стрелок
18.01.13
✎
17:42
|
єто песец господа
|
|||
140
bananan
18.01.13
✎
17:46
|
(138)(139) Ну НЕ знаю я нормально синтаксис 1С!!!
<> != или как? |
|||
141
bananan
18.01.13
✎
17:46
|
(139) к тебе в аську стукнул - ты в офлайне
|
|||
142
Стрелок
18.01.13
✎
17:48
|
(141) я знаю что я в офлайне
так ты сначала хоть примитивнейшее изучи из языка. книжки почитай по программированию а потом только... ты пойми - какую карму ты сейчас (за последенее время) себе сделал? |
|||
143
bananan
18.01.13
✎
17:51
|
(142) Так примитив я знаю еще с 1984 года, но тогда не было "языка программирования 1С"
а не равно, вроде в 1С - <> |
|||
144
monsterZE
18.01.13
✎
17:56
|
(143) мог бы уже сам попробывать.. в (138) ответ
|
|||
145
bananan
18.01.13
✎
17:56
|
(144) Спасибо уже пробую :)
|
|||
146
bananan
18.01.13
✎
18:06
|
Ну и последний вопрос (на этой неделе)
код: "Условие(Док.Вид()=""РасходнаяНакладнаяН"",""ВозвратнаяНакладнаяН"");" ошибка: Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда {\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(90)}: Условие(Док.Вид()="РасходнаяНакладнаяН" <<?>> ,"ВозвратнаяНакладнаяН"); Запрос[21] : Ожидается ')' перед ',' А как задать мнодественное не равно?? |
|||
147
bananan
18.01.13
✎
18:10
|
+(146) "Условие((Док.Вид()=""РасходнаяНакладнаяН"") и (Док.Вид()=""ВозвратнаяНакладнаяН""));"
Так задал - работает! |
|||
148
bananan
18.01.13
✎
18:28
|
а как сделать зависимые флажки?
Т.е. есть флажки Ф1 и Ф2, из них может быть выбран только одни! |
|||
149
bananan
18.01.13
✎
18:30
|
Понятно что это где-то в коде надо: Если Ф1=1 тогда Ф2=0.., но где какую процедуру писать (имя)?
|
|||
150
bananan
18.01.13
✎
18:43
|
Ребята, помогити с флажками!!!!
|
|||
151
bananan
18.01.13
✎
18:44
|
+(150) Только сделать Ф1 и Ф2 зависимыми и можно идти домой!
|
|||
152
bananan
18.01.13
✎
18:51
|
Что: никто не знает как сдлать фалжки зависимыми??
|
|||
153
Cthulhu
18.01.13
✎
19:51
|
это даже не дятел...
(147): работатет - в смысле не выбирает никакие документы. чтобы работало в смысле выбирало один из видов документов - нужно не "и", а "или". причем это независимо от языка программирования. так что есть у меня опасение, что пхп-скрипт тебе заказывать - опасно. |
|||
154
Cthulhu
18.01.13
✎
19:53
|
(152): все знают. и тебе сказали - как. но ты все равно почему-то не знаешь.
такое, наверное, можно за деньги показывать. |
|||
155
monsterZE
18.01.13
✎
21:03
|
у объектов есть вкладка "дополнительно", в ней есть поле "формула", вот туда можно прописать что захочешь.. от вызова процедуры, которая будет срабатывать при клике, до простого ф2=0 / ф2=1
можно несколько команд через ";" на вкладке общие, есть поле "идентификатор".. назначение соответствующее.. как раз через ид. обращаешься к объекту. а вобще, потрудись таки прочитать http://www.mista.ru/tutor_1c/configurator.htm бо скоро надоест на подобный тролинг отвечать =) |
|||
156
bananan
21.01.13
✎
17:45
|
Добрый день всем!
Скжите мне, пожплуйста, как установить ЗАВИСЫМЫЕ переключатели на форме? У меня три переключателя (Ф1, Ф2, Ф3) когда я их впихнул в группу 1 и 2 зависят один от другого, а третий - сам по себе... Ума не приложу что я не так сделал? |
|||
157
Mikeware
21.01.13
✎
17:51
|
(156) это не ты "не так сделал"...
|
|||
158
bananan
21.01.13
✎
17:55
|
(157) А кто?
|
|||
159
Mikeware
21.01.13
✎
17:56
|
(158) твои родители...
|
|||
160
bananan
21.01.13
✎
17:59
|
(159) А подсказать можно: как сделать переключатели зависимыми?
Я поставил в группу три переключателя ф1, Ф2 и Ф3, для Ф1 назначил "Первый в группе"... Но у меня Ф1 и Ф2 зависимы (можно выбрать либо ф1 либо Ф2) а вот Ф3 игнориует Ф1 И Ф2 - он почемуто сам по себе... |
|||
161
bananan
21.01.13
✎
18:12
|
+(159) Кто-нибудь, подкажите!!!
Я уже не знаю что делать. Сделал новую форму на нее поставил три переключателя одному назначил "Первый в группе" Запустил на исполнени этот скрипт... Переключатели - ЗАВИСИМЫ (выбрать можно только один из трех) А уже в готовой форме по запросу - это же повторяю такж как и в предыдущей форме, запускаю на исполнине - Каждый из трех переключателей можно ВЫБРАТЬ. (Т.е. одновременно могут быть выбраны все три) Почему??? |
|||
162
Wobland
21.01.13
✎
18:13
|
(161) про порядок обхода ты, конечно, слышал
|
|||
163
bananan
21.01.13
✎
18:16
|
(162) Слышал конечно, а где в 1С задается порядок обхода?
|
|||
164
Mikeware
21.01.13
✎
18:18
|
(160) (163) все описано в документации. которую ты упорно не хочешь читать...
|
|||
165
bananan
21.01.13
✎
18:19
|
В пятницу 15 минут рылся в доке - не нашел. В каком томе и на какой странице?
|
|||
166
Mikeware
21.01.13
✎
18:28
|
(165) у тебя были суббота и воскресенье, чтобы прочитать оба тома.
|
|||
167
Cthulhu
21.01.13
✎
20:34
|
Зависимые флажки
судя по (7) и (13) ты и сам "все знаешь". тогда почему ноешь? версия с именованным "первым в списке" и настройкой порядка обхода так чтобы они следовали с "первого" подряд в порядке обхода - тебе почему-то не подходит... тогда вообще непонятны твои истерики. |
|||
168
Cthulhu
21.01.13
✎
20:40
|
(165): вранье. иначе бы ты уже прочитал в книжке "1С:Предприятие. Версия 7.7. Конфигурирование и администрирование" Главу 24 "Редактирование диалогов", в середине которой находится подраздел "Назначение порядка обхода элементов диалога"
|
|||
169
monsterZE
21.01.13
✎
21:05
|
мухаха =) в 155 _вариант_ реализации 10 флажков без настройки порядка обхода.
или из букваря: Эта кнопка размещает на поле переключатель. Переключатели имеют смысл, когда их несколько, в этом случае пользователь производит выбор между несколькими вариантами. Чтобы переключатели заработали, нужно сделать следующее: для первого переключателя установить в свойствах флажок "Первый в группе". Далее проверить, чтобы порядок обхода элементов был точно в том порядке, в котором следуют переключатели (Действия => Настройка порядка обхода). Типичный камешек для новичков. ^^^^^^^^^^^^^^ только то небольшая неточность. Диалог => Настройка порядка обхода |
|||
170
bananan
22.01.13
✎
15:14
|
Написал я такой хапрос:
//{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; Док = Регистр.Обороты.ТекущийДокумент; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Клиент без групп; Группировка Склад; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); Условие((Док.Вид()="РасходнаяНакладнаяН") и (Док.Вид()="ВозвратнаяНакладнаяН")); //{{ЗАПРОС(Сформировать) Запустил с периодом больше годе - запрос ничего не выдал Для сравнения запрос: //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; Док = Регистр.Обороты.ТекущийДокумент; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Клиент без групп; Группировка Склад; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); Работает нормально. Получается, что условие Условие((Док.Вид()="РасходнаяНакладнаяН") и (Док.Вид()="ВозвратнаяНакладнаяН")); задано неправильно. Как задать правильно такое условие? |
|||
171
chelentano
22.01.13
✎
15:24
|
(170) застрелиться ещё не предлагали?
|
|||
172
Ёпрст
22.01.13
✎
15:29
|
(170)
Условие((Док.Вид()=""РасходнаяНакладнаяН"") ИЛИ (Док.Вид()=""ВозвратнаяНакладнаяН"")); у тебя И, а надо ИЛИ ИЛИ ИЛИ ИЛИ.... +ковычек не хватат |
|||
173
bananan
22.01.13
✎
15:37
|
(172) Спасибо! Только сейчас увидел что ляп с И!
А с кавычками - это уж точно сам бы наверное не нашел! |
|||
174
bananan
22.01.13
✎
16:35
|
Опять (только не расстреливайте) элементарный вопрос, как включить в одну секцию больше одного столбца? (выбираю при нажатом контре ) выбирается но секция становится не доступной...
|
|||
175
Ёпрст
22.01.13
✎
16:36
|
Выделить мышой , ПКМ - задать имя и привет
|
|||
176
Ёпрст
22.01.13
✎
16:37
|
точнее, выделить нужные - далее на ] и задать имя секции
|
|||
177
Надсмотрщик
22.01.13
✎
16:40
|
(176) Ты ему еще номер карты не бросал?
|
|||
178
Надсмотрщик
22.01.13
✎
16:41
|
(176) [
|
|||
179
bananan
22.01.13
✎
16:50
|
(176) Спасибо
|
|||
180
bananan
22.01.13
✎
18:07
|
Еще вопрос. У меня в таблице много горизонтальных секций. Еще есть 3 вертикальные... Вопрос код Таб.ПрисоединитьСекцию("Заголовок|Ф1");
Выведет секцию Ф1 на экран, но у меня 3 вертикальных секции и они все выводятся одновременно, а мне надо чтобы когда я выбрал Ф1 вывелас секция Ф1, когда Ф2 - Ф2 и т.д. А у меня они все выводятся даже если не выбран ни один флажок... |
|||
181
bananan
22.01.13
✎
18:13
|
+(180) а в том случае если пользователь не устновил ни один флажок - не выводится ни какая вертикальная секция
|
|||
182
bananan
22.01.13
✎
18:24
|
И еще в тексте запроса условный оператор неравно такой - "<>"
т.е. я в запрос добавил условие: ТекстЗапроса = ТекстЗапроса + "Условие((Док.Вид()<>""РасходнаяНакладнаяН"") ИЛИ (Док.Вид()<>""ВозвратнаяНакладнаяН""));"; и оно врде как не работает.. |
|||
183
bananan
22.01.13
✎
18:34
|
На данный момент два разных запроса
1-й запрос: //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; Док = Регистр.Обороты.ТекущийДокумент; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Клиент без групп; Группировка Склад; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); Условие((Док.Вид()<>"РасходнаяНакладнаяН") ИЛИ (Док.Вид()<>"ВозвратнаяНакладнаяН")); и 2-й запрос: //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; Обрабатывать НеПомеченныеНаУдаление; ТМЦ = Регистр.Обороты.ТМЦ; Клиент = Регистр.Обороты.Клиент; Агент = Регистр.Обороты.Агент; Склад = Регистр.Обороты.Склад; Док = Регистр.Обороты.ТекущийДокумент; РасходГрн = Регистр.Обороты.РасходГрн; РасходКво = Регистр.Обороты.РасходКво; Функция РасходГрнСумма = Сумма(РасходГрн); Функция КвоРасход = Сумма(РасходКво); Группировка Агент без групп; Группировка Клиент без групп; Группировка Склад; Группировка ТМЦ; Условие (Склад в выбСклад); Условие(ТМЦ в ВыбТМЦ); Условие(Клиент в ВыбКлиент); Условие(Агент в ВыбАгент); выдают одинаковые результаты хотч должны выдавать разные результаты. Где-то ошибся с логикой.. Но где? Подскажите, пожалуйста.. |
|||
184
Wobland
23.01.13
✎
04:49
|
различаются только крайним условием? не делают у тебя два документа ожидаемых телодвижений
|
|||
185
Стрелок
23.01.13
✎
05:04
|
ты блин программист - ты вообще понимаешь что такое условие? и чем отличается "или" от "и"? если тебенадо отобрыть документы которые "НЕ ВидДок1 и НЕ видДок2" это одно, а когда тебе нужны документы которые "ВидДок1 или ВидДок2". Разницу видишь?
|
|||
186
Wobland
23.01.13
✎
05:05
|
(185) я нет ;))
|
|||
187
Стрелок
23.01.13
✎
05:46
|
(186) а я не тебе
|
|||
188
Стрелок
23.01.13
✎
05:47
|
(186) но если и ты не понимаешь как работает условный оператор "ИЛИ" а как "И" то это совсем печально
|
|||
189
Ёпрст
23.01.13
✎
08:51
|
(183)
Условие((Док.Вид()<>""РасходнаяНакладнаяН"") И (Док.Вид()<>""ВозвратнаяНакладнаяН"")); Почувствуй разницу. ЗЫ: алгебру логики в школе не проходили шо ле ? |
|||
190
bananan
23.01.13
✎
16:33
|
Теперь ткой вопрос...
Есть запрос под 1С++ текст запроса: ТекстЗапроса = " |SELECT COUNT(*) as Кво |FROM $Справочник.Сотрудники Сотр |WHERE Сотр.ID IN (SELECT Val FROM #tmpSotr) |AND $Сотр.ДатаПриема> :Дат1 |AND $Сотр.ДатаПриема<= :ДатаАктуальности |AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |"; Так вот, он, этот запрос неправильно суммирует значенич поля если эти значения меньше 1 Конкретно есть в подразделении 15 сотрудников на 0.5 ставки и 7 сотрудников на ставку.. Запрос выдает 22 (т.е. он -.5 считает как 1). Почему и как это исправить? |
|||
191
Ёпрст
23.01.13
✎
16:38
|
(190) какое отношение этот запрос имеет к ставке ?
Да еще и отфильтрованный по списку конкретных элементов справочника. |
|||
192
Wobland
23.01.13
✎
16:38
|
(190) что такое COUNT(*) ?
|
|||
193
Ёпрст
23.01.13
✎
16:39
|
(192) количество записей.
|
|||
194
Wobland
23.01.13
✎
16:39
|
(193) я в курсе
|
|||
195
Ёпрст
23.01.13
✎
16:39
|
в выборке
|
|||
196
Ёпрст
23.01.13
✎
16:40
|
(194) а чего спрашиваешь тогда ?
:) |
|||
197
bananan
23.01.13
✎
16:48
|
Спасибо. Данный запрос писал не я.
так вот ставка находится в справочнике сотрудники поле ставка |SELECT COUNT($Справочник.Сотрудники.Ставка) as Кво выдает ошибку... Как написать? |
|||
198
Wobland
23.01.13
✎
16:49
|
(197) что такое COUNT?
|
|||
199
bananan
23.01.13
✎
16:49
|
+197 Вообще надо не подч\счет записе2й сделать а суммировать значение поля ставка..
|
|||
200
bananan
23.01.13
✎
16:50
|
(198) COUNT функция которая выдает количество записей...
|
|||
201
Wobland
23.01.13
✎
16:50
|
(196) думал, что отвечая на вопрос, автору полегчает ;)
|
|||
202
Wobland
23.01.13
✎
16:50
|
(200) а зачем тебе количество записей?
|
|||
203
bananan
23.01.13
✎
16:51
|
вопрос сейчас как в 1С++ правильно написать SUM($Справочник.Сотрудники.Ставка)
|
|||
204
bananan
23.01.13
✎
16:52
|
(202) говорю же запрос чужой моя задача чтобы он не сумировал количество записей сотрудников, а суммировал количество ставок сотрудников
|
|||
205
Wobland
23.01.13
✎
16:52
|
(203) Сум(Сотр.Ставка)
|
|||
206
Wobland
23.01.13
✎
16:52
|
(204) ты начни уже думать. ну хоть немного
|
|||
207
bananan
23.01.13
✎
16:53
|
(205) в 1С++ это пройдет?
|
|||
208
Wobland
23.01.13
✎
16:55
|
(207) если не будешь лениться переключать раскладку, то пройдёт
|
|||
209
bananan
23.01.13
✎
16:57
|
выдал ошибку Invalid column name 'Ставка'.
|
|||
210
bananan
23.01.13
✎
16:58
|
а поле в справочнике 100% называется Ставка... но поле это периодическое... Здесь надо еще чего-то задать в запросе?
|
|||
211
Wobland
23.01.13
✎
17:00
|
||||
212
sapphire
23.01.13
✎
17:00
|
(211) Великий просветитель :D
|
|||
213
sapphire
23.01.13
✎
17:01
|
(210) Когда же ты документацию осилишь, а?
|
|||
214
bananan
23.01.13
✎
17:01
|
(211) Спсибо за ссылку; - читал
Сейчас вопрос как достучаться до периодического поля ставкав справочнике сотрудники в запросе под 1С++... |
|||
215
Wobland
23.01.13
✎
17:06
|
Пример: Справочник.Номенклатура, подчиненный справочник Цены с периодической ценой.
ТекстЗапроса = " |SELECT | СпрН.Descr Наименование, | $ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :ВыбДата) Цена |FROM | $Справочник.Номенклатура СпрН |LEFT JOIN | $Справочник.Цены СпрЦ ON СпрЦ.ParentExt = СпрН.ID AND | $СпрЦ.ТипЦен = :ТипЦен"; |
|||
216
bananan
23.01.13
✎
17:13
|
(215) Непонятно что за СпрН и СпрЦ...
|
|||
217
bananan
23.01.13
✎
17:15
|
(216) пардон, СпрН - Справочник.Номенклатура
|
|||
218
bananan
23.01.13
✎
17:19
|
Написал в тексте запроса так:
|SELECT SUM(Справочник.Сотрудники.Ставка) as Кво Выдает ошибку: The column prefix 'Справочник.Сотрудники' does not match with a table name or alias name used in the query. |
|||
219
bananan
23.01.13
✎
17:22
|
(215) и непонятно как применять $ПоследнееЗначение. к полю ставка из справочника.сотрудники
|
|||
220
Wobland
23.01.13
✎
17:22
|
(218) теперь спроси "как в 1С++ правильно написать SUM(Справочник.Сотрудники.Ставка)?"
|
|||
221
Wobland
23.01.13
✎
17:23
|
(219) Периодические реквизиты хранятся в файле _1SConst. Для получения их значений служит виртуальное значение $ПоследнееЗначение.<ИмяСправочника> | Константа.<ИмяРеквизита | ИмяКонстанты>(<ИдОбъекта>, <Дата>[, <Время>[, <ИДДокумента>]]), которое является коррелированным подзапросом (вложенный запрос, в котором используется значения основного).
|
|||
222
Wobland
23.01.13
✎
17:24
|
мне вот интересно, человек справится сам или кто-то щас придёт и всё испортит? пойду с начала ветку почитаю
|
|||
223
bananan
23.01.13
✎
17:27
|
(220-222) Написал так в запросе:
SELECT SUM($ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности)) as Кво Выдает ошибку: Meta name parser error: виртуальное поле не найдено "$ПоследнееЗначение.Справочник.Сотрудники" |
|||
224
bananan
23.01.13
✎
17:28
|
(222) Сам, скорее всего, - не справлюсь
|
|||
225
Wobland
23.01.13
✎
17:28
|
(224) хорошо читал (205)?
|
|||
226
bananan
23.01.13
✎
17:30
|
Вижу и понимаю что неправильно:
$ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности а как правильно написать - не знаю.. |
|||
227
viktor_vv
23.01.13
✎
17:31
|
Дам наводку
$ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :ВыбДата) Цена найди одно отличие от твоей $ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности) |
|||
228
viktor_vv
23.01.13
✎
17:32
|
И я точно не помню, но кажись ПсоледенееЗначение в SUM() не взлетит, потому как оно в подзапрос разворачивается.
|
|||
229
bananan
23.01.13
✎
17:33
|
(227) у меня так:
SELECT SUM($ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности)) Ставка |
|||
230
Mikeware
23.01.13
✎
17:35
|
(229) продолжайте наблюдение...©
|
|||
231
Wobland
23.01.13
✎
17:36
|
(229) убери функцию для начала, вдруг viktor_vv прав
|
|||
232
Mikeware
23.01.13
✎
17:39
|
(231) а почему это "вдруг"? в документации прекрасно написано. в конце концов, есть Отладка() или перпроцессирование, или просто вывод текста запроса, или профайлер...
проблема-то в соотношени радиусов... |
|||
233
Wobland
23.01.13
✎
17:40
|
(232) а я документацию в этом месте не читал ;)
|
|||
234
bananan
23.01.13
✎
17:40
|
9231) Функцию убрал - ошибка осталась
|
|||
235
viktor_vv
23.01.13
✎
17:41
|
Да оно там, в принципе, доступно матюкнется, правда на буржуинском :).
|
|||
236
viktor_vv
23.01.13
✎
17:42
|
(234) Ты (227) внимательно, посимвольно сравнил ?
|
|||
237
Wobland
23.01.13
✎
17:42
|
(234) прокомментируй (227)
|
|||
238
bananan
23.01.13
✎
17:43
|
(236) Не понимаю я здесь что к чему...
|
|||
239
Wobland
23.01.13
✎
17:43
|
с (205) прошло 50 минут
|
|||
240
bananan
23.01.13
✎
17:44
|
(237) код: $ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности) выдает ошибку: Meta name parser error: виртуальное поле не найдено "$ПоследнееЗначение.Справочник.Сотрудники"
|
|||
241
Wobland
23.01.13
✎
17:46
|
(240) различия в чём?
|
|||
242
Mikeware
23.01.13
✎
17:46
|
(240) и это вполне закономерно...
|
|||
243
PALESIA
23.01.13
✎
17:49
|
пятнично))) ну и какой-же приколист (0) 1С++ подсунул?)
|
|||
244
viktor_vv
23.01.13
✎
17:49
|
(238) Сравнивай посимвольно две строки слева направо, на первом отличии, остановись и задумайся.
$ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :ВыбДата) Цена $ПоследнееЗначение.Справочник.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности) |
|||
245
Mikeware
23.01.13
✎
17:52
|
(244) какое-какое последнее слово???
ты сам-то понял, что ему сказал??????? :-)) |
|||
246
Ёпрст
23.01.13
✎
17:53
|
||||
247
viktor_vv
23.01.13
✎
17:53
|
(245) А вдруг :))) .
|
|||
248
sapphire
23.01.13
✎
17:54
|
(224)
$ПоследнееЗначение.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности) |
|||
249
Wobland
23.01.13
✎
17:55
|
(246) это вторая ссылка за сегодняшний вечер. мою он врёт, что уже читал
|
|||
250
Wobland
23.01.13
✎
17:55
|
всё-таки кто-то пришёл
|
|||
251
bananan
23.01.13
✎
17:56
|
написал так:
SELECT SUM($ПоследнееЗначение.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности)) Став выдает ошибку: Cannot perform an aggregate function on an expression containing an aggregate or a subquery. |
|||
252
viktor_vv
23.01.13
✎
17:58
|
(251) Про sum и подзапрос уже выше писали.
Убери sum(). |
|||
253
bananan
23.01.13
✎
17:58
|
Что-то вроде Инет у меня глючит...
Повторяю, написал такой код: SELECT SUM($ПоследнееЗначение.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности)) Став Ошибка: Cannot perform an aggregate function on an expression containing an aggregate or a subquery. |
|||
254
Ёпрст
23.01.13
✎
17:59
|
(251) и правильно делает, выгреби последнее значение в подзапросе, а потом уже суммируй во внешнем.
|
|||
255
Ёпрст
23.01.13
✎
17:59
|
если приспичило
|
|||
256
Wobland
23.01.13
✎
17:59
|
(253) голова у тебя глючит. научи её читать и понимать написанное
|
|||
257
bananan
23.01.13
✎
18:01
|
(254)(252)
Код такой: SELECT $ПоследнееЗначение.Сотрудники.Ставка(Справочник.Сотрудники.ID, :ДатаАктуальности) Став Ошибки: Cannot perform an aggregate function on an expression containing an aggregate or a subquery. The column prefix 'Справочник.Сотрудники' does not match with a table name or alias name used in the query. |
|||
258
bananan
23.01.13
✎
18:01
|
(254) Здесь без функции и все-равно ошибка в запросе..
|
|||
259
viktor_vv
23.01.13
✎
18:01
|
(254) Ну все, еще сотня постов про внешний Select :)).
|
|||
260
Wobland
23.01.13
✎
18:02
|
(257) а в примере как?
|
|||
261
bananan
23.01.13
✎
18:03
|
(260) $ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :ВыбДата) Цена
|
|||
262
Wobland
23.01.13
✎
18:03
|
(261) а у тебя? в чём разница?
|
|||
263
viktor_vv
23.01.13
✎
18:03
|
SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
|
|||
264
viktor_vv
23.01.13
✎
18:04
|
А то боюсь намеками будем долго ехать.
|
|||
265
Wobland
23.01.13
✎
18:05
|
(264) ещё полторы-две сотни постов. сейчас он складывать будет
|
|||
266
bananan
23.01.13
✎
18:07
|
(263) СПАСИБО!!!
Теперь буду с подзапросом мучится :) |
|||
267
bananan
23.01.13
✎
18:08
|
+(266) Чего-то сходу не соображу что здесь в подзапросе искать...
|
|||
268
Wobland
23.01.13
✎
18:10
|
выбрать сумма(чего-то)
из (выбрать твои ставки) |
|||
269
Wobland
23.01.13
✎
18:11
|
+(268) сгруппировать, если надо
|
|||
270
bananan
23.01.13
✎
18:12
|
(268)SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став - это подзапрос?
А в запросе SELECT SUM(Став)? |
|||
271
bananan
23.01.13
✎
18:19
|
Код такой:
|SELECT SUM(Став) |FROM $Справочник.Сотрудники Сотр |INNER JOIN |SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став |WHERE Сотр.ID IN (SELECT Val FROM #tmpSotr) |AND $Сотр.ДатаПриема> :Дат1 |AND $Сотр.ДатаПриема<= :ДатаАктуальности |AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |"; Ошибка: ]Incorrect syntax near the keyword 'SELECT'. |
|||
272
bananan
23.01.13
✎
18:19
|
(269) А что здесь группировать?
|
|||
273
Mikeware
23.01.13
✎
18:25
|
м-дя...
|
|||
274
Wobland
23.01.13
✎
18:29
|
выбрать
сумма(таб1.поле1) из (выбрать таб2.поле2 как поле1 из таб2) как таб1 вот тебе нужная схема |
|||
275
bananan
23.01.13
✎
18:32
|
(274) Сейчас попробую..
|
|||
276
bananan
23.01.13
✎
18:44
|
(274)... Сейчас попробую эту схему...
Хотя, НЕ ПОНИМАЮ я вроде так и делаю: Суммиорую SUM(Став) в подзапросе выбираю |INNER JOIN |SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став |
|||
277
Wobland
23.01.13
✎
18:44
|
(276) кого с чем и зачем соединяешь?
|
|||
278
Wobland
23.01.13
✎
18:45
|
а в схеме ведь никаких джойнов
|
|||
280
Wobland
23.01.13
✎
18:48
|
(279) достал? ;)
|
|||
282
Mikeware
23.01.13
✎
18:48
|
виктор, не балуй!
пусть пытается понять, сто значит слово "думать" |
|||
283
viktor_vv
23.01.13
✎
18:49
|
(280) Есть немного :)), правда упорный.
|
|||
284
Mikeware
23.01.13
✎
18:49
|
(283) ты в последнем слове сделал ошибку..
|
|||
285
viktor_vv
23.01.13
✎
18:49
|
(282) Завязываю :).
|
|||
286
viktor_vv
23.01.13
✎
18:50
|
(284) Когда писал, была такая мысль :)).
|
|||
287
Mikeware
23.01.13
✎
18:50
|
(286) :-))
|
|||
288
bananan
23.01.13
✎
18:50
|
(279) Спасибо!!!
|
|||
289
bananan
23.01.13
✎
18:53
|
Запрос - работает, но... я опять туплю код в скрипте такой:
ТекстЗапроса = " |SELECT |Внутренний.ID as [Сотрудник $Справочник.Сотрудники], | SUM(Внутренний.Став) as Ставка | |From |( | SELECT | Сотр.ID as ID, | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |Group by | Внутренний.ID |"; Запрос_.УстановитьТекстовыйПараметр("Дат1", Дата("01.01.1989")); Запрос_.УстановитьТекстовыйПараметр("ДатаАктуальности", ДатаАктуальности+1); Запрос_.УложитьСписокОбъектов(Запрос.Сотр.ТекущийЭлемент(), "#tmpSotr","Сотрудники"); тЗанято = Запрос_.ВыполнитьСкалярный(ТекстЗапроса); ПоШтату = Запрос.Сотр.ПоШтату; Если Запрос.Сотр.ПоШтату-тЗанято<0 Тогда тВакантно = 0; КонецЕсли; ФиксДан = Шаблон("Занято: [тЗанято] \ По штату: [Запрос.Сотр.ПоШтату] \ Вакантно: [тВакантно]"); А вот на вывод вместо суммы ставок и частей ставок выдает: Занято: Структура \ По штату: 109.5 \ Вакантно: 2 |
|||
290
bananan
23.01.13
✎
18:54
|
т.е. тЗанято как-то иначе надо представить...
|
|||
291
Wobland
23.01.13
✎
18:56
|
что за Запрос? я про переменную
|
|||
292
bananan
23.01.13
✎
18:57
|
А запрос
|SELECT |Внутренний.ID as [Сотрудник $Справочник.Сотрудники], | SUM(Внутренний.Став) as Ставка | |From |( | SELECT | Сотр.ID as ID, | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |Group by | Внутренний.ID |"; что возвращает? |
|||
293
bananan
23.01.13
✎
18:58
|
(291) Где это?
|
|||
294
Wobland
23.01.13
✎
18:58
|
(292) обычно ТЗ
|
|||
295
Wobland
23.01.13
✎
18:58
|
(293) в (289)
|
|||
297
viktor_vv
23.01.13
✎
19:00
|
А, вернее он куда-то пропал :)).
|
|||
298
Wobland
23.01.13
✎
19:00
|
(296) что такое скалярный? я сейчас для повышения эрудиции, сам не знаю
|
|||
299
bananan
23.01.13
✎
19:00
|
(289) там так (покажу больше кода):
Запрос_=СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT |Внутренний.ID as [Сотрудник $Справочник.Сотрудники], | SUM(Внутренний.Став) as Ставка | |From |( | SELECT | Сотр.ID as ID, | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |Group by | Внутренний.ID |"; Запрос_.УстановитьТекстовыйПараметр("Дат1", Дата("01.01.1989")); Запрос_.УстановитьТекстовыйПараметр("ДатаАктуальности", ДатаАктуальности+1); Запрос_.УложитьСписокОбъектов(Запрос.Сотр.ТекущийЭлемент(), "#tmpSotr","Сотрудники"); тЗанято = Запрос_.ВыполнитьСкалярный(ТекстЗапроса); ПоШтату = Запрос.Сотр.ПоШтату; Если Запрос.Сотр.ПоШтату-тЗанято<0 Тогда тВакантно = 0; КонецЕсли; ФиксДан = Шаблон("Занято: [тЗанято] \ По штату: [Запрос.Сотр.ПоШтату] \ Вакантно: [тВакантно]"); Если фУволенные=0 Тогда Если тЗанято = 0 Тогда продолжить; Конецесли; |
|||
300
Mikeware
23.01.13
✎
19:00
|
(294) у него Запрос_.ВыполнитьСкалярный(ТекстЗапроса)
|
|||
301
Mikeware
23.01.13
✎
19:01
|
(297) :-))
|
|||
302
Wobland
23.01.13
✎
19:02
|
(299) что такое "Запрос"?
|
|||
303
Wobland
23.01.13
✎
19:04
|
(302) какой тип у переменной? что туда присваивается?
|
|||
304
bananan
23.01.13
✎
19:15
|
Разве запрос:
|SELECT |Внутренний.ID as [Сотрудник $Справочник.Сотрудники], | SUM(Внутренний.Став) as Ставка | |From |( | SELECT | Сотр.ID as ID, | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |Group by | Внутренний.ID |"; Вернет структуру, а не число?? |
|||
305
Wobland
23.01.13
✎
19:17
|
(304) выбираешь ИД и ждёшь числу?
|
|||
306
bananan
23.01.13
✎
19:26
|
Такой код:
|SELECT | SUM(Внутренний.Став) as Ставка | |From |( | SELECT | Сотр.ID as ID, | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |Group by | Внутренний.ID |"; выдает в любом случае 1 (единицу)!!! |
|||
307
bananan
23.01.13
✎
19:33
|
+(306) убрал:
|Group by | Внутренний.ID Теперь считает так как надо! Всем большое спасибо.!!! |
|||
308
Wobland
23.01.13
✎
19:48
|
Сотр.ID as ID, убери ещё
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |