Имя: Пароль:
1C
1С v8
Сравнение 2 ТЧ обрабоки
0 pilot_iv
 
16.05.12
10:38
есть обработка,есть 2 ТЧ, заполняемые из разных источников данных.
тч1 И тч 2. Среди колонок ТЧ есть одинаковые по составу. Как наиболее правильно сравнить по ключу (совпадающие колонки) в запросе или может передором. и вывести разницу.
1 Balabass
 
16.05.12
10:40
Передор - наше все! )))
Но лучше запросом.
2 pilot_iv
 
16.05.12
10:42
но как запросом обратиться к ТЧ активной формы обработки
3 hhhh
 
16.05.12
10:44
(2) ну сделай ТЧ.Выгрузить() будет таблица значений, а к ней ты уже умеешь обращаться.
4 Wobland
 
16.05.12
10:45
(2) у формы не бывает ТЧ. через ЭлементыФормы
5 pilot_iv
 
16.05.12
10:47
все понятно , если ТЗ1, полученная из одной ТЧ, есть ТЗ1, полученная из другой ТЧ

я понимаю,что туплю, не могу сообразить как эти 2 ТЗ соединить в запросе, почему то через врменные таблицы не получается
6 Wobland
 
16.05.12
10:47
7 pilot_iv
 
16.05.12
10:49
НЗПБУ1= ЭтотОбъект.НЗП.ВыгрузитьКолонки();
// получил ТЗ
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
   Запрос.Текст=
     
            "ВЫБРАТЬ
            |    НЗПБУ.Подразделение,
            |    НЗПБУ.НоменклатурнаяГруппа,
            |    НЗПБУ.СтатьяЗатрат,
            |    НЗПБУ.Сумма
            |ПОМЕСТИТЬ НЗПБУ
            |ИЗ
            |    &НЗПБУ КАК НЗПБУ";
     Запрос.УстановитьПараметр("НЗПБУ",НЗПБУ);
//// записал в ВТ



/// потом также выгрузил из второй тч в тз, записал во временную
Запрос.Выполнить();
     Запрос.Текст=
      "ВЫБРАТЬ
      |    НЗПНУ2.Подразделение КАК ПодразделениеНУ,
      |    НЗПНУ2.НоменклатурнаяГруппа КАК НоменклатурнаяГруппаНУ,
      |    НЗПНУ2.СтатьяЗатрат КАК СтатьяЗатратНУ,
      |    НЗПНУ2.Сумма КАК СуммаНУ,
      |    НЗПНУ2.ОбщаяСумма КАК ОбщаяСуммаНУ,
      |    НЗПНУ2.ПР,
      |    НЗПНУ2.ВР
      |ПОМЕСТИТЬ НЗПНУ2
      |ИЗ
      |    &НЗПНУ2 КАК НЗПНУ2"   ;
   Запрос.УстановитьПараметр("НЗПНУ2",НЗПНУ2);
     Запрос.Выполнить();

...////как их дальше соединить


а что дальше
8 pilot_iv
 
16.05.12
10:50
т.е у меня вопрос такой - как соединить две ВТ
9 vmv
 
16.05.12
10:53
(8) как и обычные таблицы БД, не забудь проверить типизацию всех колонок тз(тч), иначе не взлетит
10 pilot_iv
 
16.05.12
10:53
может у кого шпаргалка есть на такой случай - соединетние 2 таблиц значений в запросе, полученных при выгрузке из элементов формы
11 pilot_iv
 
16.05.12
10:54
(9) а есть пример запроса
12 vmv
 
16.05.12
10:55
(7) по коду ВТ уже в переменной запрос, представь, что это таблицы БД
13 vmv
 
16.05.12
10:55
(10) поиск тут или толмуд из коробки
14 hhhh
 
16.05.12
10:55
ну

ПерваяТЧ
ПОЛНОЕ СОЕДИНЕНИЕ ВтораяТЧ
ПО УсловияСравнения
ГДЕ НЕ (УсловияСравнения)
15 pilot_iv
 
16.05.12
11:05
"ВЫБРАТЬ
    |    НЗПБУ.Подразделение,
    |    НЗПБУ.НоменклатурнаяГруппа,
    |    НЗПБУ.СтатьяЗатрат,
    |    НЗПБУ.Сумма,
    |    НЗПНУ2.Подразделение КАК Подразделение1,
    |    НЗПНУ2.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа1,
    |    НЗПНУ2.СтатьяЗатрат КАК СтатьяЗатрат1,
    |    НЗПНУ2.Сумма КАК Сумма1,
    |    НЗПНУ2.ОбщаяСумма,
    |    НЗПНУ2.ПР,
    |    НЗПНУ2.ВР
    |ИЗ
    |    НЗПБУ КАК НЗПБУ
    |        ПОЛНОЕ СОЕДИНЕНИЕ НЗПНУ2 КАК НЗПНУ2
    |        ПО НЗПБУ.Подразделение = НЗПНУ2.Подразделение
    |            И НЗПБУ.НоменклатурнаяГруппа = НЗПНУ2.НоменклатурнаяГруппа
    |            И НЗПБУ.СтатьяЗатрат = НЗПНУ2.СтатьяЗатрат"  ;
   
Запрос.УстановитьПараметр("НЗПНУ2",НЗПНУ2);    
Запрос.УстановитьПараметр("НЗПБУ",НЗПБУ);
   


в результате имею

    Результат=  Запрос.Выполнить().Выгрузить();
по причине:
{(14, 2)}: Таблица не найдена "НЗПБУ"
<<?>>НЗПБУ КАК НЗПБУ
16 pilot_iv
 
16.05.12
11:07
если ставлю так
Запрос = Новый Запрос;
    Запрос.Текст=

   
    "ВЫБРАТЬ
    |    НЗПБУ.Подразделение,
    |    НЗПБУ.НоменклатурнаяГруппа,
    |    НЗПБУ.СтатьяЗатрат,
    |    НЗПБУ.Сумма,
    |    НЗПНУ2.Подразделение КАК Подразделение1,
    |    НЗПНУ2.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа1,
    |    НЗПНУ2.СтатьяЗатрат КАК СтатьяЗатрат1,
    |    НЗПНУ2.Сумма КАК Сумма1,
    |    НЗПНУ2.ОбщаяСумма,
    |    НЗПНУ2.ПР,
    |    НЗПНУ2.ВР
    |ИЗ
    |    &НЗПБУ КАК НЗПБУ
    |        ПОЛНОЕ СОЕДИНЕНИЕ &НЗПНУ2 КАК НЗПНУ2
    |        ПО НЗПБУ.Подразделение = НЗПНУ2.Подразделение
    |            И НЗПБУ.НоменклатурнаяГруппа = НЗПНУ2.НоменклатурнаяГруппа
    |            И НЗПБУ.СтатьяЗатрат = НЗПНУ2.СтатьяЗатрат"  ;
   
Запрос.УстановитьПараметр("НЗПНУ2",НЗПНУ2);    
Запрос.УстановитьПараметр("НЗПБУ",НЗПБУ);
получаю



Форма.Форма.Форма(594)}: Ошибка при вызове метода контекста (Выполнить)
    Результат=  Запрос.Выполнить().Выгрузить();
по причине:
{(15, 21)}: Ожидается имя таблицы
ПОЛНОЕ СОЕДИНЕНИЕ <<?>>&НЗПНУ2 КАК НЗПНУ2
17 hhhh
 
16.05.12
11:14
(16)

ВЫБРАТЬ
...
ПОМЕСТИТЬ НЗПУ
ИЗ &НЗПУ
;

и дальше как у тебя
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший