Имя: Пароль:
1C
1C 7.7
v7: запрос по ТМЦ и партиям
,
0 prog0101
 
18.12.12
21:10
нужно в дбфном тисе вывести таблицу
колонки:
номенклатура, остаток тмц, остаток по партиям
на ТА
ткните в пример кода попроще который делает это или похожее что-то
желательно готовый к исполнению без недосказанностей вроде необъявленных переменных
(если есть конечно варианты проще тех что в регпринте и типовой выгрузке остатков)
23 AntiBuh
 
18.12.12
22:22
(21) ну вроде как должно сработать, хотя там возможно надо еще ТекущийЭлемент добавить, без скобок
24 prog0101
 
18.12.12
22:24
(23)спасибо! вы очень помогли )))
25 prog0101
 
18.12.12
23:19
вот он гениальный код:!
       ДатаНач    = ДатаНачала - 1;
       ДатаТА    = ПолучитьДатуТА();    
       ДатаНач    = ?(ДатаНач < ДатаТА, ДатаНач, ДатаТА);
26 prog0101
 
18.12.12
23:20
и это в обработке выгрузки...
27 FN
 
19.12.12
00:06
(0)
ТЗ=СоздатьОбъект("ТаблицаЗначений");
Регистр.ПартииТоваров.ВыгрузитьИтоги(ТЗ); //ну или какой там у тебя регистр
ТЗ.ВыбратьСтроку();
28 big
 
19.12.12
05:21
Андрей, за (4) надо линейкой по рукам бить )))
29 prog0101
 
19.12.12
09:42
(27)короче семера не позволяет сразу сделать сабж по двум регистрам?
30 Mikeware
 
19.12.12
09:45
(29) "семера"  позволяет делать если не все, то очень многое.
есть только один нюанс - делать надо...
а за тебя делать никто не будет (ну разве что за деньги....)
31 prog0101
 
19.12.12
09:48
(30)т.е. короче код который присобачит к парктически готовой таблице колонку из другой готовой таблицы по номенклатуре настолько сложен что его можно только за деньги написать специально?
32 Mikeware
 
19.12.12
09:58
(31) ну напиши. кто ж возражает?
33 prog0101
 
19.12.12
10:01
(32)да я то напишу
34 Mikeware
 
19.12.12
10:10
(33) ну и в чем тогда проблемы (кроме разве что одной, широко известной)?
35 Стрелок
 
19.12.12
12:34
(28) обоснуешь?
36 Ёпрст
 
19.12.12
12:40
(35) все это нужно воткнуть в сам запрос (получение цены), в том числе, хэвинг на нулевые итоги.
37 Ёпрст
 
19.12.12
12:41
ну и, если скуль - воткнуть хинты в текст запроса, если дбф - полностью переписать на попадаение в индекс + избавиться от соединнения с журналом, воткнув индекс на табличку движений регистра.
38 Стрелок
 
19.12.12
13:21
(36) не так всё просто мне пока. Если не сложно - покажи как получить цены сразу в запросе

(37) индексы я только осваиваю (по твоей наколке на днях)

кстати - появился вопрос по 1с++. может тут спросить? ответишь? вроде ничего сложного а понять не могу как сделать
39 Mikeware
 
19.12.12
13:22
(38) спрашивай. может, и ответим...
40 Ёпрст
 
19.12.12
13:24
SUM(Рег.Стоимость/Рег.Остаток) as Цена
....
having Sum(Рег.Остаток)<>0
41 Стрелок
 
19.12.12
13:25
(40) Ха... сумма() и тут пашет оказывается.. сенькс
42 Стрелок
 
19.12.12
13:28
кстати вот вопросик над которым бился

1. надо отобрать документы N-видов быстрым запросом
2. во всех этих документах есть НЕОБЩИЙ реквизит и НЕ ГРАФА ОТБОРА например "ОбъектУчета" тип справочник. Есть 100 % во всех. Как наложить условие по этому реквизиту? пробовал через левое соединение - не взлетает.

Текст="
   |SELECT
   |    Жур.IDDoc as [Док $Документ],
   |    Жур.IDDocDef as Док_вид
   |FROM
   |    1SJourn as Жур
   |WHERE
   |    Жур.Date BETWEEN :НачДата~~ AND :КонДата~~";
   
   Если СокрЛП(ФильтрПоНомеру)<>"" Тогда    
       Текст=Текст+"
       |AND LOWER(Жур.DOCNO) LIKE '%"+СокрЛП(ФильтрПоНомеру)+"%'";
   КонецЕсли;

   СтрокаУсловий="";
   Начали=0;                  
   Для Ном=1 По СписокВидов.РазмерСписка() Цикл
       ТекВид=СписокВидов.ПолучитьЗначение(Ном);
       Если Начали=0 Тогда
           Текст=Текст+"
           |AND (";
           Начали=1;
       КонецЕсли;
       СтрокаУсловий=СтрокаУсловий+?(СокрЛП(СтрокаУсловий)="","Жур.IDDocDef = $ВидДокумента."+СокрЛП(ТекВид)," OR Жур.IDDocDef = $ВидДокумента."+СокрЛП(ТекВид));
   КонецЦикла;    
   Если Начали=1 Тогда
       Текст=Текст+СтрокаУсловий+")";
   КонецЕсли;    

это сам запрос. количество видов документов переменное - в зависимости от ситуации. Вот так вот вопросец. Скажешь чего?
43 Mikeware
 
19.12.12
13:40
(42) coalesce()
44 Стрелок
 
19.12.12
13:42
(43) простите забыл упомянуть - dbf
45 Mikeware
 
19.12.12
13:43
(44) :-(
Ну, тогда собирай через union all, хотя это и медленно
46 Стрелок
 
19.12.12
13:44
кроме того в описухе говорится про общий реквизит...
47 Стрелок
 
19.12.12
13:45
да я выкрутился через ж.... фильтрую результат уже а не в запросе. замедление небольшое - документов в периоде не так много... но "некрасиво" это
48 Стрелок
 
19.12.12
13:46
(45) как? голова уже не варит вовсе. клиент торопит - уже селекты снятся
49 Mikeware
 
19.12.12
13:49
(47) "фильтровать результат через жопу" - оригинально
50 Ёпрст
 
19.12.12
13:50
строку условий лучше лепить такую:

Жур.IDDocDef in ($ВидДокумента.Вася,.....$ВидДокумента.Федя)

условие на отбор по реквизиту так, к примеру

where iddoc in
(
 select
     Док1.iddoc as iddoc
 from $Документ.Вася as Док1
 where  $Док1.РеквизитТвой = :Условие

 union all

 select
     Док2.iddoc as iddoc
 from $Документ.Федя as Док2
 where  $Док2.РеквизитТвой = :Условие
 union all
 ....
 )
51 Стрелок
 
19.12.12
13:52
до индекса я допёр и сам и пробовал через левое соединение в цикле дописывая к Док номер в списке но тогда приходится и в select тоже дох дописывать этих Док1,Док2... видов может быть от одного до 12-15... показалось некошерным. опять же обработка результатов то тоже будет через эти самые Док1,Док2. или я ошибаюсь?
52 Стрелок
 
19.12.12
13:52
(+51) я про то что в итогово
53 Стрелок
 
19.12.12
13:54
(+51) я про то что в итоговой ТЗ колонки то будут Док1, Док2, Док3 и т.п. не сильно удобно при выборке, сортировке и т.п.

леплю альтернативный журнал документов с отбором по нескольким видам документов и фильтром по значениям реквизита... а в журнале ещё и дата и время и фирма и общие реквизиты.... короче потом приходится довольно много вытягивать данных типа "ТЗ.ДатДок=ТЗЗапроса.Док.ДатаДок"
54 Ёпрст
 
19.12.12
13:54
(52) а ?
зачем в селекте " дописывать этих Док1,Док2." ?
55 Ёпрст
 
19.12.12
13:55
дата у тебя в табличке журнала же есть, там док не нужен
56 Стрелок
 
19.12.12
13:55
(54) а у тебя разве не так?

(
 select
     Док1.iddoc as iddoc
 from $Документ.Вася as Док1
 where  $Док1.РеквизитТвой = :Условие

 union all

 select
     Док2.iddoc as iddoc
 from $Документ.Федя as Док2
 where  $Док2.РеквизитТвой = :Условие
 union all
 ....
 )

вот в селекте Док1, Док2
57 Стрелок
 
19.12.12
13:56
(55) да это я знаю я просто для примера...
58 Стрелок
 
19.12.12
13:56
пусть будет не дата а тот же общий для этих видов реквизит (а таких там три)
59 Mikeware
 
19.12.12
13:56
(53) они ж у тебя в в один "столбец" объединятся...
60 Ёпрст
 
19.12.12
13:57
(56) нет, у меня в селекте 1 колонка .. да и это подзапрос на фильтр по iddoc первоначальной выборки журнала.

А динамически кучу юнионов собрать.. как 2 пальца %)
61 Стрелок
 
19.12.12
14:00
(59)+(60) ну да.. тормознул.... попробую если альтернативы нет
62 Стрелок
 
19.12.12
14:00
сенкс
63 prog0101
 
20.12.12
09:51
вот если бы я то же самое спросил бы по восьмерке
ответов было бы 25 штук за 25 минут
вывод: настоящих спецов по семерке почти нет
64 Mikeware
 
20.12.12
10:00
(63) просто задачка неинтересная. стандарная слишком. даже отвечать лениво...
65 ADirks
 
20.12.12
10:19
(63) Неправильный вывод. По семёрке мало молодых и неопытных. А опытные про 2+2 жевать не станут, давно пройденный этап.

И ещё. 25 ответов нафиг не надо. Тебе с ходу дали 2, но нормальных.
66 prog0101
 
20.12.12
10:21
(65)вот нормальный:

Процедура Сформировать()

    Запрос = СоздатьОбъект("Запрос");

    Запрос.Выполнить(
    "
    |зФирма                    = Регистр.ОстаткиТМЦ.Фирма,        
Регистр.ПартииНаличие.Фирма;
    |зНоменклатура            = Регистр.ОстаткиТМЦ.Номенклатура,    
Регистр.ПартииНаличие.Номенклатура;
    |зКолО                    = Регистр.ОстаткиТМЦ.Количество;
    |зКолП                    =     Регистр.ПартииНаличие.Количество;
    |Функция зКолОстатки    = КонОст(зКолО);
    |Функция зКолПартии        = КонОст(зКолП);
    |Группировка            зФирма;
    |Группировка            зНоменклатура Без Групп;
    |");

    Пока Запрос.Группировка("зФирма") = 1 Цикл
        Сообщить(Запрос.зФирма);
        Пока Запрос.Группировка("зНоменклатура") = 1 Цикл
            Если Запрос.зКолОстатки <> Запрос.зКолПартии Тогда
                Сообщить("   " + Строка(Запрос.зНоменклатура) + ": " +
Строка(Запрос.зКолОстатки) + " --- " + Строка(Запрос.зКолПартии));
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;



КонецПроцедуры

а у вас видать у всех ум за разум уже позаходил
67 Mikeware
 
20.12.12
10:22
(66) ну, по крайней мере, они у нас хотя бы есть - и ум, и разум... в отличие от...
68 prog0101
 
20.12.12
10:24
(67)но жадности и желания поумничать больше всего
69 prog0101
 
20.12.12
10:26
вообще прямо скажем ответов мало ещё и потому что неправильное использование регистров сабжа это же хлеб для кучи сотрудников разгребающих косяки
пожтому и сравнивать их это крамола
70 Mikeware
 
20.12.12
10:29
(68) скорее, желания пофлудить..
(69) ну, это верно - за франчами приходится частенько разгребать...
71 prog0101
 
20.12.12
10:52
(70)все франчи разные
за рарусом например ничего не нужно разгребать
72 Ёпрст
 
20.12.12
10:54
(71) :))))))))))))))))))))

спасибо, поржал.
73 povar
 
20.12.12
10:55
(71) бу га га
За рарусом уже нечего разгребать, все уже в руинах
74 prog0101
 
20.12.12
11:03
(72)(73)я шесть лет проработал в рарусе, там такие задачи что вам и не снилось и главное сроки, иногда к утру
75 Ёпрст
 
20.12.12
11:04
(74) судя по (0), работал мойщиком окон ?
76 Ёпрст
 
20.12.12
11:05
Или.. даже доверяли коробки носить ?
..
:)
77 prog0101
 
20.12.12
11:05
(75)вам бы всё запросы в цикле писать да номенклатуру по наименованию синхронизировать
78 Ёпрст
 
20.12.12
11:07
(77) аргументируй
79 prog0101
 
20.12.12
11:08
(76)я системный архитектор со стажем
работаю в крупной британской компании
как бы между прочим если вам интересно
80 Ёпрст
 
20.12.12
11:09
(79) не верю.
Ибо примитивный язык 1с-а изучается за 2 дня.
81 prog0101
 
20.12.12
11:09
(78)был у меня один такой умник повесил своим отчетом всю базу, вообще программисты один другого умнее всегда
82 Ёпрст
 
20.12.12
11:09
ну может больше, за счет русского синтаксиса.
83 prog0101
 
20.12.12
11:10
(80)так я и выучил уже
главное знать разницу между сик и скан
а нотация запросов в среде это дело нескольких часов
84 Ёпрст
 
20.12.12
11:13
Тааак, а теперь какое отношение рарус имеет к британскому архитектору ?
Неужто выгнали и взяли в падаваны, коробки носить ?
:)
85 prog0101
 
20.12.12
11:14
(84)в сапе такого бардака нет.
там всё четко и работает правильно и сразу
потому что никто не делит учет на серийный и партионный
там партия и есть серия
86 Ёпрст
 
20.12.12
11:15
(85) :)))))))))))))))))))))))))))))))))))))00
87 mehfk
 
20.12.12
11:16
(79) Поржал.
88 Ёпрст
 
20.12.12
11:17
Насмотрелся на типового снеговика что ли со своими сериями ?
:))))))))))))))
Архитектор..
мда.

ЗЫ: если что, как напишешь - так и полетит.
Никакого отношения учет серий и партий к платформе не имеет, как бэ.
89 prog0101
 
20.12.12
11:22
(88)не вобиду но ни разу не видел хорошего программиста по восьмерке, обычно то что люди показывают это как бы не приемлемо для серьезного процессного управления предприятием
90 Ёпрст
 
20.12.12
11:30
(89) И чего, даже в хвалёном Рарусе никого нет ?
:)
91 Mikeware
 
20.12.12
11:33
хорошая реклама раруса :-)))
92 povar
 
20.12.12
11:41
(91) ))))+1
93 prog0101
 
20.12.12
11:43
(90)там есть, но это исключение
94 Стрелок
 
20.12.12
11:46
какой жирный троль....

автор - а ты в чём спец? ну не в 1С 7.7 это понятно. в 8-ке спец?
95 mehfk
 
20.12.12
11:48
(94) Он системный архитектор, а не спец.
96 Стрелок
 
20.12.12
11:49
(95) а чегой то это означает? вот архитектор - он проектирует строения. а этот чего? системы? какие? просто интересно где на таких пафосных учат и чего он делал в рарусе?
97 mehfk
 
20.12.12
11:50
(96) я не знаю, ждем ТС.
98 Mikeware
 
20.12.12
11:50
(94) судя по v8: скорость записи в базу и блокировки - тоже
"талантливый человек талантлив во всем. и дятел 0 он тоже во всем дятел"©
99 prog0101
 
20.12.12
11:53
(98)странно что при таком количестве умников во всех компаниях работать почему-то приходится мне

или нет странно?
100 Стрелок
 
20.12.12
11:54
(9) а ты разве работаешь? мне кажется ты глупыми вопросами форум за..ешь. нет? так ты ответишь - в чём ты конкретно спец? и почему ты занимаешься 1С? в карты проиграл или ещё чего?
101 Mikeware
 
20.12.12
11:54
(99) Ну где ж столько "архитехтуров" взять? :-)
102 mehfk
 
20.12.12
11:55
100
103 Mikeware
 
20.12.12
11:55
(100) его в карты проиграли...
104 piter99
 
20.12.12
11:56
Вот уж не ожидал
 |зФирма= Регистр.Имя1.Фирма, Регистр.Имя2.Фирма;

проверил, работает.
105 Стрелок
 
20.12.12
11:57
(0)

v8: v8: Киев: Требуется програмист, зарплата от 3000 ...

"А вы не принимали участие в написании УПП?"
106 prog0101
 
20.12.12
12:25
(104)да
прикольно
107 Mikeware
 
20.12.12
12:27
(106) прикольно то, что системный архиолух не умеет читать документацию...
108 prog0101
 
20.12.12
12:28
(100)местные мастера вместо того чтобы подарить кусок кода в три строчки хотят сначала убедится что чекловек набил уже себе достаточно шишек на этом пути и достоин звания ученика
109 Стрелок
 
20.12.12
12:28
(106) а что это за должность "системный архитектор"? чего проектируете или чем занимаетесь и каким боком тут программирование в целом?
110 Стрелок
 
20.12.12
12:29
(108) дарить халявщикам не приучен. я помогаю ищущим и пытающимся что то сделать самостоятельно
111 prog0101
 
20.12.12
12:31
(109)архитектор информационных систем, программирование это хобби
(110)см. (108)
112 Стрелок
 
20.12.12
12:33
(111) я бы даже сказал не хобби. Мучение данное в наказание видимо.

а чего мне смотреть свой собственный пост? это ты его прочти внимательно
113 Стрелок
 
20.12.12
12:33
так а чего ты архитектируешь то в британской компании?
114 Mikeware
 
20.12.12
12:34
(109) не "архитектор", а "архиолух"
115 Ёпрст
 
20.12.12
12:40
(113) познаёт разницу между сик и скан вестимо.
116 Стрелок
 
20.12.12
12:41
(115) а что это?
117 Mikeware
 
20.12.12
12:42
(115) все познается в сравнении...
следущим шагом его карьеры будет диссертация "раздичие сик и скан с точки зрения системной архитектуры в компаниях различной национальной принадлежности"
118 Mikeware
 
20.12.12
12:43
(116) поиск.
примерно 1-й курс приличного института или техникума.
119 Ёпрст
 
20.12.12
12:44
(116) выполнение запроса по индексу, либо просмотр целиком всей таблички, либо "беганьем" по полям индекса.. это в первом приблежении
index seek & index scan
120 Стрелок
 
20.12.12
12:45
(117) зато он наверняка знает такие слова как :

жоб-оффер
бренч
тренд
бизнес-ленч
франчайзинг
мерчендайзинг
хэви-контент
рерайтер
копирайтер
ньюс-рум
ханд-хантер

и прочие
121 Стрелок
 
20.12.12
12:46
(119) тьфу ты... не сообразил что это транслит....
122 Стрелок
 
20.12.12
12:46
(+121) ну тогла 120 вообще в тему попало ;)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан