Имя: Пароль:
1C
1С v8
Подскажите почему общий итог не считается
0 dfaa
 
05.08.11
15:27
Делаю отчёт в СКД, есть 2 склада. По складам остатки в отдельности правильно считает а вот общий по ним неправильно. Пример:

Склады        НачалОстат    Приход       Расход        КонОстаток

Склад 1       100,000        50,000     20,000         130,000
Склад 2        5,000        10,000     10,000             5,000

общий итог     99,000        60,000       30,000         103,000
1 ssh2006
 
05.08.11
15:30
Кривая схема кд
2 dfaa
 
05.08.11
15:31
(1) а почему тогда по складам в отдельности правильно считает?
Да и приход с уходом верный в общем итоге.
3 ssh2006
 
05.08.11
15:33
так потому что кривая схема - иначе считал бы верно
4 dfaa
 
05.08.11
15:36
(3) ну понятное дело что что то не так, может знаешь примерные причины с чем может быть связано ?
5 ssh2006
 
05.08.11
15:38
из (0) больше сказать ничего нельзя, не гадать же.
6 GROOVY
 
05.08.11
15:38
(4) На основе регистра бухгалтерии данные вытиаскиваете?
7 dfaa
 
05.08.11
15:41
КОД таков

//////////////////////////////////////////////////
ВЫБРАТЬ
   Номенклатур.Ссылка КАК спр,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Номенклатура, Номенклатур.Ссылка) КАК Рег,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,0) КАК КоличествоНачальныйОстаток,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,0) КАК КоличествоПриход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,0) КАК КоличествоРасход,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,0) КАК КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда,
   ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, Склады.Ссылка) КАК Склад
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонец, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатур
       ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Номенклатур.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ОтчетОРозничныхПродажах.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ПоступлениеТоваровУслуг.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = РеализацияТоваровУслуг.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ПеремещениеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров КАК ОприходованиеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = ОприходованиеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.СписаниеТоваров КАК СписаниеТоваров
       ПО ТоварыНаСкладахОстаткиИОбороты.Регистратор = СписаниеТоваров.Ссылка
       ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
       ПО ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры = ХарактеристикиНоменклатуры.Ссылка,
   Справочник.Склады КАК Склады
ГДЕ
   Номенклатур.ЭтоГруппа = ЛОЖЬ

СГРУППИРОВАТЬ ПО
   Номенклатур.Ссылка,
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Номенклатура, Номенклатур.Ссылка),
   ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, Склады.Ссылка),
   ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда
//////////////////////////////////////////////////
8 dfaa
 
05.08.11
15:42
(5)(6) из (7) можно что нить подсказать ?
9 GROOVY
 
05.08.11
15:43
(8) Да, я наверно мало что понимаю, но это какойто бредовый запрос.
10 ssh2006
 
05.08.11
15:43
жестко
11 GROOVY
 
05.08.11
15:44
Зачем делать соединение с документами?

Зачем группировать записи?

Зачем ЕСТЬNULL?
12 GROOVY
 
05.08.11
15:44
Зачем соединяться со справочником?
13 ssh2006
 
05.08.11
15:45
Предположение о кривой схеме оправдалось
14 GROOVY
 
05.08.11
15:46
ВЫБРАТЬ
Номенклатура,
Склад,
Регистратор,
КоличествоНачальныйОстаток,
КоличествоПриход,
КоличествоРасход,
КоличествоКонечныйОстаток,
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонец, Регистратор, , )

Все.
15 GROOVY
 
05.08.11
15:47
Йе... Еще и таблица справочника привязана без соединения... Ох...

(8) Поучите запросы.
16 dfaa
 
05.08.11
15:48
с док соединения для того чтоб по регистратору выводились нормальные остатки
группировать затем чтоб избавиться от задвоенных записей
есть NULL чтоб остатки выводились нормально.
А нужно чтоб помимо номенклатуры из регистра. выводилась номенклатура из справочника за указанный период (та что без остатков)
17 dfaa
 
05.08.11
15:49
(14) это не подойдёт по условию задачи. нужна вся номенклатура а не конкретно из регистра
18 GROOVY
 
05.08.11
15:50
(16) Ну нафига соединять таблицу с документами чтобы остатки посчитать? Они и так считаются нормально.
Виртуальная таблица всегда максимально сгруппирована, если не делать "неразумных" соединений, то ничего группировать не надо. Тем более в СКД.
Справочник соединили полным соединением, ну Бог с Вами. А склады то каким там боком?
19 dfaa
 
05.08.11
15:50
(15) если нужно было бы просто с регистра взять данные я бы сюда не писал
20 dfaa
 
05.08.11
15:52
(18) я вот если честно тоже думал что всё просто будет соединить, но когда начинаешь писать что то много проблем возникает, и как кажется вначале что остатки не должны скакать, они начинают непонятным образом себя вести
21 GROOVY
 
05.08.11
15:52
(17) Делаете второй набор данных в СКД и выбираете там ссылк из номенклатуры (И ВСЕ!) и связываете 2 набора. Левым набором будет набор справочника.
22 dfaa
 
05.08.11
15:53
(21) это я уже делал, не прокатило, остатки прыгают
23 GROOVY
 
05.08.11
15:53
(22) У меня не прыгают. Удачи.
24 dfaa
 
05.08.11
15:56
(23) спасибо за советы, буду пробовать.
25 dfaa
 
05.08.11
16:10
(21) а не подскажите если делать по этому варианту, то как подвязать туда склад. 3 набором данных в котором будет справочник склад и соеденятть с регистром по складу ?
26 GROOVY
 
05.08.11
16:12
(25) Вы же склад из регистра берете.
27 dfaa
 
05.08.11
16:16
(26) согласен, а та номенклатура у которой нет остатка она же за этот период не попадает в выборку, а мне нужна вся что есть в справочнике. А как она будет проходить в разрезе склада?
28 dfaa
 
05.08.11
16:17
если склад взять из регистра, то номенклатура из справочника не попадает в выборку
29 hhhh
 
05.08.11
16:24
(28) номенклатуру тоже из регистра берите. Выкиньте вы эти справочники.
30 ssh2006
 
05.08.11
16:25
Держи схему компоновки.
http://goo.gl/EZ4BQ
Это вариант соединения со справочником в запросе. Обрати внимание на указание ролей у полей и номеров периодов. Галка "Игнорировать NULL" у поля регистратор установлена чтобы при группировке по регистратору не было строки с пустым регистратором по записи с начальным/конечным остатком.
Почитай вот это http://its.1c.ru/db/metod81#content:3093:1
31 dfaa
 
05.08.11
16:26
(29) я бы рад это сделать :). Но в том то и дело, что по условию задачи мне нужно вся номенклатура и с остатками и без
32 dfaa
 
05.08.11
16:26
а тут возникает проблема со складами
33 Живой Ископаемый
 
05.08.11
16:28
ну да... та номенклатура, которой нет на остатках - ее на каких складах нет?
34 hhhh
 
05.08.11
16:31
(33) не, обратная задача. Остатки, а которых нет номенклатуры.
35 dfaa
 
05.08.11
16:33
за указанный период если у неё нет остатков, её не возможно отобрать по складу. А если я вывожу всю номенклатуру даже ту, у которой нет остатков, то как мне её отобрать по складам? Как составить запрос чтоб такое было возможно ? И вообще можно ли такой запрос составить ?
36 ssh2006
 
05.08.11
16:39
Я тебе же все написал в (30) Скачай схему, воткни в отчет, настрой группировки номенклатура - склад - регистратор. Если нужно сделай отборы в настройках скд. Если поставить отбор - склад не заполнено вывалится только номенклатура без движений
37 dfaa
 
05.08.11
16:43
(36) загружаю схему. Вываливается ошибка не подскажешь с чем связана

Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/schema}DataCompositionSchema    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data-composition-system/settings}Settings
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/schema}dataSource    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
38 dfaa
 
05.08.11
16:47
извиняюсь всё загрузил, сейчас гляну
39 ssh2006
 
05.08.11
16:47
Ты её грузи не в настройки, а на вкладке наборы данных внизу слева кнопка открытия файла
40 dfaa
 
05.08.11
16:51
(39) спасибо за схему, но я тоже самое и делаю. Только проблема в том что при отборе по складу не выводиться номенклатура у которой нет остатков, видна только та у которой есть остатки. А мне нужна вся ((((
41 ssh2006
 
05.08.11
16:53
Сделай отбор в настройках: Группа ИЛИ: 1) склад = склад1 2) склад не заполнено
42 hhhh
 
05.08.11
16:55
(40) так делай отбор

Склад = &Склад ИЛИ Склад ЕСТЬ NULL
43 dfaa
 
05.08.11
17:02
(41)и (42) да и правда работает!!!!!!!!!!!!!, А ещё вопрос при таких отборах номенклатура у которой нет остатков попадает в отдельный список, можно ли сделать отбор чтоб она была в складах а не отдельно ?
44 Lady исчезает
 
05.08.11
17:22
(43) см. (33)
45 ssh2006
 
05.08.11
17:47
(43) Качай
http://goo.gl/NgTc5
Теперь в группировке по каждому складу будет выводится вся номенклатура - и с остатками и без
46 dfaa
 
05.08.11
17:57
ок сейчас попробую
47 ssh2006
 
05.08.11
17:58
+(45) Делая отбор по складу все равно увидишь всю номенклатуру
48 dfaa
 
05.08.11
18:02
(47) а это схема самих настроек ?
49 dfaa
 
05.08.11
18:07
(47) это схема загружается только в настройки СКД, а я так понимаю должна быть схема самого отчёта ?
50 ssh2006
 
05.08.11
18:25
Была сама схема. Я уже ушел. Могу в понедельник отправить еще раз. Там с Вт регистра соединяется не справочник, а подзапрос
Выбрать номенклатура.ссылка как номенклатура,
Склады.ссылка как склад
51 ssh2006
 
05.08.11
18:33
Полное соединение.
52 dfaa
 
05.08.11
19:02
(50) ну она загрузилась только в настройки отчёта, ок я попробую на выходных всё сделать если не получиться тогда на ящик тебе напишу. Но думаю получиться всё. Спасибо тебе.
53 dfaa
 
05.08.11
19:53
Сделал так, но остатки всё равно летят, может что не так соединил

///////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда,
   ВЫБОР
       КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
           ТОГДА NULL
       ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор
   КОНЕЦ КАК Регистратор,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.Склад
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Номенклатура.Ссылка КАК Номенклатура,
           Склады.Ссылка КАК Склад
       ИЗ
           Справочник.Номенклатура КАК Номенклатура,
           Справочник.Склады КАК Склады) КАК ВложенныйЗапрос
       ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
           И ТоварыНаСкладахОстаткиИОбороты.Склад = ВложенныйЗапрос.Склад
//////////////////////////////////////////////////////
54 Xapac
 
05.08.11
20:01
(53)а безлевых соединений не летят?
55 ssh2006
 
05.08.11
20:23
Вот так надо - Вложенный запрос левое соединение регистр
И проставь роли и номера периодов! как в первой схеме иначе итоги неверно могут быть посчитаны
56 dfaa
 
06.08.11
16:24
(55) Спасибо тебе огромно!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Действительно вся проблема была в "И проставь роли и номера периодов! как в первой схеме иначе итоги неверно могут быть посчитаны"
57 ssh2006
 
06.08.11
18:02
Запрос то из (53) переделал как я в (55) написал?
58 dfaa
 
06.08.11
18:34
(57) да переделал под левое соединение, А подскажи ты ссылку на ИТС давал. За какую статью ты говорил ?
59 ssh2006
 
06.08.11
19:02
(58) Типичные проблемы при расчете остатков