Имя: Пароль:
1C
1С v8
Запрос в цикле или?
0 palpetrovich
 
27.12.12
12:30
1. Сами знаете 70% (7)
2. Запрос в цикле 30% (3)
3. При обработке результата 0% (0)
Всего мнений: 10

Дурацкий, наверное, вопрос... в общем задача такая:
Надо в ТабличнойЧасти документа автоматически подобрать партию с уловиями по СкладПоПартии = СкладВТабличнойЧасти и СвободноеКоличествоПоПартии >= КоличествоВТабличнойЧасти
Сам я склоняюсь к первому, но... в общем - Ваши мнения?
1 palpetrovich
 
27.12.12
12:30
а, да

Запрос в цикле
2 YF
 
27.12.12
12:32
Один запрос по всей табличной части с получением выборки или ТЗ заполненной данными

Сами знаете
3 cw014
 
27.12.12
12:33
И я склоняюсь иногда

Запрос в цикле
4 sidalexsandr
 
27.12.12
12:33
1- сами знаете, что считается плохо и сказывается на быстродействии.

Сами знаете
5 К_Дач
 
27.12.12
12:33
LOL. Не судьба поместить ТЧ в ВТ в запрос и приклеить к ней партии?
6 sidalexsandr
 
27.12.12
12:34
Потому как запрос выполняет сервер и идет пересылка с сервера на клиент туда и обратно да ещё и в цикле.
7 motkot
 
27.12.12
12:35
+ (5) и (2)
что мешает сразу в запросе получить готовую ТЧ?

Сами знаете
8 Lys
 
27.12.12
12:36
(0) Однозначно запрос в цикле! И ни в коем случае не использовать ПВТ и временные таблицы.
Когда сделаешь - не забудь отписать, сколько часов выполняется подбор партии для одного документа)

Запрос в цикле
9 palpetrovich
 
27.12.12
12:37
(5)(8) не знаю как мне это поможет в случае когда условия для каждой строки разное. так что не таколй уже и лол
(6) база файловая
10 PR
 
27.12.12
12:39
Какая-то тупая голосовалка. Без правильного результата.
11 salvator
 
27.12.12
12:40
(9) Че значит "условия для каждой строки разное"?
12 Maxus43
 
27.12.12
12:41
без комментариев

Сами знаете
13 vinogradъ
 
27.12.12
12:42
(9) так ты ведь и соединения с партиями по каждой строке делать будешь
14 palpetrovich
 
27.12.12
12:42
(10) СкладПоПартии = СкладВТабличнойЧасти и СвободноеКоличествоПоПартии >= КоличествоВТабличнойЧасти
(10) подскажи как надо?
(12) попытка обидеть?
15 palpetrovich
 
27.12.12
12:44
(13) соединения чего с чем? пока я вижу только запрос к РегистрНакопления.ПартииТоваровНаСкладах ибо документ может быть и не записан и стало-быть, запрос к его ТЧ не сделаешь
16 Иоканаан
 
27.12.12
12:45
Запрос в цикле считается грубой ошибкой на экзамене 1С:"Специалист". Кроме того, в Вашем случае к выполнению запроса именно в цикле нет никаких показаний: он будет выполняться либо при заполнении пользователем каждой строки (и тогда цикла никакого не будет), либо уже после заполнения табличной части, когда можно будет запрос сделать сразу по всей табличной части.

Сами знаете
17 vinogradъ
 
27.12.12
12:46
(14) ТЧ соедини с остатками по партиям по условию СкладПоПартии = СкладВТабличнойЧасти и СвободноеКоличествоПоПартии >= КоличествоВТабличнойЧасти
и выбери из этих партий одну нужную (фифо, лифо или еще как)
18 PR
 
27.12.12
12:46
(14) А что сложного-то?
19 palpetrovich
 
27.12.12
12:46
(16) см.(15) ...хотя, записать можно и принуджительно конечно
20 Maxus43
 
27.12.12
12:47
(14) нет, новогоднее настроение)
аксиома - запросы в цикле зло (с)
но опять же ситуации бывают разные, и в типовых они есть. Но касательно сабжа - в цикле не надо.
Посмотри например заполнение серий в типовых, там тоже на все строки, но запрос то один
21 salvator
 
27.12.12
12:47
(17) +100. Либо автор не догнал, либо еще какая закавыка есть.
22 YF
 
27.12.12
12:47
(19) И чего? Хочешь сказать, что строки нельзя в запрос никак получить?
23 DrShad
 
27.12.12
12:48
запросом можно получить сразу по всей ТЧ необходимые данные

Сами знаете
24 Classic
 
27.12.12
12:48
(15)
Табличную часть в ТЗ, ТЗ в ВТ, ВТ в запрос
25 vinogradъ
 
27.12.12
12:49
+(16) при вводе строки получать партию по введенным товар+склад+количество, по кнопке заполнять партии по всей тч
(19) думаю, можно выгрузить незаписанную тч
26 palpetrovich
 
27.12.12
12:49
(20) да знаю я что зло
(21) закавыка -  если док не записан еще
(22) ну не знаю, как обычно - не получится
27 palpetrovich
 
27.12.12
12:50
(24) ну да, наверное так можно ...и наверное правильней
28 salvator
 
27.12.12
12:51
(26) Выгрузи ТЧ объекта в ТЗ.
29 DrShad
 
27.12.12
12:52
(24) вообще-то при данной постановке задачи - вести расчет при не записанном доке - грубейшая ошибка

так что записываем и без всяких выгрузок в ТЗ работаем с ТЧ
30 palpetrovich
 
27.12.12
12:52
Лан, всем спасибо, делаю по (24)
С наступающим!  :)
31 el-gamberro
 
27.12.12
12:53
(6)"Потому как запрос выполняет сервер и идет пересылка {Табличной части?} с сервера на клиент туда и обратно да ещё и в цикле."

Садись, два.
32 palpetrovich
 
27.12.12
12:54
(29) да ну, какая еще грубейшая ошибка? на что это влияет?
33 DrShad
 
27.12.12
12:55
(32) на достоверность учета естественно
34 el-gamberro
 
27.12.12
12:56
(32) ну как ето :)
подобрал ты партию, потом склад поменят в ТЧ и провел документ.
И ауйфидерзейн твои партии
35 Classic
 
27.12.12
12:56
(34)
Может он переподставляет и при изменении склада.
36 palpetrovich
 
27.12.12
12:57
(34) ну, от такого можно и защитится
37 palpetrovich
 
27.12.12
12:57
(35) еще нет :)
38 Classic
 
27.12.12
12:58
(36)
Скорее проблема в времени документа. Пока он не записан - непонятна его позиция. И остатки после записи могут быть другими
39 el-gamberro
 
27.12.12
12:58
(37) ага, про количество еще не забудь, раз док записывать не собираешься
40 DrShad
 
27.12.12
13:00
(38) правильный ответ!!! МУЖИК
41 palpetrovich
 
27.12.12
13:02
(38) понятно что от всего не застрахуешься, но на хэто есть проверка при проведении
(39) сама по себе запись не зафиксирует для этого документа предполагаемое количество
42 DrShad
 
27.12.12
13:03
(41) ты так и не понял о чем (38)
43 Eugene_life
 
27.12.12
13:09
(41) Имеется в виду, что записать документ можно завтрашним днем или позавчерашним. И остатки для этих дат по партиям будут разными, и алгоритм твой даст разные результаты.
44 palpetrovich
 
27.12.12
13:09
(42) а, понял ...ну вот, терь все переписысывать ...15 мин на смарку :)
45 palpetrovich
 
27.12.12
13:10
* переписысывать = переписывать :)
46 szhukov
 
27.12.12
13:13
(0) Вариант 1 это сразу завал экзамена на специалиста, если не ошибаюсь!? :)

ТЧ в запрос в ВТ и одним запросом все необходимые данные выбрать (сделать левое соединение по складу и партии и требуемому количеству)

Хотя постановка задачи наталкивает на некоторые сомнения в правильности (рано или поздно количества по партии станет не хватать, что делать будешь, 0 подставлять, а остатки на складе будешь накапливать...)!?

Сами знаете
47 DrShad
 
27.12.12
13:14
(44) а спешка нужна только в двух случаях - этот в них не входит :)))
48 palpetrovich
 
27.12.12
13:18
(46) задачу ставлю не я, этот случай с заказчиком обсужден, конценсус достигнут :)