|   |   | 
| 
 | Передача ТаблицыЗначений в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Alexsey58 10.10.12✎ 10:53 | 
        Имеется ТаблицаЗначений содержащие документы ЗаказПокупателя, нужно создать документы, пишу через запрос, документы создаются, но в таблицу записывается весь товар, как сделать чтобы сортировался по Заказу документа, всю неделю вожусь не чего не поучается,
  вот мой код: Для Каждого ТЗКл Из ТЗ Цикл Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; МенеджерТаблицыДанных = Запрос.МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ТЗ.Заказ КАК Заказ, | ТЗ.Контрагент КАК Контрагент, | ТЗ.Артикул КАК Артикул, | ТЗ.Производитель КАК Производитель, | ТЗ.Цена КАК Цена, | ТЗ.Сумма КАК Сумма, | ТЗ.Оплачено КАК Оплачено, | ТЗ.Долг КАК Долг, | ТЗ.Номенклатура КАК Номенклатура, | ТЗ.Количество КАК Количество |ПОМЕСТИТЬ ВремТаб_ТЗ |ИЗ | &ТЗ КАК ТЗ |"; Запрос.УстановитьПараметр("ТЗ", ТЗ); Запрос.Выполнить(); ЗапросКбазеДанных = Новый Запрос; ЗапросКбазеДанных.МенеджерВременныхТаблиц = МенеджерТаблицыДанных; ЗапросКбазеДанных.Текст = "ВЫБРАТЬ | ВремТаб_ТЗ.Заказ, | ВремТаб_ТЗ.Контрагент, | ВремТаб_ТЗ.Артикул, | ВремТаб_ТЗ.Производитель, | ВремТаб_ТЗ.Цена, | ВремТаб_ТЗ.Сумма, | ВремТаб_ТЗ.Оплачено, | ВремТаб_ТЗ.Долг, | ВремТаб_ТЗ.Номенклатура, | ВремТаб_ТЗ.Количество, | ЗаказПокупателя.Заказ КАК ЗаказКл |ИЗ | ВремТаб_ТЗ КАК ВремТаб_ТЗ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя | ПО ВремТаб_ТЗ.Заказ = ЗаказПокупателя.Заказ |"; Выборка = ЗапросКбазеДанных.Выполнить().Выбрать(); Докум = Документы.ЗаказПокупателя.СоздатьДокумент(); Докум.Заказ = ТЗКл.Заказ; Докум.Контрагент = ТЗКл.Контрагент; ТаблЧасть = Докум.Товары; ТаблЧасть.Очистить(); Пока Выборка.Следующий() Цикл Строка = ТаблЧасть.Добавить(); Строка.Артикул = Выборка.Артикул; Строка.Номенклатура = Выборка.Номенклатура; Строка.Производитель = Выборка.Производитель; Строка.Цена = Выборка.Цена; Строка.Сумма = Выборка.Сумма; Строка.Количество = Выборка.Количество; Строка.Оплачено = Выборка.Оплачено; Строка.Долг = Выборка.Долг; КонецЦикла; ФормадокументаЗаказКл = Докум.ПолучитьФорму(); ////ФормадокументаЗаказКл.Записать(); ФормадокументаЗаказКл.Открыть(); КонецЦикла; | |||
| 1
    
        Нуф-Нуф 10.10.12✎ 10:54 | 
        ужаснах     | |||
| 2
    
        DrShad 10.10.12✎ 10:55 | 
        (0) что за адский отжиг     | |||
| 3
    
        GLazNik 10.10.12✎ 10:56 | 
        Нифига не понял...
  "но в таблицу записывается весь товар, как сделать чтобы сортировался по Заказу документа". Что таки надо? сортировать или еще чего? | |||
| 4
    
        Галахад гуру 10.10.12✎ 10:57 | 
        Наверное тута:
  Запрос.УстановитьПараметр("ТЗ", ТЗКл); | |||
| 5
    
        DrShad 10.10.12✎ 10:58 | 
        (4) т.е. ты предлагаешь передавать в запрос строку ТЗ?     | |||
| 6
    
        Галахад гуру 10.10.12✎ 10:59 | 
        (5) Ага. Цикл же есть. Зачем он иначе?     | |||
| 7
    
        Лефмихалыч 10.10.12✎ 10:59 | 
        (0) ни чего не понятно. Чего ты добиться хочешь?     | |||
| 8
    
        чеширский кот 10.10.12✎ 11:00 | 
        А вообще это накой фиг надо то?     | |||
| 9
    
        DrShad 10.10.12✎ 11:01 | 
        (6) т.е. у тебя запросы умеют в качестве истоника данных хавать строки ТЗ?     | |||
| 10
    
        Галахад гуру 10.10.12✎ 11:04 | 
        (9) А, ну да. Тогда наверное так ТЗКл.ТЗ     | |||
| 11
    
        Alexsey58 10.10.12✎ 11:04 | 
        есть xml-файл, нужно загружать его в 1с, в xml-файл содержит документ ЗаказПокупателя, т.к. документов за день может достигать 100 документов, решил сделать через запрос, выгрузил в ТаблицуЗначений и потом перенес в запрос,
  стнруктура ТаблицыЗначений токава ТЗ = новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Заказ", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); ТЗ.Колонки.Добавить("Ожидается", Новый ОписаниеТипов("Дата")); ТЗ.Колонки.Добавить("Баланс", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("Срок", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("ГарСрок", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("Направление", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Производитель", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Цена", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("Оплачено", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("Долг", Новый ОписаниеТипов("Число")); ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); ТЗ.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады")); ТЗ.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); контрагент, заказывает несколько позиции товара, в ТЗ это отображается как отдельная строка, вот нужно сделать отбор по "Заказу" | |||
| 12
    
        pumbaEO 10.10.12✎ 11:08 | 
        100 заказов? Фигня. 
  
  | |||
| 13
    
        Галахад гуру 10.10.12✎ 11:08 | 
        О, почти угадал.     | |||
| 14
    
        DrShad 10.10.12✎ 11:09 | 
        (11) грузи сразу из XML и не парь мозг людям     | |||
| 15
    
        DrShad 10.10.12✎ 11:09 | 
        (13) что ты угадал? иди мотивацию свою повышай     | |||
| 16
    
        чеширский кот 10.10.12✎ 11:09 | 
        Ну просто не вижу смысла. Ты то уже на стадии загрузки из xml сформировал таблицу значений, зачем еще раз её "маслать"     | |||
| 17
    
        чеширский кот 10.10.12✎ 11:10 | 
        В первую очередь упорядочить таблицу по заказу     | |||
| 18
    
        Галахад гуру 10.10.12✎ 11:11 | 
        (15) Чо нервный такой?     | |||
| 19
    
        DrShad 10.10.12✎ 11:11 | 
        (16) зачем ее вообще создавать? тупо на чтении XML писать документы     | |||
| 20
    
        DrShad 10.10.12✎ 11:11 | 
        (18) не тупи     | |||
| 21
    
        чеширский кот 10.10.12✎ 11:13 | 
        (19) Тоже логично. Но лучше когда есть стресоустойчивость кода.     | |||
| 22
    
        чеширский кот 10.10.12✎ 11:14 | 
        Создание документов при чтении может выйти боком даже при использовании исключительных ситуаций!     | |||
| 23
    
        DrShad 10.10.12✎ 11:15 | 
        (22) да ладно!? а как же тогда обмены проходят?     | |||
| 24
    
        Alexsey58 10.10.12✎ 11:15 | 
        100 заказов в среднем, был один день xml содержал 1000 заказов, выгрузку напрямую проше реализовать но не надежно     | |||
| 25
    
        Галахад гуру 10.10.12✎ 11:16 | 
        (20) Почему нет? Именно этим я сейчас и занимаюсь. Туплю в Инете. Ты тоже.     | |||
| 26
    
        чеширский кот 10.10.12✎ 11:17 | 
        (23) Проходят, согласен. И очень много в них смущает!     | |||
| 27
    
        DrShad 10.10.12✎ 11:21 | 
        (26) например? имхается ты просто не умеешь их готовить     | |||
| 28
    
        чеширский кот 10.10.12✎ 11:21 | 
        У тебя в ТЗ.Заказ что конкретно попадает?     | |||
| 29
    
        DrShad 10.10.12✎ 11:22 | 
        (28) судя по коду какая-то строка     | |||
| 30
    
        чеширский кот 10.10.12✎ 11:24 | 
        (29) Строка понятно. Код заказа или например "Заказ №24 от 10.10.12"     | |||
| 31
    
        pumbaEO 10.10.12✎ 11:26 | 
        (30) а какая разница ?     | |||
| 32
    
        DrShad 10.10.12✎ 11:27 | 
        (31) +1, имхо однокуйственно     | |||
| 33
    
        Alexsey58 10.10.12✎ 11:27 | 
        строка "А1-5225/3077"     | |||
| 34
    
        чеширский кот 10.10.12✎ 11:28 | 
        (31) решил уточнить ... код я тута пишу     | |||
| 35
    
        DrShad 10.10.12✎ 11:29 | 
        (34) решил за него написать!?     | |||
| 36
    
        pumbaEO 10.10.12✎ 11:31 | 
        (35) а что там писать, 3 конструктора вызвать.     | |||
| 37
    
        чеширский кот 10.10.12✎ 11:32 | 
        Для Каждого ТекСтрока Из ТаблицаЗначений Цикл
  ИскомыйЗаказ = Документы.ЗаказПокупателя.НайтиПоНомеру(ТекСтрока.Заказ); Если ИскомыйЗаказ = Неопределено Тогда НовыйДокумент = Документы.ЗаказПокупателя.СоздатьДокумент(); //Присваиваем реквизиты шапки НоваяСтрокаДокумента = НовыйДокумент.Товары.Добавить(); //Присваиваем реквизиты строки Иначе НоваяСтрокаДокумента = ИскомыйЗаказ.Товары.Добавить(); //Присваиваем реквизиты строки КонецЕсли; КонецЦикла; | |||
| 38
    
        чеширский кот 10.10.12✎ 11:33 | 
        Принцип ясен?     | |||
| 39
    
        DrShad 10.10.12✎ 11:33 | 
        (37) ужас не менее адский     | |||
| 40
    
        чеширский кот 10.10.12✎ 11:34 | 
        (39) Чем тебя пугает "принцип топора" ?     | |||
| 41
    
        pumbaEO 10.10.12✎ 11:35 | 
        (37) свойства в типовых не для того сделанны, что бы потом искать заказы по номеру документа.     | |||
| 42
    
        чеширский кот 10.10.12✎ 11:35 | 
        ОООО ... хотя можно по другому     | |||
| 43
    
        чеширский кот 10.10.12✎ 11:36 | 
        (41) жду твоего варианта     | |||
| 44
    
        чеширский кот 10.10.12✎ 11:36 | 
        мне всегда приятно узнать что то новое 8)     | |||
| 45
    
        Alexsey58 10.10.12✎ 11:37 | 
        запрос выкидывать?, так суть ясна     | |||
| 46
    
        Alexsey58 10.10.12✎ 11:38 | 
        просто некоторые предлогали, выгрузит в ТЗ потом через запрос загружать в документ     | |||
| 47
    
        чеширский кот 10.10.12✎ 11:44 | 
        тип базы какой?     | |||
| 48
    
        Alexsey58 10.10.12✎ 11:54 | 
        загрузка с интернет-магазина по xml-файлу, 1с на postgreSQL, так-как, база будет рости постоянно     | |||
| 49
    
        sttt 10.10.12✎ 12:40 | 
        да уж, а я без работы сижу... что делаю не так?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |