Имя: Пароль:
1C
1С v8
регистры накоплений
0 aptomilov
 
15.01.13
18:51
Народ подскажите плиз уже голову сломал
беру запросом остатки и он выдает мне остаток только учитывая записи этого года, прошлый год в упор не видит. Первый раз в такое втыкаюсь, что можно сделать???
1 DrShad
 
15.01.13
18:53
запрос с параметрами покажи
2 aptomilov
 
15.01.13
18:54
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    НоменклатураПООбъектамОстатки.ОбъектСтроительства как подразделение,
   |    НоменклатураПООбъектамОстатки.Номенклатура КАК Номенклатура,
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток КАК КоличествоОстаток
   |ИЗ
   |    РегистрНакопления.НоменклатураПООбъектам.Остатки КАК НоменклатураПООбъектамОстатки
   |ГДЕ
   |    НоменклатураПООбъектамОстатки.ОбъектСтроительства В(&ОбъектыСписок)
   |    И НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0
   |    И НоменклатураПООбъектамОстатки.Конкурс = Ложь
   |    И (НоменклатураПООбъектамОстатки.ВидДокумента = &Спецификация
   |    ИЛИ НоменклатураПООбъектамОстатки.ВидДокумента = &ЗаказПоставщику)";
   
   
   Запрос.УстановитьПараметр("ОбъектыСписок",ОбъектыСписок);

   ВидДокСпецификация                = СокрЛП(ТипЗнч(Документы.Спецификация.ПустаяСсылка()));
   ВидДокЗП                        = СокрЛП(ТипЗнч(Документы.ЗаказПоставщику.ПустаяСсылка()));
   
   
   Запрос.УстановитьПараметр("Спецификация", ВидДокСпецификация);
   Запрос.УстановитьПараметр("ЗаказПоставщику", ВидДокЗП);
   
   

   
   ТаблВ=Запрос.Выполнить().Выгрузить();
   ТаблВ.Свернуть("Подразделение,Номенклатура","КоличествоОстаток");
3 aptomilov
 
15.01.13
18:54
он у меня весь приход взял (он в этом году) а весь расход не взял он в том году
4 KUBIK
 
15.01.13
18:55
(0) А дата остатков хде?
5 aptomilov
 
15.01.13
18:56
Регистр самодельный
6 Reset
 
15.01.13
18:56
(5) Это заметно ;)
7 Fragster
 
гуру
15.01.13
18:56
(4) если дата остатков не указана - берутся текущие итоги
8 aptomilov
 
15.01.13
18:57
если не ставить то сегодняшняя вроде так всегда было
видно что он записи этого года берет дату ставил не поможает
9 DrShad
 
15.01.13
18:58
ну так отборы не проходят записи прошлого года
10 Генератор
 
15.01.13
18:58
ну вырезай условия по одному и смотри че поменялось, параметрами виртуальных таблиц пользоваться не учили?
11 Fragster
 
гуру
15.01.13
18:59
меня смущает "И НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0"
12 KUBIK
 
15.01.13
18:59
(10) +1
(0) Запрос в консоль запросов выложи и смотри
13 aptomilov
 
15.01.13
18:59
проходят отборы в прошлом году проходили в этом перестали проходить
14 Генератор
 
15.01.13
19:00
еще вопрос как список объектов заполняется, может он по движениям текущего года заполняется
15 Reset
 
15.01.13
19:00
КоличествоБазовоеОстаток - это ресурс (я не сильно удивлюсь, если) или измерение?
16 aptomilov
 
15.01.13
19:02
ресурс
17 aptomilov
 
15.01.13
19:03
объекты из списка, говорю же это все работало в том году
18 aptomilov
 
15.01.13
19:03
списк узер накидывает
19 DrShad
 
15.01.13
19:03
меня смущают пустые ссылки приведенные к строке
20 Reset
 
15.01.13
19:04
(19) это он так передает строковые константы "Спецификация", "Заказ поставщику"
21 Fragster
 
гуру
15.01.13
19:04
(19) ыЫЫЫЫЫЫЫ
22 Генератор
 
15.01.13
19:05
(19) не, там типы значений пустых ссылок, приведенные к строке
23 aptomilov
 
15.01.13
19:05
точняк эта фишка проверена
24 Reset
 
15.01.13
19:05
Типа если синоним поменяется в метаданных, код переписывать не надо. Круто , то есть, типа.
25 aptomilov
 
15.01.13
19:06
да да
26 Reset
 
15.01.13
19:06
(22) фактически это синонимы
27 Генератор
 
15.01.13
19:08
а вид документа это измерение типа строка? а по нему точно в 0 сворачиваются движения?
28 aptomilov
 
15.01.13
19:08
может операции управление итогами виноваты
29 aptomilov
 
15.01.13
19:09
сто процентов свернуться
30 Reset
 
15.01.13
19:09
(27) Мож как раз в том году и была чуть другая строка :))
31 aptomilov
 
15.01.13
19:09
не меняли
32 DrShad
 
15.01.13
19:09
(31) ты проверяй
33 aptomilov
 
15.01.13
19:11
да проврено все на сто разу уже
может кто слышал в каких случаях остатки могут браться не по всему регистру а за период
34 DrShad
 
15.01.13
19:12
(33) не бывает таких случаев
35 aptomilov
 
15.01.13
19:13
блин как так то
36 Reset
 
15.01.13
19:13
(33) Не слышал.

Т.е. у тебя
25.12.12 +5
26.12.12 -2

10.01.13 +10

и итоги выдают 10, а не 13?
37 aptomilov
 
15.01.13
19:13
хоть бери отдельно и вычитай блин
38 Генератор
 
15.01.13
19:13
че-то у меня подозрение что в вид документа тупо вид регистратора пишется, или нет?
39 aptomilov
 
15.01.13
19:14
нет
40 aptomilov
 
15.01.13
19:14
(36) да
41 aptomilov
 
15.01.13
19:15
и все записи 13 года он добросовестно сложил а старый год даже не посмотрел
42 Reset
 
15.01.13
19:16
Ну пересчиатай итоги. Как то не верится. Я бы кивал в сторону таки разных имерений в чем-то, в прошлом году и этом. Чудес не бывает.
43 DrShad
 
15.01.13
19:16
(41) пи-здишь, братиша
44 Reset
 
15.01.13
19:16
(42) опечатки
пересчитай*, измерений*
45 aptomilov
 
15.01.13
19:17
итоги пересчитывал не помогло
46 aptomilov
 
15.01.13
19:18
такойже запрос работает по оборотам без нареканий
47 aptomilov
 
15.01.13
19:19
я бы мог сделать по оборотам и отнять но надо разобраться с остатками
48 aptomilov
 
15.01.13
19:20
в ниверсальном отчете задавал теже параметры все красиво и остки в норме
49 aptomilov
 
15.01.13
19:21
ладно я домой буду через пару часов а то не выберуссь с города
50 Reset
 
15.01.13
19:23
Что-то я догадываться начал, сказать не могу только о чем :)

Напиши запрос нормально:

Запрос.Текст =
   "ВЫБРАТЬ
   |    НоменклатураПООбъектамОстатки.ОбъектСтроительства как подразделение,
   |    НоменклатураПООбъектамОстатки.Номенклатура КАК Номенклатура,
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток КАК КоличествоОстаток
   |ИЗ
   |    РегистрНакопления.НоменклатураПООбъектам.Остатки(,ОбъектСтроительства В(&ОбъектыСписок) и не Конкурс и ВидДокумента в (&Спецификация,&ЗаказПоставщику)  ) КАК НоменклатураПООбъектамОстатки
   |ГДЕ
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0";

проверь что дает
51 aptomilov
 
15.01.13
19:26
ща ;с попробую канешно
52 aptomilov
 
15.01.13
19:27
просвяти по догадкам
53 aptomilov
 
15.01.13
19:30
и о чудо
54 aptomilov
 
15.01.13
19:30
работает
55 aptomilov
 
15.01.13
19:35
где разница просвятите а
56 aptomilov
 
15.01.13
19:40
щас реально берет остатки за все время, почему до этого не брал
57 Reset
 
15.01.13
19:44
Это на уровне где-то подсознания, я попытаюсь словами выразить конечно. Варинат запроса в (2) неправильно(зачеркнуто) своеобразно интерпретируется платформой.
То сначала остатки получаются в разрезе измерений, указанных в секции ГДЕ, а затем при выдаче в разрезе уже нужных полей (Выбрать) она "теряет" часть данных. Не могу более внятно объяcнить, у меня тоже вечер непростого дня)
58 Reset
 
15.01.13
19:44
Мораль: пользуйтесь парматерами виртуальных таблиц! :D
59 Reset
 
15.01.13
19:45
параметрами*
60 aptomilov
 
15.01.13
19:46
в любом случае спасибо так канешно граммотней везде в остатах переведу условия внутрь , спасибо еще раз надо абязательно в этом разобраться
61 aptomilov
 
15.01.13
19:46
всем спасибо
62 aptomilov
 
15.01.13
19:48
оо прикол
поставил где с количеством и опять все через ж
63 aptomilov
 
15.01.13
19:50
блинн я 12 весь отработал с условиями этими народ не жаловался у всех всегда все хватало
64 Reset
 
15.01.13
19:51
Что за "где с количеством"?

это?
НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0
65 aptomilov
 
15.01.13
19:52
да
66 aptomilov
 
15.01.13
19:52
его в условия ставлю и все остатки неверные
67 Reset
 
15.01.13
19:53
ять так не бывает ;)))
68 aptomilov
 
15.01.13
19:53
серьезно
69 Reset
 
15.01.13
19:54
Покажи финальный с где
70 aptomilov
 
15.01.13
19:56
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    НоменклатураПООбъектамОстатки.ОбъектСтроительства как подразделение,
   |    НоменклатураПООбъектамОстатки.Номенклатура КАК Номенклатура,
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток КАК КоличествоОстаток
   |ИЗ
   |    РегистрНакопления.НоменклатураПООбъектам.Остатки(,ОбъектСтроительства В(&ОбъектыСписок) и не Конкурс и ВидДокумента в (&Спецификация,&ЗаказПоставщику) ) КАК НоменклатураПООбъектамОстатки
   |ГДЕ
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0";
   
   Запрос.УстановитьПараметр("ОбъектыСписок",ОбъектыСписок);

   ВидДокСпецификация                = СокрЛП(ТипЗнч(Документы.Спецификация.ПустаяСсылка()));
   ВидДокЗП                        = СокрЛП(ТипЗнч(Документы.ЗаказПоставщику.ПустаяСсылка()));
   
   
   Запрос.УстановитьПараметр("Спецификация", ВидДокСпецификация);
   Запрос.УстановитьПараметр("ЗаказПоставщику", ВидДокЗП);
   Запрос.УстановитьПараметр("ВотДата", ТекущаяДата());
   
         //  И НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0

   
   ТаблВ=Запрос.Выполнить().Выгрузить();
   ТаблВ.Свернуть("Подразделение,Номенклатура","КоличествоОстаток");
71 aptomilov
 
15.01.13
19:57
перепроверил без условия, остатки верны
72 aptomilov
 
15.01.13
19:57
с  условием прошлогодний расход тупо куда
то пропадает
73 Йохохо
 
15.01.13
19:57
"он у меня весь приход взял"
1) СУММА(ГДЕ НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток>0)
2) ГДЕ СУММА(НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток) > 0
74 aptomilov
 
15.01.13
19:58
думаешь через сумму надо
75 aptomilov
 
15.01.13
19:59
не поленюсь проверю
76 aptomilov
 
15.01.13
19:59
по второму варианту
77 Reset
 
15.01.13
20:01
я чувствую что брежу тут с тобой, попробуй так

"ВЫБРАТЬ
   |    НоменклатураПООбъектамОстатки.ОбъектСтроительства как подразделение,
   |    НоменклатураПООбъектамОстатки.Номенклатура КАК Номенклатура,
   |    НоменклатураПООбъектамОстатки.КоличествоБазовоеОстаток КАК КоличествоОстаток
   |Поместить ВТ
   |ИЗ
   |    РегистрНакопления.НоменклатураПООбъектам.Остатки(,ОбъектСтроительства В(&ОбъектыСписок) и не Конкурс и ВидДокумента в (&Спецификация,&ЗаказПоставщику) ) КАК НоменклатураПООбъектамОстатки
   |;
   |Выбрать
   |    ВТ.ОбъектСтроительства как подразделение,
   |    ВТ.Номенклатура КАК Номенклатура,
   |    ВТ.КоличествоБазовоеОстаток КАК КоличествоОстаток
   |Из ВТ как ВТ
   |ГДЕ ВТ.КоличествоБазовоеОстаток>0";
78 Reset
 
15.01.13
20:03
(73) По моему, это имело бы смысл, если выборка шла из физической таблицы
79 aptomilov
 
15.01.13
20:04
со вторым не взлетает
80 aptomilov
 
15.01.13
20:04
завтра попрбую (77) седня надо домой лететь и так уже на такси попал
81 aptomilov
 
15.01.13
20:05
(77) как то мудро  ))
82 aptomilov
 
15.01.13
20:05
ушел завтра отпишусь
83 Reset
 
15.01.13
20:06
(81) Скоре глупо (избыточно). Должно работать (70)
Программист всегда исправляет последнюю ошибку.