|
Запросы в консоль запросов 🠗 (длинная ветка 19.02.2014 06:23) | ☑ | ||
---|---|---|---|---|
0
kotokent
12.02.14
✎
06:37
|
В консоли запросов нужно построить таблицу оборотов по Регистру "Товары организации",для определенной организации... Запрос должен быть сгруппирован по номенклатуре с подсчетом итогов по группировке и общие итоги... Добавить максимальный, минимальный остаток по номенклатуре и количество различных номенклатур!?!?!
И Это надо без условия ГДЕ сделать!!! Вот запрос, не пойму как через параметры виртуальных таблиц это делать??? ВЫБРАТЬ ТоварыОрганизаций.Период КАК Период, ТоварыОрганизацийОстаткиИОбороты.Организация, ТоварыОрганизацийОстаткиИОбороты.Номенклатура, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТоварыОрганизаций.Количество) КАК ОстаткиКоличествоРазличных, МАКСИМУМ(ТоварыОрганизаций.Количество) КАК ОстаткиКоличествоМакс, МИНИМУМ(ТоварыОрганизаций.Количество) КАК ОстаткиКоличествоМин ИЗ РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты КАК ТоварыОрганизацийОстаткиИОбороты ПО ТоварыОрганизаций.Организация = ТоварыОрганизацийОстаткиИОбороты.Организация ГДЕ ТоварыОрганизаций.Организация = &Организация И ТоварыОрганизаций.Период МЕЖДУ &ДатаНачала И &ДатаКонца СГРУППИРОВАТЬ ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура, ТоварыОрганизаций.Период, ТоварыОрганизацийОстаткиИОбороты.Организация УПОРЯДОЧИТЬ ПО Период ИТОГИ ПО ОБЩИЕ |
|||
436
kotokent
18.02.14
✎
13:30
|
(435) это да
|
|||
437
kotokent
18.02.14
✎
13:30
|
простенький
|
|||
438
Wobland
18.02.14
✎
13:35
|
его фамилия начинается на Р
|
|||
439
kotokent
18.02.14
✎
13:38
|
(438) я там не понял
|
|||
440
Серго62
18.02.14
✎
13:39
|
(437) такой пойдет?
ВЫБРАТЬ // выбираем из справочника номенклатуры Номенклатура.Код, Номенклатура.Наименование ПОМЕСТИТЬ СписокНоменклатуры // и помещаем все что выбрали во временную таблицу ИЗ Справочник.Номенклатура КАК Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ // выбираем все что есть во временной таблице СписокНоменклатуры.Код, СписокНоменклатуры.Наименование ИЗ СписокНоменклатуры КАК СписокНоменклатуры |
|||
441
kotokent
18.02.14
✎
13:39
|
(438) скажи, мне в основном запросе выводить теже поля что и во временой таблице?
|
|||
442
Wobland
18.02.14
✎
13:41
|
(440) предлагаю дополнить ГДЕ НЕ Номенклатура.ЭтоГруппа
|
|||
443
Wobland
18.02.14
✎
13:43
|
(441) платформа позволить тебе вывести те же или немного не те же или вовсе не те же
|
|||
444
kotokent
18.02.14
✎
13:44
|
(443) я сути не понимаю, зачем она нужна
|
|||
445
Серго62
18.02.14
✎
13:45
|
(442) Не возражаю.
|
|||
446
Wobland
18.02.14
✎
13:46
|
(444) и страница 410 от тебя это скрывает за туманом русских слов
|
|||
447
kotokent
18.02.14
✎
13:46
|
(446) практическое применение не понимаю
|
|||
448
Серго62
18.02.14
✎
13:51
|
(447) вот здесь написано: http://kb.mista.ru/article.php?id=628
|
|||
449
kotokent
18.02.14
✎
13:55
|
(448) т.е. основная таблица она как бы и не нужна... главное сделать все что необходимо в таблице значений и потом выбрать все(*) из временой таблицы
|
|||
450
kotokent
18.02.14
✎
13:56
|
правильно?
|
|||
451
Wobland
18.02.14
✎
13:57
|
каша, сплошная каша...
тебе дают возможность сложить что-нибудь в ВТ и применять потом по вкусу |
|||
452
kotokent
18.02.14
✎
13:58
|
(451) все делаем во ВТ и потом из основного запроса берем из нее что нужно
|
|||
453
kotokent
18.02.14
✎
13:59
|
(452) так?
|
|||
454
Серго62
18.02.14
✎
13:59
|
(449) Это ты где такое вычитал? Можешь пояснить ход своих мыслей, как ты пришел к таким выводам?
|
|||
455
kotokent
18.02.14
✎
14:00
|
(454) в основном запросе только обращаемся к данным из временой таблицы
|
|||
456
Wobland
18.02.14
✎
14:02
|
(455) у тебя имеется возможность так делать, да
|
|||
457
Серго62
18.02.14
✎
14:02
|
(455) ну вообще то никто не запрещает в основном запросе и к другим таблицам обращаться
|
|||
458
kotokent
18.02.14
✎
14:02
|
(456) я анализирую то чно написано
|
|||
459
Wobland
18.02.14
✎
14:04
|
за километры постов, наконец, проникся этой необходимостью?
|
|||
460
kotokent
18.02.14
✎
14:06
|
(459) русским языком можно сказать что и зачем она нужна
|
|||
461
kotokent
18.02.14
✎
14:06
|
по басяцки
|
|||
462
Wobland
18.02.14
✎
14:06
|
кстати, после 500го поста ветка превратиться в длинную и начнёт тонуть
|
|||
463
Wobland
18.02.14
✎
14:06
|
(460) тебе дают возможность сложить что-нибудь в ВТ и применять потом по вкусу
тебе дают возможность сложить что-нибудь в ВТ и применять потом по вкусу |
|||
464
Серго62
18.02.14
✎
14:06
|
(458) Когда закончишь анализ попробуй применить его результаты к своему запросу.
|
|||
465
kotokent
18.02.14
✎
14:09
|
(463) (464) а таблица значений - это у меня получается первый запрос
|
|||
466
kotokent
18.02.14
✎
14:09
|
?
|
|||
467
Wobland
18.02.14
✎
14:09
|
есть ещё одна ценная босяцкая мысль. запрос (точнее, секция ИЗ) работает _только_ с таблицами. одной из таких таблиц может быть временная
|
|||
468
Wobland
18.02.14
✎
14:09
|
(465) ТЗ - это двумерный массив ваще-т
|
|||
469
kotokent
18.02.14
✎
14:11
|
(468) (467) а несколько таблиц ВТ тоже можо сделать!!??
|
|||
470
kotokent
18.02.14
✎
14:11
|
и к ним обращаться
|
|||
471
Серго62
18.02.14
✎
14:12
|
(469) Ты не поверишь, можно!!!
|
|||
472
Серго62
18.02.14
✎
14:13
|
(470) их даже соединять между собой можно и с основными таблицами тоже можно
|
|||
473
Wobland
18.02.14
✎
14:15
|
(469) сам догадался? молодец какой
|
|||
474
Серго62
18.02.14
✎
14:16
|
+ (472) И даже из одной временной таблицы (а может и не одной) можно в другую ВТ данные выбрать. Круто, правда?
|
|||
475
kotokent
18.02.14
✎
14:20
|
я думаю
|
|||
476
kotokent
18.02.14
✎
14:21
|
как и что к чему
|
|||
477
kotokent
18.02.14
✎
14:21
|
и к стати, я сначала вообще про другое в этой ветке говорил, но дошел до этого
|
|||
478
Wobland
18.02.14
✎
14:22
|
(475) запиши, как это делается, до наступления ночи. забудешь потом
|
|||
479
kotokent
18.02.14
✎
14:24
|
(478) мож функцию с этой таблицей сделать, чтобы основную процедуру не загромождать
|
|||
480
Wobland
18.02.14
✎
14:25
|
святая корова! он знает про функции!
|
|||
481
Wobland
18.02.14
✎
14:25
|
я ведь я помню, как ты круглыми глазами на мою смотрел
|
|||
482
kotokent
18.02.14
✎
14:26
|
(481) не ври... ты не видел)))
|
|||
483
Серго62
18.02.14
✎
14:26
|
(479) мож сначала на бумаге (или в файле) ход решения задачи написать?
|
|||
484
Wobland
18.02.14
✎
14:27
|
не откажу себе в удовольствии немного поцитировать
это ты мне написал как надо? у меня что, вообще не то? а переменную "стр" надо где объявлять ты мне скажи где переменную объявить и как к этим функциям теперь обращаться |
|||
485
kotokent
18.02.14
✎
14:28
|
(484) прикольно
|
|||
486
kotokent
18.02.14
✎
14:28
|
(484) я теперь думаю как я результат буду выводить в текстовый файл
|
|||
487
kotokent
18.02.14
✎
14:29
|
табличный т.е.
|
|||
488
kotokent
18.02.14
✎
14:30
|
{Обработка.ОбработкаСТабличнойЧастью.Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (Выполнить)
ТабличноеПоле1=Запрос.Выполнить().Выгрузить(); по причине: {(4, 11)}: Временная таблица уже существует "ЦеныИОстатки" ПОМЕСТИТЬ <<?>>ЦеныИОстатки что за...? |
|||
489
Серго62
18.02.14
✎
14:31
|
(486) Ты получил результат? Прими мои поздравления !!!
|
|||
490
kotokent
18.02.14
✎
14:33
|
(489) да... какой то хоть мне ошибка вышла, как удалить то ее... я все поудалял и теперь заново хочу начать
|
|||
491
kotokent
18.02.14
✎
14:41
|
как удалить то ее, чтобы я мог постоянно обращаться к ней
|
|||
492
Серго62
18.02.14
✎
14:42
|
(491) ты случайно не пытаешься в одном и том же запросе два раза поместить что-то в одну и ту же ВТ?
|
|||
493
kotokent
18.02.14
✎
14:43
|
(492) я удалил все, кроме моего основного запроса
|
|||
494
kotokent
18.02.14
✎
14:46
|
||||
495
kotokent
18.02.14
✎
14:58
|
ща нормальный пример нашел, мож пойму завтра что к чему
http://1cprofi.com/content/view/9/15/ |
|||
496
Серго62
18.02.14
✎
15:14
|
(495) Ты пытаешься повторно записать данные в существующую ВТ, поэтому возникает ошибка. У тебя же на картинке, зелеными буквами что то написано про удаление ВТ.
Попробуй перенести удаление ВТ в конец своей процедуры. |
|||
497
Wobland
18.02.14
✎
15:53
|
всё просто. товарищ соврамши. ошибка не может возникнуть при таком коде
|
|||
498
Wobland
18.02.14
✎
15:54
|
(497) и этот товарищ - я. два раза выполняется запрос
|
|||
499
Wobland
18.02.14
✎
15:55
|
ну сделайте уже (500) кто-нибудь, и пусть эта ветка уйдёт в валгаллу
|
|||
500
kotokent
19.02.14
✎
06:07
|
500
|
|||
501
kotokent
19.02.14
✎
06:12
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ПОМЕСТИТЬ ЦеныИОстатки |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах"; Результат = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; Запрос2.Текст = ""; ТабличноеПоле1=Запрос.Выполнить().Выгрузить(); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); Запрос3 = Новый Запрос; Запрос3.МенеджерВременныхТаблиц = МенеджерВТ; ТекстЗапроса = " | УНИЧТОЖИТЬ ЦеныИОстатки |"; Запрос3.Текст = ТекстЗапроса; Запрос3.Выполнить(); КонецПроцедуры такая же ошибка |
|||
502
Wobland
19.02.14
✎
06:17
|
с ошибкой согласен
|
|||
503
kotokent
19.02.14
✎
06:23
|
(502) где команду ставить
|
|||
504
kotokent
19.02.14
✎
06:26
|
// Как удалить Временную Таблицу
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; // (Менеджер ВТ создан, в нем уже есть временная таблица ИмяВременнойТаблицы) ТекстЗапpoca = " | УНИЧТОЖИТЬ ИмяВременнойТаблицы |"; Запрос.Текст = ТекстЗапроса; Запрос.Выполнить() написано сделать так, я и делаю, но ошибка остается |
|||
505
Wobland
19.02.14
✎
06:26
|
предлагаю понять причину возникновения ошибки
|
|||
506
kotokent
19.02.14
✎
06:27
|
(505) ВТ есть в менеджере... но почему она не удаляется
|
|||
507
kotokent
19.02.14
✎
06:27
|
может менеджер ВТ закрыть?
|
|||
508
kotokent
19.02.14
✎
06:28
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ПОМЕСТИТЬ ЦеныИОстатки |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах"; Результат = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; ТекстЗапроса = " | УНИЧТОЖИТЬ ЦеныИОстатки"; Запрос2.Текст = ТекстЗапроса; Запрос2.Выполнить(); ТабличноеПоле1=Запрос.Выполнить().Выгрузить(); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); // //Запрос3 = Новый Запрос; //Запрос3.МенеджерВременныхТаблиц = МенеджерВТ; //ТекстЗапроса = " //| УНИЧТОЖИТЬ ЦеныИОстатки //|"; // //Запрос3.Текст = ТекстЗапроса; //Запрос3.Выполнить(); КонецПроцедуры |
|||
509
kotokent
19.02.14
✎
06:29
|
написал так, теперь он у меня в 1С выводит только "количество", ошибка пропала
|
|||
510
Wobland
19.02.14
✎
06:32
|
неплохо. героически придумывал себе ВТ, героически её удалял, героически создал ещё раз, и теперь не знает, что с этим делать
|
|||
511
kotokent
19.02.14
✎
06:35
|
(510) у меня есть план: 1 запрос - вибираем поля "номенклатура" и "Количество"
2 запрос - ВТ с полями "МаксЦена" и "Остаток" 3 запрос - ВТ объединение всего... только вопрос в том как это сделать |
|||
512
Wobland
19.02.14
✎
06:36
|
ёмаё, как я долго этого ждал - план
|
|||
513
Wobland
19.02.14
✎
06:37
|
делай шаг первый. вибири пару полей
|
|||
514
kotokent
19.02.14
✎
06:37
|
(513) ща
|
|||
515
kotokent
19.02.14
✎
06:41
|
1 запрос
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос1 = Новый Запрос; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ; Запрос1.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ПОМЕСТИТЬ ВТНоменклатура |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах"; Запрос1.Выполнить(); |
|||
516
Wobland
19.02.14
✎
06:44
|
действительно, два поля есть. ждём второй запрос
|
|||
517
kotokent
19.02.14
✎
06:44
|
2 запрос
Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; Запрос2.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Цена, | ТоварыНаСкладахОстатки.КоличествоОстаток |ПОМЕСТИТЬ ЦенаСОстаток |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО ЦеныНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура"; Запрос2.Выполнить(); |
|||
518
kotokent
19.02.14
✎
06:44
|
Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; Запрос2.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Цена, | ТоварыНаСкладахОстатки.КоличествоОстаток |ПОМЕСТИТЬ ЦенаСОстаток |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО ЦеныНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура"; Запрос2.Выполнить(); |
|||
519
Wobland
19.02.14
✎
06:45
|
прикольная бяка в конце будет. продолжай
|
|||
520
kotokent
19.02.14
✎
06:45
|
только вопрос... как они друг друга видеть будут по номенклатуре
|
|||
521
kotokent
19.02.14
✎
06:53
|
ЗапросИтог = Новый Запрос;
ЗапросИтог.МенеджерВременныхТаблиц = МенеджерВТ; ЗапросИтог.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ИЗ | ВТНоменклатура КАК ВТНоменклатура | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЦеныНоменклатуры.Цена, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ ЦенаСОстаток КАК ЦенаСОстаток"; ЗапросИтог.Выполнить(); |
|||
522
kotokent
19.02.14
✎
06:54
|
попробуем
|
|||
523
kotokent
19.02.14
✎
06:56
|
{Обработка.ОбработкаСТабличнойЧастью.Форма.Форма.Форма(41)}: Ошибка при вызове метода контекста (Выполнить)
ЗапросИтог.Выполнить(); по причине: {(2, 2)}: Поле не найдено "ТоварыНаСкладах.Номенклатура" <<?>>ТоварыНаСкладах.Номенклатура, |
|||
524
kotokent
19.02.14
✎
06:57
|
может потому что я руками писал
|
|||
525
Wobland
19.02.14
✎
07:00
|
там не поле не найдено, а таблица
|
|||
526
kotokent
19.02.14
✎
07:02
|
(525) это что тогда не так, вроде же поместил
|
|||
527
Wobland
19.02.14
✎
07:03
|
покажи мне таблицу ТоварыНаСкладах в ЗапросИтог
|
|||
528
kotokent
19.02.14
✎
07:04
|
(527) как
|
|||
529
kotokent
19.02.14
✎
07:05
|
в смысле
|
|||
530
Wobland
19.02.14
✎
07:06
|
такие серьёзные проблемы с выражением собственных мыслей7
|
|||
531
kotokent
19.02.14
✎
07:08
|
(530) ну я не понял о чем ты
|
|||
532
kotokent
19.02.14
✎
07:08
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос1 = Новый Запрос; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ; Запрос1.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ПОМЕСТИТЬ ВТНоменклатура |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах"; Запрос1.Выполнить(); Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; Запрос2.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Цена, | ТоварыНаСкладахОстатки.КоличествоОстаток |ПОМЕСТИТЬ ЦенаСОстаток |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО ЦеныНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура"; Запрос2.Выполнить(); ЗапросИтог = Новый Запрос; ЗапросИтог.МенеджерВременныхТаблиц = МенеджерВТ; ЗапросИтог.Текст = "ВЫБРАТЬ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.Количество |ИЗ | ВТНоменклатура КАК ВТНоменклатура | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ЦеныНоменклатуры.Цена, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ ЦенаСОстаток КАК ЦенаСОстаток"; ЗапросИтог.Выполнить(); ТабличноеПоле1=ЗапросИтог.Выполнить().Выгрузить(); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); КонецПроцедуры |
|||
533
kotokent
19.02.14
✎
07:14
|
?
|
|||
534
kotokent
19.02.14
✎
07:28
|
я в тупике
|
|||
535
Wobland
19.02.14
✎
07:34
|
ты вчера думать начал. поступай на философский
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |