Имя: Пароль:
1C
1C 7.7
v7: Разделить выборку запроса в 1с 7 ПУБ.
,
0 kobzon
 
01.08.13
14:56
В конфигурации 1с 7.7 ПУБ решил создать документ Инвентаризация, в котором было бы видно сколько сырья приходило и сколько уходило за день.
Но нужно чтобы перемещение со склада в цех и выпуск, находились в разных колонках. А запрос просто выбирает движение из регистра МестаХранения.

ТекстЗапросаОстаткиНаСкладах =
"//{{ЗАПРОС(ОстаткиНаСкладах)
|"+СтрПериод+"
|ВидМПЗрег = Регистр.МестаХранения.ВидМПЗ;
|МПЗрег = Регистр.МестаХранения.МПЗ;
|МХ = Регистр.МестаХранения.МестоХранения;
|ВладелецРег = Регистр.МестаХранения.Владелец;
|КачествоРег = Регистр.МестаХранения.Качество;
|Колво = Регистр.МестаХранения.Количество;
|Функция КоличествоКонОст = КонОст(Колво);
|Функция КоличествоНачОст = НачОст(Колво);
|Функция КоличествоПриход = Приход(Колво);
|Функция КоличествоРасход = Расход(Колво);
|Группировка ВидМПЗрег;
|Группировка МПЗрег без групп;
|Группировка КачествоРег;
|Условие (МХ = МестоХранения);
|Условие (МПЗрег в СписокМПЗ);
|Условие (ВладелецРег = Владелец);
|"//}}ЗАПРОС

Как бы сделать что то вроде этого?

Если КодОперации = КО.ВыпускПродукции  Тогда
Выпуск = ЗапросОстаткиНаСкладах.КоличествоРасход;
Иначе
Расход = ЗапросОстаткиНаСкладах.КоличествоРасход;
КонецЕсли;

Конечно в модуле формы документа это наврятли прокатит. Но может у каждого документа есть какой то свой реквизит, к которому можно привязаться? В регистр добавить измерение.
Или такое возможно если только запрос, конкретно по выборке документов?
1 ДенисЧ
 
01.08.13
14:57
Функция КоличествоПриходВыпуск = Приход(Колво) Когда (КодОперации = КО.ВыпускПродукции);

Что-то вроде такого, 77 забывать уже стал
2 Ёпрст
 
01.08.13
14:58
так и пиши

|Функция Выпуск = Расход(Колво) Когда ( КодОперации = КО.ВыпускПродукции );
3 ДенисЧ
 
01.08.13
14:58
Во, всё-таки не всё ещё забыл :-)
4 Ёпрст
 
01.08.13
14:59
(3) ну, плохо это когда не знал и забыл,..
:)
5 Ёпрст
 
01.08.13
14:59
а не просто забыл
6 kobzon
 
01.08.13
14:59
Нифига вы быстрые))
7 kobzon
 
01.08.13
15:02
Если ЗапросОстаткиНаСкладах.Выполнить(ТекстЗапросаОстаткиНаСкладах) = 0 Тогда
{Документ.ИнвентаризацияМПЗ1.Форма.Модуль(160)}: Функция Выпуск = Расход(Колво) Когда ( КодОперации  <<?>> = КО.ВыпускПродукции );
Запрос[12] : Ошибка в выражении 'КодОперации
8 ДенисЧ
 
01.08.13
15:03
КодОперации = Регистр.МестаХранения.КодОперации;

И учти - в остатках разделения не будет.
9 kobzon
 
01.08.13
15:04
Кстати в этом регистре, нет кода операций(
Создать и перепровести документы?
10 ДенисЧ
 
01.08.13
15:05
да
11 kobzon
 
01.08.13
15:05
(8) В смысле не будет разделения в остатках?
12 ДенисЧ
 
01.08.13
15:06
(11) кодоперации - реквизит регистра, его нет в остатках.
13 kobzon
 
01.08.13
15:07
Тоесть моя задумка не получится?((
14 ДенисЧ
 
01.08.13
15:08
Не получится :-)
Лежит на складе 10 штук товару. Откуда ты знаешь, как они там оказались?
15 kobzon
 
01.08.13
15:10
Ну в регистр запишем код операции, и условие создам, как и писал.
16 ДенисЧ
 
01.08.13
15:11
(15) Если сделаешь измерением, то пожалуйста...
17 пипец
 
01.08.13
15:11
угу , тока не как реквизит уже ...
18 пипец
 
01.08.13
15:12
если есть партионность можно туда привязать через свод по реквизиту партии
19 viktor_vv
 
01.08.13
15:14
Какая-то нездоровая идея засунуть код операции в измерение.
20 kobzon
 
01.08.13
15:16
(19) Почему?) Вроде все работает..
Если все нормально будет, щас такую штуковину замучу, чтобы с этим документом можно было весь день работать, как с табличкой Excel.
21 пипец
 
01.08.13
15:17
Оо ;))) чем ексель не устроил ?
22 kobzon
 
01.08.13
15:19
(21) тем, что все работают в 1с, а мастера в своем родном Excele) Пусть тоже мучаются))
23 пипец
 
01.08.13
15:22
1 - таблица в режиме ввода данных ниале ?
2 - типизированный файл ексель - выгрузка загрузка в 1С ?
3 - переучить мастеров на лотус ;))
24 Ёпрст
 
01.08.13
15:25
(20) удачи с незакрытым регистром.. в будующем (не таком дёком)
25 kobzon
 
01.08.13
17:18
(23) На все 3 вопроса, один ответ - это все не для этих мастеров)
26 kobzon
 
01.08.13
17:19
(24) Что значит не закрытый регистр?
27 Ёпрст
 
01.08.13
17:59
(26) необнуляемые итоги в табличке итогов.

у тебя будет куча строк с приходом по одному коду операции и столько же - с другим кодом в расходе.. и нет совпадений по всем измерениям при расходе и приходе.
Табличка итогов будет пухнуть как на дрожжах, пока не упрётся в ограничение переноса..
Вот тогда прибежишь сюда еще раз и будешь спрашивать, как лечить это.
28 kobzon
 
02.08.13
20:16
(27) А как же тогда типовые регистра закрываются?
Искал инфу по незакрытым регистрам. В инете, только и есть темы где Ёпрст кому то что то объясняет по этому вопросу))
Полагаю что в базе не закрывается регистр Заявки. Файл весит 200 мегов.
А так, ну не знаю таблица же она всегда есть, не зависимо закрыт регистр или нет?
29 Ёпрст
 
05.08.13
08:22
(28) нормально закрываются, там приход и расход в регистр делается по одинаковым наборам измерениям.
У тебя же будет - всегда по разным, из -за твоего кодаОперации в измерении (если добавишь его).

На вот, наглядная картинка, что будет (добавлено лишнее измерение в регистр, который стал "не закрываться"):

http://s55.radikal.ru/i147/0907/fc/0d1be61a68c2.jpg
30 kobzon
 
05.08.13
15:06
(29) Хм. То есть когда заканчивается месяц, регистр типа подводит итоги складывая строки с одинаковыми измерениями но разной по знаку суммой? Если измерения не совпали, они переносятся в новый месяц?
31 Ёпрст
 
05.08.13
15:12
(30) да.
"нулевые" итоги (это те, где значения всех ресурсов =0) на след. период не переносятся.
32 Ёпрст
 
05.08.13
15:13
а в твоём случае будет, приход с одним набором измерений, расход всегда с другим набором измерений.. в табличке итогов с геометрической прогрессией будут расти записи, до поры до времени (пока период не перестанет открываться)
33 kobzon
 
05.08.13
15:41
(32) Спасиба, что предостерегли)