Имя: Пароль:
1C
1C 7.7
v7: Подскажите почему запрос не работает с условием на фирму
0 TwoWorld
 
25.01.12
12:53
Запрос = мБаза.CreateObject("Запрос");
   ТекстЗапроса = "Период с '" + НачПериода + "' по '" + КонПериода + "';
   |КодНоменклатуры = Регистр.ПартииНаличие.Номенклатура.Код;
   |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
   |Фирма = Регистр.ПартииНаличие.Фирма;
   |Количество = Регистр.ПартииНаличие.Количество;
   |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Функция СуммаРубНачОст = Сумма(СуммаРуб);
   |Условие (Фирма.Код=ПарФирмаТек);
   |Группировка Номенклатура Без Групп;";
   ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПарФирмаТек",""+КодФирмы+"");
1 TwoWorld
 
25.01.12
12:55
(0)КодФирмы - это строка, в которой задается код фирмы в 7.7
2 TwoWorld
 
25.01.12
14:29
ребят подскажите как правильно условие поставить?
   СО = мБаза.CreateObject("Справочник.Фирмы");
   ФирмаТек = "";
   если СО.НайтиПоКоду(КодФирмы,0) = 1 Тогда
       ФирмаТек = Со.ТекущийЭлемент().Код;
   КонецЕсли;
   
   Запрос = мБаза.CreateObject("Запрос");
   ТекстЗапроса = "Период с '" + НачПериода + "' по '" + КонПериода + "';
   |КодНоменклатуры = Регистр.ПартииНаличие.Номенклатура.Код;
   |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
   |Фирма = Регистр.ПартииНаличие.Фирма;
   |Количество = Регистр.ПартииНаличие.Количество;
   |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Функция СуммаРубНачОст = Сумма(СуммаРуб);
   |Группировка Номенклатура Без Групп;
   |Условие (Фирма.Код=ПарФирмаТек);";

   
   ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПарФирмаТек",ФирмаТек);
3 dk
 
25.01.12
14:34
а ссылки на фирму нет? только код разве?
4 1Сергей
 
25.01.12
14:35
ЗнавчениеВстроку/изСтроки
5 miki
 
25.01.12
14:36
параметр сделать с типом фирмы не предлагать?
6 1Сергей
 
25.01.12
14:37
(5) у него оля
7 miki
 
25.01.12
14:38
(6)можно найти сначала фирму по коду
8 1Сергей
 
25.01.12
14:39
(7) дык, он её и находит вначале
9 dk
 
25.01.12
14:43
раз ОЛЯ
то либо извращаться с значениеизстрокивнутр
либо
СокрЛП(Фирма.Код)=СокрЛП(""ПарФирмаТек"")
10 miki
 
25.01.12
14:43
а зачем сравнивает с кодом, а не с ссылкой?
11 1Сергей
 
25.01.12
14:46
(10) а как ты ещё передашь переменную в запрос подключаемой базе? тут либо изврат с (4) либо задействовать глобальную переменную
12 Ёпрст
 
25.01.12
14:49
(0) за условие Условие (Фирма.Код
нужно молоточком по темечку..
13 hhhh
 
25.01.12
14:49
по наименованию надо, поиск по коду - глючная штука.
14 Ёпрст
 
25.01.12
14:50
+12 а по теме - СокрЛП спасёт в тексте запроса
15 1Сергей
 
25.01.12
14:50
(13) бугага :)
16 miki
 
25.01.12
14:52
(11)точно, ты прав.
17 Джинн
 
25.01.12
14:52
(12) Лучше по рукам. Может выпрямятся.
18 суицид
 
25.01.12
15:03
(11)через значение из строки внутр
19 TwoWorld
 
25.01.12
15:11
А так взлетит:
   СО = мБаза.CreateObject("Справочник.Фирмы");
   ФирмаТек = "";
   если СО.НайтиПоКоду(КодФирмы,0) = 1 Тогда
       ФирмаТек = Со.ТекущийЭлемент().Код;
   КонецЕсли;
   
   Запрос = мБаза.CreateObject("Запрос");
   ТекстЗапроса = "Период с '" + НачПериода + "' по '" + КонПериода + "';
   |КодНоменклатуры = Регистр.ПартииНаличие.Номенклатура.Код;
   |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
   |Фирма = Регистр.ПартииНаличие.Фирма;
   |Количество = Регистр.ПартииНаличие.Количество;
   |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб;
   |Функция КоличествоКонОст = КонОст(Количество);
   |Функция СуммаРубНачОст = Сумма(СуммаРуб);
   |Группировка Номенклатура Без Групп;
   |Условие (Фирма.Код="""+СокрЛП(ФирмаТек)+""");";
20 Ёпрст
 
25.01.12
15:12
(19) нет.
И это, Не пиши в тексте запроса Условие (Фирма.Код никогда, а то поколотят когда нить.
21 TwoWorld
 
25.01.12
15:14
(20) тогда так
  |Условие (Фирма.Наименование="""+СокрЛП(ФирмаТек)+""");";

  СО = мБаза.CreateObject("Справочник.Фирмы");
   ФирмаТек = "";
    если СО.НайтиПоКоду(КодФирмы,0) = 1 Тогда
       ФирмаТек = Со.ТекущийЭлемент().Наименование;
   КонецЕсли;
22 Ёпрст
 
25.01.12
15:17
(21) а за это - уволят
23 Ёпрст
 
25.01.12
15:18
|КодФирма = Регистр.ПартииНаличие.Фирма.Код;
|Условие(СокрЛП(КодФирма) = ="""+СокрЛП(ФирмаТекКод)+""");";