Имя: Пароль:
   
1C
1C 7.7
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
(135) земляк - тебе сюда

http://1clancer.ru/
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
(244) надо не ответ давать, а хелп :))

http://www.1cpp.ru/docum/icpp/html/ODBC.html#id38
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, убери ещё