|
|
|
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, убери ещё
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |