Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Запрос в цикле или?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует