Имя: Пароль:
1C
1C 7.7
v7: 1С Запрос на sql базе собирает неправильные данные
0 1CNov
 
02.02.12
14:33
День добрый!

Есть вот такая проблемка... самописная база на 7.7, висит на sql2000

В конфигурации есть документ, у него есть реквизиты шапки "Получатель" и "Поставщик" типа Справочник.Контрагенты.

Пишу отчет - реестр документов. Данные собираю запросом.
Запрос простенький, выбирает текущий документ, покупатель и поставщик.

Запускаю запрос на sql ной базе, выгружаю запрос в таблицу значений...

В колонке "Поставщик" данные верные, а в колонке "Покупатель" - данные не о покупателе а о поставщике :)

Причем на dbf-ной базе, именно этой же, выгруженной из sql-ной запрос отрабатывает правильно....

Что за ? никогда с таким не сталкивался :)
1 Ёпрст
 
02.02.12
14:35
реиндекс базы сделай + обновление статистики
2 Ёпрст
 
02.02.12
14:36
+ нам отсюда не видно твой текст запроса и как ты потом его смотришь
3 1CNov
 
02.02.12
14:43
ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Поставщик = Документ.Приход.Поставщик;
   |Получатель = Документ.Приход.Получатель;
   |ТекущийДокумент = Документ.Приход.ТекущийДокумент;
   |Группировка ТекущийДокумент;
   |Группировка Поставщик без групп;
   |Группировка Получатель без групп;
   |"//}}ЗАПРОС
   ;
4 1CNov
 
02.02.12
14:49
и как бы я его не смотрел, хоть выгрузкой в ТЗ, хоть перебором.

На dbf все нормально, на sql криво
5 Voronve
 
02.02.12
14:49
(0)
Запрос = СоздатьОбъект("Запрос");
Запрос.ВключитьSQL(0);

но скорость упадет сильно
6 Ёпрст
 
02.02.12
14:52
|Группировка Поставщик без групп;
   |Группировка Получатель без групп

сильно
7 Ёпрст
 
02.02.12
14:52
выкини эти группировки и смотри
8 1CNov
 
02.02.12
14:54
(6) Да это пример :)

в оригинале группровка ТекущийДокумент

потом выгрузить в ТЗ

Это уж просто я пробовал конструктором в новой обработке... думал мож че изменится
9 1CNov
 
02.02.12
14:54
(7) тоже не работает, в оригинале без них
10 Mikeware
 
02.02.12
14:55
Блин, я их так и не выучил :-((
11 Ёпрст
 
02.02.12
14:58
(8) я тебе не верю.

ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)

   |Период с ВыбНачПериода по ВыбКонПериода;
   |Поставщик = Документ.Приход.Поставщик;
   |Получатель = Документ.Приход.Получатель;
   |ТекущийДокумент = Документ.Приход.ТекущийДокумент;
   |Группировка ТекущийДокумент;
   |"//}}ЗАПРОС

   ;
Запрос.Выполнить (ТекстЗапроса);
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,1,0);
ТЗ.ВыбратьСтроку();

Сюда кидай скриншот того, что кажет
12 1CNov
 
02.02.12
16:01
(11) я и сам себе не верю, но это факт :) у меня на другом объекте такое, не смогу сейчас показать скрин из sql ной , базу надо

но вот код

ТекстЗапроса =    "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Без итогов;
   |НомерПрихДок = Документ.Приход.НомерПрихДок;
   |Контрагент = Документ.Приход.Поставщик.Наименование;
   |ДатаСФ = Документ.Приход.ДатаСФ;
   |НомерСФ = Документ.Приход.НомерСФ;
   |Ставка = Документ.Приход.ВариантРасчетаНалогов.СтавкаНДС.Ставка;
   |СтавкаСуммаВключаетНДС = Документ.Приход.ВариантРасчетаНалогов.СуммаВключаетНДС;
   |ДокументНДСвключатьВСтоимость = Документ.Приход.НДСвключатьВСтоимость;
   |ПриходнаяНакладная = Документ.Приход.ТекущийДокумент;
   |ДатаДок = Документ.Приход.ДатаДок;
   |НомерДок = Документ.Приход.НомерДок;
   |Склад = Документ.Приход.Получатель.Код;
   |Группировка ПриходнаяНакладная;
   |"//}}ЗАПРОС
   ;
   
   Запрос = СоздатьОбъект("Запрос");
   
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       сообщить("Ошибка при выполнении запроса!");
   КонецЕсли;
   
   Запрос.Выгрузить(ТЗ,1,0);
   ОткрытьФормуМодально("Отчет",ТЗ,"C:\РедакторТЗ.ert");
13 1CNov
 
02.02.12
16:03
косячные поля запроса Склад и Контрагент

у них один тип, может в этом дело....

я первый раз сам такое вижу :)

движок кстати 25ый
14 Ёпрст
 
02.02.12
16:05
(12)

Это кто тебя так учил писать ?

Контрагент = Документ.Приход.Поставщик.Наименование;
Склад = Документ.Приход.Получатель.Код;

?
15 Ёпрст
 
02.02.12
16:05
и это, жду ответа на (11)
16 Ёпрст
 
02.02.12
16:05
И это.. неизвестно, что еще твой редакторТЗ.ert делает
17 Дядя Васька
 
02.02.12
16:06
(12) Нафига код и наименование, а не ссылки?
18 1CNov
 
02.02.12
16:07
+(12) реально в таблице вот так:

из скуля

№пп | Контрагент | Склад | ПриходнаяНакладная
1   | Иванов     | Иванов| Документ №1
1   | Петров     | Петров| Документ №1

из dbf этой же базы выгруженной из sql

№пп | Контрагент | Склад | ПриходнаяНакладная
1   | Иванов     | Склад1| Документ №1
1   | Петров     | Склад2| Документ №1
19 Дядя Васька
 
02.02.12
16:07
(16) +1 после Запрос.Выгрузить(ТЗ,1,0); напиши ТЗ.ВыбратьСтроку(); а ну как в ТЗ-то все правильно
20 Дядя Васька
 
02.02.12
16:08
(18) Твой запрос такое вернуть не может. Ошибка во внешнем отчете.
21 1CNov
 
02.02.12
16:13
(14),(17) выкидываю ТЗ в текстовик, оттуда потом загрузка в бухгалтерию, в чем беда? Меня ломает потом писать ТЗ.НоваяКолонка("Код") и проч... если я сразу с запроса могу это взять

(16) он не мой, сто лет обработке этой, ей куча народа пользуется

(19)(20) ща vpn поставлю, подключусь
22 Дядя Васька
 
02.02.12
16:15
(21) В таблице-то у тебя Склад1, Склад2, а не код никакой. Походу ссылка и нужна.
23 1CNov
 
02.02.12
16:26
(22) блин..... да пример это для наглядности :)

ща будет скрин
24 1CNov
 
02.02.12
16:34
http://imageshack.us/photo/my-images/692/sqlug.png/
http://imageshack.us/photo/my-images/855/dbf.png/

вот... хелп)) я всю башню сломал уже :)
25 1CNov
 
02.02.12
16:35
вот этим куском кода

ТекстЗапроса =    "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Без итогов;
   |НомерПрихДок = Документ.Приход.НомерПрихДок;
   |Контрагент = Документ.Приход.Поставщик.Наименование;
   |ПриходнаяНакладная = Документ.Приход.ТекущийДокумент;
   |Склад = Документ.Приход.Получатель.Код;
   |Группировка ПриходнаяНакладная;
   |"//}}ЗАПРОС
   ;
   
   Запрос = СоздатьОбъект("Запрос");
   
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       сообщить("Ошибка при выполнении запроса!");
   КонецЕсли;
   
   Запрос.Выгрузить(ТЗ,1,0);
   
   ТЗ.ВыбратьСтроку();
26 Ёпрст
 
02.02.12
16:40
(25) Мот чернички поешь ?
И где у тебя там Контрагент равен Складу ???!!!
27 Ёпрст
 
02.02.12
16:41
+26 на этих картинках
28 1CNov
 
02.02.12
16:43
равен равен - это просто наименование и код

Поставщик.Наименование = .... Мясокомбинат
Поставщик.Код          = СМК
29 1CNov
 
02.02.12
16:43
в одну графу идет код во вторую наименование от одного и тог же элемента, хотя в dbf видно что в склад попадает уже склад
30 Ёпрст
 
02.02.12
16:45
(28) :))))))))))))))))))))))))))))))))))))))))))))))))
п..................ц
31 1CNov
 
02.02.12
16:45
(30) ??????
32 1CNov
 
02.02.12
16:46
блин могу без кода/наименования просто ссылки собрать и показать
33 Ёпрст
 
02.02.12
16:46
ладно, для начала, что кажет (11) ?
34 1CNov
 
02.02.12
16:46
суть то от этого не поменяется
35 Ёпрст
 
02.02.12
16:47
(34) :))))))))))))))))
36 Ёпрст
 
02.02.12
16:48
ты будешь спорить ? Или всё же сделаешь ?
37 1CNov
 
02.02.12
16:54
все сделал (

епть... а почему так???

если с твоего запроса собираю ссылку - все ништяк
если дописываю туда .Код и .Наименование получаю их от контрагента только...
38 1CNov
 
02.02.12
16:55
всегда ж работало... или мне за столько лет первый раз попалось 2 реквизита одинакового типа.. в чем физика то??
39 1CNov
 
02.02.12
16:56
почему низя собрать запросом код и наименование?
40 Ёпрст
 
02.02.12
17:03
(5) нк сделай как в (5) - будет работать, только меееедленно.

А так, любое получение значения через "." - это присоединение еще одной таблички..
Да и .. открой профайлер, да посмотри сам, какой запрорс в скуль летит
41 Дядя Васька
 
02.02.12
17:06
(40) Ты взорвешь ему мозк :)
42 Дядя Васька
 
02.02.12
17:08
Вообще интересно, что это за приход такой где поставщик и получатель одного типа... Ну ладно бы там перемещение, я бы понял.
43 1CNov
 
02.02.12
17:10
это дибильная конфа "самописная" от "капитана" - комбинат питания :)

там и получатель и поставщик и склад - все одного типа(справочник.получатели), мало того у справочника.получатели еще и реквизит есть справочник.получатели :)
44 1CNov
 
02.02.12
17:16
(40) и не думай что я настолько туп :) у тебя у самого чтоль не было ни разу ситуации когда что-то работает не так как ты привык и на то есть причина?
хочешь поумничать - покажи мне место в желтой книжке где написано что в sql ной базе запрос вот так работает..
45 Ёпрст
 
02.02.12
17:20
(44) че ?
ты (5) проверил ?
46 1CNov
 
02.02.12
17:21
блин не (40) а (41) не то написал

А (40) - большое спасибо!
47 1CNov
 
02.02.12
17:22
(45) в (44) очепятка)) это я Дядю Ваську дуюсь ))
48 1CNov
 
02.02.12
17:23
умничает он просто :) мозк не мозк... зашел попостить и самоутвердиться
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой