Вход | Регистрация

  1  2  3  4   
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Опять запрос.. (я не умею называть темы)

v7: Опять запрос.. (я не умею называть темы)
Я
   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
Условия по складу нет в запросе, вот что не так

ЗЫ. Угадал автора не открывая топег, кстати
   bananan
 
3 - 17.01.13 - 17:18
(2) А это что:
   |Условие(Склад в выбСклад);
   bananan
 
4 - 17.01.13 - 17:19
(1) Ну и как обходиться с реквезитом?
   КонецЦикла
 
5 - 17.01.13 - 17:19
(3) А если не выбран?
Делай по аналогии с имеющимся блин
   КонецЦикла
 
6 - 17.01.13 - 17:20
Если ВыбСклад.Выбран() = 1 Тогда
ТекстЗапроса = ТекстЗапроса +"       
|Условие(Склад = ВыбСклад);";
КонецЕсли;
   bananan
 
7 - 17.01.13 - 17:22
(6) Спасибо!
   Ёпрст
 
8 - 17.01.13 - 17:22
(0)

Если выбСклад.РазмерСписка()>0 
вот это выкинь и привет
   КонецЦикла
 
9 - 17.01.13 - 17:24
(8) Да, должно и так прокатить, забыл уже :)
   miki
 
10 - 17.01.13 - 17:28
(6)Плохой совет. А если есть группы? А если не выбран?
(8)Или принудительно пихать в СЗ пустышку, как вариант.
 
 Рекламное место пустует
   bananan
 
11 - 17.01.13 - 17:29
Делал все по аналогии того запроса и формы какие были... НО
Сначала предисловие поле выбора склада в рамке к нему "приатачены" 4 кнопки "...", "......", "Х" и "ХХ"
третья кнопка - удалить текущий слкад, яетвертая - удалить все склады
Потому что здесь Склад - реквизит регистра, а не список - возникает вопрос: "Как удалить текущий склад\все склады?"
   sapphire
 
12 - 17.01.13 - 17:30
ТС изменяет 1С++ с нативными запросами....
   bananan
 
13 - 17.01.13 - 17:30
(10) Пардон, а что такое СЗ?
   Ёпрст
 
14 - 17.01.13 - 17:32
(11) Выбсклад=""
   bananan
 
15 - 17.01.13 - 17:33
(14) Не понял Выбсклад что присвоить?
   miki
 
16 - 17.01.13 - 17:33
(15)ничего. Буквально :))
   varelchik
 
17 - 17.01.13 - 17:34
(13) СЗ=СписокЗначений
   miki
 
18 - 17.01.13 - 17:34
+ и два_икса тебе ни к чему, раз не СЗ (список значений), а просто поле.
   bananan
 
19 - 17.01.13 - 17:44
(17-18) Спасибо
   bananan
 
20 - 17.01.13 - 17:44
(16) Где выбСклад ничего не присваивать?
   miki
 
21 - 17.01.13 - 17:49
где Х "Удалить". В твоём случае лучше написать "Очистить" или "По всем".
   bananan
 
22 - 17.01.13 - 18:10
(21) Сейчас там стоит код: выбСклад.УдалитьЗначение(выбСклад.ТекущаяСтрока()), т.е. кго заменить на процедуру очистки списка значений?
   miki
 
23 - 17.01.13 - 18:14
(22)у тебя же нету СЗ? Если просто поле - очищай как в (14). А для XX-"удалить все склады" на нет СЗ и суда нет.
   Cthulhu
 
24 - 17.01.13 - 18:15
мне кажется, что наступает самое время для выяснения того, что, оказывается, вдруг понадобилось фильтровать по нескольким складам.
   bananan
 
25 - 17.01.13 - 18:19
(23) Поле для выбора склада я делал так: добавить реквезить диалога в тип указал сто это Список.Склады
Вопрос у меня в этой форме уже были поля для выбора:
ТМЦ
Агент
Клиент
Так вот когда запускаю скрипт на выполнение те поля что были: коращены в белый, а то что я добавил - серый
Тут видимо не такие поля?
   bananan
 
26 - 17.01.13 - 18:37
И вообще честно говоря я не понимаю в чем разница при нажатии на кнопку "..." и кнопку "...."
   Ёпрст
 
27 - 17.01.13 - 18:38
(26) смотри формулу кнопки.
   bananan
 
28 - 17.01.13 - 18:43
(27) Для первой кнопки ВыбратьТМЦ(0) для второй выбратьТМЦ(1)
Вот код процедуры ВыбратьТМЦ(Реж):
Процедура ВыбратьТМЦ(Реж)
    Перем Фрм;
    Перем Тек;
    Если ВыбТМЦ.РазмерСписка()>0 Тогда
        Тек=ВыбТМЦ.ПолучитьЗначение(ВыбТМЦ.ТекущаяСтрока());
    КонецЕсли;
    ОткрытьПодбор("Справочник.ТМЦ",,Фрм,Реж,Тек);
    Фрм.ВыборГруппы(1);
КонецПроцедуры
В чем разница?
   Cthulhu
 
29 - 17.01.13 - 18:45
В 4-м параметре вызова системной процедуры открытия подбора.
   bananan
 
30 - 17.01.13 - 18:51
(29) А если это подСправоник.Склады?
   Cthulhu
 
31 - 17.01.13 - 18:53
(30): я не знаю, что такое "подСправочник".
   bananan
 
32 - 17.01.13 - 18:54
+(30) Ну и в конце концов в первом случае что делается и что делается во тором случае??
   bananan
 
33 - 17.01.13 - 18:55
(31) Я брал єто поле для вібора склада, склад выбираю из Справочника.Склады
 
 
   miki
 
34 - 17.01.13 - 19:01
(32) выбор может единичным (ткнул->выбрал->форма выбора закрылась сама) и множественным (ткнул->выбрал, ткнул->выбрал, ..., ткнул->выбрал, пока сам форму выбора не закроешь).
   bananan
 
35 - 17.01.13 - 19:13
(34) уже вроде просветлело у меня в мозгу :)
   bananan
 
36 - 17.01.13 - 19:27
Еще вопрос когда я нажимаю кнопку "...." возде складов (открывается окно выбора складов) но когда клацаю на складе он появляется в окне выбора ТМЦ а не в окне выбора складов
Полчему?
Команда у кнопки "...." возле ТМЦ - ВыбратьТМЦ(1), вощле складов вЫбратьСклады(1)
соответственные процедуры:
Процедура ВыбратьТМЦ(Реж)
    Перем Фрм;
    Перем Тек;
    Если ВыбТМЦ.РазмерСписка()>0 Тогда
        Тек=ВыбТМЦ.ПолучитьЗначение(ВыбТМЦ.ТекущаяСтрока());
    КонецЕсли;
    ОткрытьПодбор("Справочник.ТМЦ",,Фрм,Реж,Тек);
    Фрм.ВыборГруппы(1);
КонецПроцедуры
и 
Процедура ВыбратьСклад(Реж)
    Перем Фрм;
    Перем Тек;
    ОткрытьПодбор("Справочник.Склады",,Фрм,Реж,Тек);
    Фрм.ВыборГруппы(1);
КонецПроцедуры
Почему склад появляется в окне ТМЦ?
   monsterZE
 
37 - 17.01.13 - 19:51
=) потому что криво написана обработка подбора
   bananan
 
38 - 17.01.13 - 19:54
(37) нашел,:
Процедура ОбработкаПодбора(Выб)
    Если Выб.Вид()="Клиенты" Тогда
        ВыбКлиент.ДобавитьЗначение(Выб);
        ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка());
    ИначеЕсли Выб.Вид()="Агент" Тогда
        ВыбАгент.ДобавитьЗначение(Выб);
        ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка());
    Иначе
        ВыбТМЦ.ДобавитьЗначение(Выб);
        ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка());
    КонецЕсли;
КонецПроцедуры
НО, понятия не имею как мне сюда "прикрутить" складі... :(
   bananan
 
39 - 17.01.13 - 19:57
т.е. Выб.Вид() - это что ?
   bananan
 
40 - 17.01.13 - 19:58
или вернее как здесь мне определить что выбор произошел в окне выбора склада??
   bananan
 
41 - 17.01.13 - 20:01
+ (39)(40) все - разобрался сам
   bananan
 
42 - 18.01.13 - 12:25
Еще вопрос: у меня на форме несколько элементов, например на данный момент меня интересует выбСклад и ВыбТМЦ, как програмно узнать тип выбСклад и тип ВыбТМЦ? Скорее всего этот вопрос из элементарных, но, сори, я не знаю как это сделать.
   monsterZE
 
43 - 18.01.13 - 12:30
ТтипЗначения?
   monsterZE
 
44 - 18.01.13 - 12:30
с одной т =)
   monsterZE
 
45 - 18.01.13 - 12:31
Ctrl+F1 - там ответы на большенство "элементарных" вопросов ;-)
   bananan
 
46 - 18.01.13 - 12:39
(43)(45) Я чегното не понимаю задал :
Сообщить("СКлиентамиСАгентами()");
    Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");
Выдает:
СКлиентамиСАгентами()
111

Как это понимать? Где, к примеру: " = ВыбТМЦ, "?? И что за 111?
   bananan
 
47 - 18.01.13 - 12:59
Еть здесь кто живой?
   monsterZE
 
48 - 18.01.13 - 13:18
(47) ты чего хочешь то? =)
   bananan
 
49 - 18.01.13 - 13:19
Ребята. подскажите или помогите!!! ПОЖАЛУЙТСА!!!!!
 
 Рекламное место пустует
   bananan
 
50 - 18.01.13 - 13:19
(48) смотри (46)
   lefthander
 
51 - 18.01.13 - 13:22
//Сообщить("СКлиентамиСАгентами()");
 
В сообщить не отрабатывает процедуры.
Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");  а эту так попробуй
   bananan
 
52 - 18.01.13 - 13:23
(51) А там СКлиентамиСАгентами() в кавычках, т.е. это ТЕКСТОВОЯ СТРОКА, а не вызов процедуры!
   bananan
 
53 - 18.01.13 - 13:25
(51) И пробывать не надо было, но попробывал, как и ожидал в ответ получил в окне сообщений
111
Что это за 111?
И еще вопрос. Мне нужно чтобы процедура вернула значение. Как это сделать?
   bananan
 
54 - 18.01.13 - 13:27
+ (53) по поводу возврата значения - вопрос отпадает. В 1С есть функции :)
   bananan
 
55 - 18.01.13 - 13:46
Хорошо. такая лажа у меня:
ТекстЗапроса =
 //{{ЗАПРОС(Сформировать)
 
Период с ВыбНачПериода по ВыбКонПериода;
Обрабатывать НеПомеченныеНаУдаление;
ТМЦ = Регистр.Обороты.ТМЦ;
Клиент = Регистр.Обороты.Клиент;
Агент = Регистр.Обороты.Агент;
Склад = Регистр.Обороты.Склад;
РасходГрн = Регистр.Обороты.РасходГрн;
РасходКво = Регистр.Обороты.РасходКво;
Функция РасходГрнСумма = Сумма(РасходГрн);
Функция КвоРасход = Сумма(РасходКво);
Группировка Агент без групп;    Группировка Слад;
Группировка Клиент без групп;
Группировка ТМЦ;
Условие (Склад в выбСклад);
Условие(ТМЦ в ВыбТМЦ);
Условие(Клиент в ВыбКлиент);
Условие(Агент в ВыбАгент);
Выдает ошибку:
  Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(58)}: Группировка Агент без групп;    Группировка Слад <<?>> ;
Запрос[12] : Переменная  'Слад' не опеределена
Склад /переменная/ - определяется в запросе:
Склад = Регистр.Обороты.Склад;
Чего здесь нетак?
   bananan
 
56 - 18.01.13 - 13:49
Help my, please!!!!
   Ёпрст
 
57 - 18.01.13 - 13:50
Склад<>Слад
   cw014
 
58 - 18.01.13 - 13:52
Клиент "инкас", потрите мне "СпИнкас"
   Cthulhu
 
59 - 18.01.13 - 13:53
Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");
(а 111 это приведенный к типу первого операнда - ЧИСЛА! - результат выражения)
   Cthulhu
 
60 - 18.01.13 - 13:53
и - за "пробЫвать" - предлагаю или коленку простреливать, или в игнор.
   bananan
 
61 - 18.01.13 - 13:53
(57) Большое спасибо, мне надо быть внимательнее.
   bananan
 
62 - 18.01.13 - 13:54
(58) СпИнкас - это флажок (0 или 1)
   bananan
 
63 - 18.01.13 - 13:55
(59) Ничего не понял: первый операнд чего Сообщить? так там первый операнд строка
   monsterZE
 
64 - 18.01.13 - 14:00
(63) ты СП то все-таки почитывай.. а не тупо копипасть
   monsterZE
 
65 - 18.01.13 - 14:01
хоть бы даже по тем коммандам, которые копипастишь
а то 111 в страшных снах сниться будет
   bananan
 
66 - 18.01.13 - 14:03
(64) Да читаб я, а здесь конкренто, чего за 111???
   bananan
 
67 - 18.01.13 - 14:07
+(66) в Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); где "111" или кака функция возвращает 111???
И прчем здесь СП и копипаст?
   lefthander
 
68 - 18.01.13 - 14:11
111 - это скорее всего значение того самого выбТМЦ, 
Сообщить(ВыбТМЦ+" = ВыбТМЦ, "+выбСклад +" = выбСклад")
Таким образом что сообщит?
   monsterZE
 
69 - 18.01.13 - 14:11
херово читал значит.
Возвращаемые значения типов данных:
0 - неопределенный тип данных;
1 - числовой тип данных;
2 - строковый тип данных;
3 - тип данных Дата;
10 - агрегатный тип данных 'Перечисление';
11 - агрегатный тип данных 'Справочник';
12 - агрегатный тип данных 'Документ';
13 - агрегатный тип данных 'Календарь';
14 - агрегатный тип данных 'ВидРасчета';    
100 - внешний объект ('Текст', 'Таблица', 'Запрос', 'ЖурналРасчетов' и т.п.).
   monsterZE
 
70 - 18.01.13 - 14:12
можно подругому зайти =) для чего тебе тип?
   bananan
 
71 - 18.01.13 - 14:13
А в данном, коенкретном случае: шут с ним с типом значения.
Меня собственно интересует в конце концов не это.
У меня на форме есть четыре окошка для выбора: ТМЦ, Агент, Клиент, Склад
Так вот все 4 на входе получают соответветствующие справочники, но, почему-то (здесь явно я сделал что-то не так) окно выбора Склад (визуально! - серый цвет окна, остальные фон - белый!
Почему?
Мне это надо для Процедура ОбработкаПодбора(Выб)
т.е. надо сюда вставить подбор склада...
написал такой код:
Процедура ОбработкаПодбора(Выб)
    Если Выб.Вид()="Клиенты" Тогда
        ВыбКлиент.ДобавитьЗначение(Выб);
        ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка());
    ИначеЕсли Выб.Вид()="Агент" Тогда
        ВыбАгент.ДобавитьЗначение(Выб);
        ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка());
    Иначе
        ВыбТМЦ.ДобавитьЗначение(Выб);
        ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка());
    КонецЕсли;   
    Если Выб.Вид()="Склады" Тогда
        Сообщить(выбСклад+"----------");
        выбСклад.Добавить(Выб);
        выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка());
        Сообщить("----------"+выбСклад);
    КонецЕсли;   
КонецПроцедуры

Выдает ошибку:
выбСклад.Добавить(Выб);
{\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(446)}: Поле агрегатного объекта не обнаружено (Добавить)
Чего здесь не так???
   bananan
 
72 - 18.01.13 - 14:14
(69) и где в коде:
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");
Числовой тип данных???
   bananan
 
73 - 18.01.13 - 14:18
monsterZE Чего молчишь?
   monsterZE
 
74 - 18.01.13 - 14:18
(72) такое ощущение, что у тебя ваще каша в бошке =)
то ты копипастишь правильную строчку.. то опять свою
ТипЗначения(ВыбТМЦ)
вот это числовой тип
потому что оно возвращает число
   bananan
 
75 - 18.01.13 - 14:20
(74) Хорошо. в данном сообщить Два ТипЗнавчения - они вернули соответственно две 11
Откуда взялась третья 1????!!!!
   monsterZE
 
76 - 18.01.13 - 14:21
визуально! - серый цвет окна, остальные фон - белый!
может оно у тебя отключено? =)
(75)
чего гадать - выведи ДВА сообщить =)
   bananan
 
77 - 18.01.13 - 14:21
(76) Минуту. Сча выведу
   monsterZE
 
78 - 18.01.13 - 14:21
ты видишь отличие между
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); 
и
Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад");
?
   monsterZE
 
79 - 18.01.13 - 14:22
ты видишь отличие между:
Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); 
и
Сообщить(""+ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ, "+ТипЗначения(выбСклад)+" = выбСклад"); 
?
   Cthulhu
 
80 - 18.01.13 - 14:23
бесполезняк. вменяемости не наблюдается.
   bananan
 
81 - 18.01.13 - 14:27
(79) Опечатка там у меня. и разницу, конечно вижу.
код:
ТекстЗапроса = СформироватьЗапрос(1);
   //Создание объекта типа Запрос
 
    Сообщить(ТипЗначения(ВыбТМЦ)+" = ВыбТМЦ ");
    Сообщить(ТипЗначения(выбСклад)+" = выбСклад");
    Запрос = СоздатьОбъект("Запрос");
    Сообщить("ТекстЗапроса - "+ТекстЗапроса);
выдает:
100
11
ТекстЗапроса -//{{ЗАПРОС(Сформировать)
 
Период с ВыбНачПериода по ВыбКонПериода;
Обрабатывать НеПомеченныеНаУдаление;
ТМЦ = Регистр.Обороты.ТМЦ;
Клиент = Регистр.Обороты.Клиент;
Агент = Регистр.Обороты.Агент;
Склад = Регистр.Обороты.Склад;
РасходГрн = Регистр.Обороты.РасходГрн;
РасходКво = Регистр.Обороты.РасходКво;
Функция РасходГрнСумма = Сумма(РасходГрн);
Функция КвоРасход = Сумма(РасходКво);
Группировка Агент без групп;    Группировка Клиент без групп;
Группировка Склад;
Группировка ТМЦ;
Условие (Склад в выбСклад);
Условие(ТМЦ в ВыбТМЦ);
Условие(Клиент в ВыбКлиент);
Условие(Агент в ВыбАгент);
Здесь значит ТМЦ - справочник, а Склад - внешний объект ('Текст', 'Таблица', 'Запрос', 'ЖурналРасчетов' и т.п.).
ТАк как мне обрабатывать ОбработкаПодбора(Выб)
при выборе склада?
   monsterZE
 
82 - 18.01.13 - 14:33
--
Синтаксис:
ОбработкаПодбора(<Элемент>,<КонтФормы>)
Назначение:
Предопределенная процедура обработки подбора значения при  нажатия кнопки Выбрать в Форме Подбора значения.
Параметры:
<Элемент> - элемент справочника подбора или документ, передаваемый для обработки.
--
по аналогии со своей текйще процедурой и сделай
там как определяется куда пихать? =)
а запрос в (81) выполняется? или тебе это надо, чтобы запрос выполнился? =)
   monsterZE
 
83 - 18.01.13 - 14:35
что такое выбСклад
и что такое .Добавить?
   bananan
 
84 - 18.01.13 - 14:41
выбСлад - окно выбора Склада на форме. а склад берется из Справочник.Склады, 
и по аналогии С ТМЦ, АГент и Клиент (что тоже справочники)
должно работать
    Если Выб.Вид()="Склады" Тогда
        выбСклад.Добавить(Выб);
        выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка());
    КонецЕсли;   
Но выдает ошибку:
выбСклад.Добавить(Выб);
а выбраный склад в данном окне - появляется в окне выбора ТМЦ!
   bananan
 
85 - 18.01.13 - 14:50
(83) .Добавить - опять опечатка 
Надо: ДобавитьЗначение
Но код:
Процедура ОбработкаПодбора(Выб)
    Если Выб.Вид()="Клиенты" Тогда
        ВыбКлиент.ДобавитьЗначение(Выб);
        ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка());
    ИначеЕсли Выб.Вид()="Агент" Тогда
        ВыбАгент.ДобавитьЗначение(Выб);
        ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка());
    Иначе
        ВыбТМЦ.ДобавитьЗначение(Выб);
        ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка());
    КонецЕсли;   
    Если Выб.Вид()="Склады" Тогда
        Сообщить(выбСклад+"----------");
        выбСклад.ДобавитьЗначение(Выб);
        выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка());
        Сообщить("----------"+выбСклад);
    КонецЕсли;   
КонецПроцедуры
Выдает ошибку:
выбСклад.ДобавитьЗначение(Выб);
{\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВНОВЫЙ.ERT(447)}: Поле агрегатного объекта не обнаружено (ДобавитьЗначение)
Почему?
   bananan
 
86 - 18.01.13 - 14:52
И почему выбранный здесь склад попадает в окно выбора ТМЦ???
   bananan
 
87 - 18.01.13 - 14:57
+(86) Как мне в данном случае быть? Как кодить7
   bananan
 
88 - 18.01.13 - 15:04
Написал такой код:
Процедура ОбработкаПодбора(Выб)
    Если Выб.Вид()="Клиенты" Тогда
        ВыбКлиент.ДобавитьЗначение(Выб);
        ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка());
        Сообщить("ВыбКлиент"+ТипЗначения(ВыбКлиент));
    ИначеЕсли Выб.Вид()="Агент" Тогда
        ВыбАгент.ДобавитьЗначение(Выб);
        ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка());
    Иначе
        ВыбТМЦ.ДобавитьЗначение(Выб);
        ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка());
    КонецЕсли;   
    Если Выб.Вид()="Склады" Тогда
        Сообщить("----------");                      
        Сообщить("выбСклад"+ТипЗначения(выбСклад));
        выбСклад.ДобавитьЗначение(Выб);
        выбСклад.ТекущаяСтрока(выбСклад.РазмерСписка());
        Сообщить("----------"+выбСклад);
    КонецЕсли;   
КонецПроцедуры
При выборе клиента - выдает 100
Склада 11
получается что ВыбКлиент, - спискок, или текст или таблица значений, а склад - Справочник...
А  мне надо чтобы и Справочник был как и Клиент и ТМЦ и Агент . Мне надо чтобы все они были одного типа!!!!
   Стрелок
 
89 - 18.01.13 - 15:08
автор ты когда нибудь начнёшь думать сам головой а не задницей?????
   bananan
 
90 - 18.01.13 - 15:10
(89) Думая я в основном - головой, но здесь я НЕ ПОНИМАЮ как сделать или что я сделал неправильно
   bananan
 
91 - 18.01.13 - 16:07
Объясните, ПОЖАЛУЙСТА, у меня в таблице вывода поле: Запрос.ЗначениеУпорядочивания(1) /оно, это поле - выражение/
Что такое ЗначениеУпорядочивания(1) и где его искать?
   Cthulhu
 
92 - 18.01.13 - 16:20
не твоё это всё. не мучь себя.
   Стрелок
 
93 - 18.01.13 - 16:30
автор ты пытаешься программировать методом научного и не очень тыка. вопрос - ты раньше чем занимался? до того как проиграл в карты "программирование в 1С 7.7"?
   Ёпрст
 
94 - 18.01.13 - 16:32
(91)
ЗначениеУпорядочивания(<?>,)
Синтаксис:
ЗначениеУпорядочивания(<Группировка>,<Упорядочив>)
Назначение:
Возвращает значение заданного поля упорядочивания текущей группы.
Параметры:
<Группировка> - выражение, содержащее номер или имя группировки (номер работает быстрее).;
<Упорядочив> -  необязательный параметр. Порядковый номер параметра упорядочивания указанной группировки. Значение по умолчанию: 1.

но это моветон, наследство от конструктора отчетов
   lefthander
 
95 - 18.01.13 - 16:40
(88) Попробуйте тоже самое, только замените ТипЗначения(ВыбСклад) на ВыбСклад
   bananan
 
96 - 18.01.13 - 16:48
(94) Спасибо, уже нашел и разобрался с этим
Но возник следующий вопрос...
Данные запросы делаются по Регистру обороты, как мне задать чтобы запрос обрабатывал только документы РасходнаяНакладнаяН,ВозвратнаяНакладнаН
и второе чтобы он не обрабатывал документы: РасходнаяНакладнаяН,ВозвратнаяНакладнаН???
   Ёпрст
 
97 - 18.01.13 - 16:48
поставить условие на вид документа
   Стрелок
 
98 - 18.01.13 - 16:49
смотри типовую ТиС отчёт "продажи"
   bananan
 
99 - 18.01.13 - 16:51
(97) (98) Спасибо посмотрю
   bananan
 
100 - 18.01.13 - 16:53
+(99) у меня не ТиС, а Бухгалтерия для Украины, и там нет отчета Продажи
(97) А как поставить такое условие?
  1  2  3  4   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует