Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: таблица значений
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
gorik77
Имеется две таблицы значений с общим реквизитом "товар". В таблицу1 необходимо добавить несколько колонок из таблицы2. соответствующие колонки то создать не проблема, можно даже подразумевать что аналогичные колонки уже имеются в тиблица1, вот только как перенести данные в ети колонки из таблица2. может есть у кого мысль свежая?

возможно есть вариант через менеджер временных таблиц передать в запрос обе таблицы и там их обработать. но сам механизм работы с менеджером временных таблиц как то не совсем догоняю((. да и сам язык запросов пока не сильно юзаю. а с использованием менеджера временных таблиц как я понимаю не получится использовать конструктор запросов. тупик.
заранее благодарен за предложения!!!

ignsv
попробуйте в цикле перебирать Таблицу2 и искать ( методом Найти()) в Таблице1 соответствие по Номенклатуре. Если нашли то вносите изменения
Vofka
Не надо никакие циклы! Используйте запрос к одной таблице и левым соединением цепляйте другую. Вчера, по-моему, это как раз обсуждалось в другой теме.
gorik77
Цитата(ignsv @ 24.05.12, 11:41) необходимо зарегистрироваться для просмотра ссылки
попробуйте в цикле перебирать Таблицу2 и искать ( методом Найти()) в Таблице1 соответствие по Номенклатуре. Если нашли то вносите изменения


пробовал, не получилось, потому и создал тему.

Цитата(Vofka @ 24.05.12, 11:45) необходимо зарегистрироваться для просмотра ссылки
Не надо никакие циклы! Используйте запрос к одной таблице и левым соединением цепляйте другую. Вчера, по-моему, это как раз обсуждалось в другой теме.



у меня обе таблицы есть результат 2х разных запросов которые соединить нельзя, и после запроса таблицы преобразованы немного.
Vofka
Цитата(gorik77 @ 24.05.12, 11:51) необходимо зарегистрироваться для просмотра ссылки
у меня обе таблицы есть результат 2х разных запросов которые соединить нельзя, и после запроса таблицы преобразованы немного.

А теперь ещё раз, внимательно, вслуг прочитайте то, что я написл.
gorik77
Цитата(gorik77 @ 24.05.12, 11:51) необходимо зарегистрироваться для просмотра ссылки
Используйте запрос к одной таблице


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


DrLivsi
Цитата(gorik77 @ 24.05.12, 12:09) необходимо зарегистрироваться для просмотра ссылки
проблема в том что не представляю себе как ето можно сделать, может подскажете если не сложно?



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

// Теперь ТЗ можно использовать в запросе:
Запрос.Текст = "ВЫБРАТЬ
               |    ТЗ.Контрагент КАК Контрагент
               |    //.....
               |ИЗ
               |    ТЗ КАК ТЗ";


Как-то так.
gorik77
спасибо всем!!! щас попробую, отпишусь о результате.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.