|
|
|
Помогите с запросом lEvGl, backfire, СвинТуз, Доминошник, Elf_80_lvl, nick86, evgeniy_n, maxab72, Zombi, kostik79, Галахад, AlexKimp, Timon1405, Chameleon1980, craxx, kubik_live, Гипервизор, Daniil-irk, JohnGilbert, zzz_zzz_zzz, Мультук, zenon46, banco, K1RSAN, 2mugik, Kongo2019, kiton_mr, X Leshiy, RomarioAgro, MWWRuza, Rovan, Greeen, ndrv, Fish, АгентБезопаснойНацио, Жеглофф, RomanYS, novichok79, qwerty, dedmoroz777, StanLee, Ненавижу 1С, Garykom, vsy, User1C_2025, Fedor-1971, yurikmellon2, paramedic, denk32, alex_kld_2024, 2S, reg0303, WARLOG, ГдеСобакаЗарыта, программистище, hunter76, Скучный бух, Ёпрст, orakool, Radion, Crusher, Михаил Козлов, Il19, Maxsim24, AntiBuh, Eiffil123, Prog_man, alexis_nov, maxar, unenu, LuckyStar, dmt, DeeK, azt-yur, igouranga, eRik, dergreche, Волшебник, trad, Indian, vyaz, Хряк, DemonShinji2, PR, ДенисСмирнов, VladZ, lubitelxml, Климов Сергей, zenik, zva, Ногаминебить, fbear, АнализДанных, p-soft, ОператорПК, d4rkmesa, lxndr
| ☑ | ||
|---|---|---|---|---|
|
0
Zombi
21.11.25
✎
09:10
|
Завис с запросом. Туплю уже час. Нужно получать себестоимость по складам за период по дням. Вот текст запроса:
ВЫБРАТЬ СУММА(ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК Себестоимость, ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.Период КАК Период, АналитикаУчетаНоменклатурыСБ.Склад КАК Склад ИЗ РегистрНакопления.ОстаткиНоменклатурыВСебестоимости.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатурыСБ ПО ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.АналитикаУчетаНоменклатуры = АналитикаУчетаНоменклатурыСБ.КлючАналитики СГРУППИРОВАТЬ ПО ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.Период, АналитикаУчетаНоменклатурыСБ.Склад Результат на скриншоте. Корректную себестоимость получает только на первый и последний день в периоде. Остальные дни сильно меньше. Что не так делаю?
|
|||
|
1
Zombi
21.11.25
✎
09:05
|
Проблема именно когда соединяю с РС "АналитикаУчетаНоменклатуры". Если соединения нет, общая себестоимость корректная на каждый день.
|
|||
|
2
Ненавижу 1С
гуру
21.11.25
✎
09:12
|
(0) сначала выбрать остатки по периодам и ключам в ВТ, потом сгруппировать по складам
|
|||
|
3
RomanYS
21.11.25
✎
09:13
|
(1) всё логично ОстаткиИОбороты выдают остатки только за те периоды и по тем аналитикам(!), когда были обороты.
|
|||
|
4
Fedor-1971
21.11.25
✎
09:13
|
(0) Убери Сумма и поищи где дублируются ключи аналитики
Хочешь запросом, хочешь руками и будет понятно, что не так |
|||
|
5
RomanYS
21.11.25
✎
09:14
|
(2) Без соединения с таблицей дат не сработает
|
|||
|
6
Fedor-1971
21.11.25
✎
09:18
|
4+ И, таки, Левое соединение, если у тебя будут записи в остатках с отсутствующим ключом аналитики, погнётся выборка и ты об этом не узнаешь
|
|||
|
7
maxab72
21.11.25
✎
09:18
|
Если это СКД, то надо установить признак Обязательное для роли поля Период.
|
|||
|
8
Fedor-1971
21.11.25
✎
09:20
|
(5) Это если нужно показать за каждый календарный день, походу, ТС достаточно просто за дни движений
|
|||
|
9
RomanYS
21.11.25
✎
09:30
|
(8) " просто за дни движений "
Так в том-то и дело, что движения по отдельным аналитикам и остатки выдаются только по ним, а ему нужно всего по складу. Таблицу дат можно взять из этого же запроса, если не нужно на каждый день. Но соединять с ней всё равно придётся, чтобы переносить "скользящие" остатки по недвижимым аналитикам |
|||
|
10
RomanYS
21.11.25
✎
09:29
|
Кстати, возможно, проще посчитать нарастающим итогом остатки, взяв отдельно остатки и обороты. Тогда можно обойтись без внешних дат и можно оперировать свернутыми по складу таблицами
|
|||
|
11
Zombi
21.11.25
✎
09:29
|
Сделал вот так. Результат тот же.
ВЫБРАТЬ КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика ПОМЕСТИТЬ вт_Даты ИЗ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики ГДЕ КалендарныеГрафики.ДатаГрафика >= &НачалоПериода И КалендарныеГрафики.ДатаГрафика <= &КонецПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Себестоимость, вт_Даты.ДатаГрафика КАК Период, АналитикаУчетаНоменклатурыСБ.Склад КАК Склад ПОМЕСТИТЬ вт_СебестоимостьДоГруппировки ИЗ вт_Даты КАК вт_Даты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатурыВСебестоимости.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатурыСБ ПО ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.АналитикаУчетаНоменклатуры = АналитикаУчетаНоменклатурыСБ.КлючАналитики ПО вт_Даты.ДатаГрафика = ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(вт_СебестоимостьДоГруппировки.Себестоимость) КАК Себестоимость, вт_СебестоимостьДоГруппировки.Период КАК Период, вт_СебестоимостьДоГруппировки.Склад КАК Склад ИЗ вт_СебестоимостьДоГруппировки КАК вт_СебестоимостьДоГруппировки СГРУППИРОВАТЬ ПО вт_СебестоимостьДоГруппировки.Период, вт_СебестоимостьДоГруппировки.Склад |
|||
|
12
Fedor-1971
21.11.25
✎
09:31
|
(7) Если СКД, то нужно использовать пару ОстатокНаНачало + ОстаткоНаКонец - иначе может некорректно считать (это из старых установок по СКД, может что поменялось)
|
|||
|
13
RomanYS
21.11.25
✎
09:36
|
(11) нужно соединить таблицу саму с собой и получить фактические периоды действия остатков. Потом уже соединять её с датами чтобы дополнить пропущенные остатков
|
|||
|
14
Zombi
21.11.25
✎
10:12
|
(13) У меня что-то затык уже) Можете набросать как соединять?
|
|||
|
15
Ненавижу 1С
гуру
21.11.25
✎
09:47
|
(14) а почему вы не хотите сделать как в (2)?
|
|||
|
16
Zombi
21.11.25
✎
10:00
|
(15) В 11 же сделал.
|
|||
|
17
lEvGl
гуру
21.11.25
✎
10:05
|
эммм "остатки на каждый день" покажут на каждый день хоть был оборот хоть нет, потом лепить сбоку аналитику
|
|||
|
18
RomanYS
21.11.25
✎
10:05
|
(14) ВЫБРАТЬ ПЕРВЫЕ 99999999
РН.Период КАК Период, РН.АналитикаУчетаНоменклатуры КАК Аналитика, РН.КоличествоКонечныйОстаток КАК Остаток, АВТОНОМЕРЗАПИСИ() КАК нпп ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.СебестоимостьТоваров.ОстаткиИОбороты(, , День, , ) КАК РН УПОРЯДОЧИТЬ ПО РН.АналитикаУчетаНоменклатуры, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Аналитика КАК Аналитика, ВТ.Остаток КАК Остаток, ВТ.Период КАК Период, ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ВТ1.Период, СЕКУНДА, -1), &Датакон) КАК ПериодПо ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ1 ПО ВТ.Аналитика = ВТ1.Аналитика И (ВТ.нпп + 1 = ВТ1.нпп) |
|||
|
19
Ненавижу 1С
гуру
21.11.25
✎
10:30
|
(16) нет
|
|||
|
20
Zombi
21.11.25
✎
10:35
|
(18) Сделал так:
ВЫБРАТЬ ПЕРВЫЕ 99999999 РН.Период КАК Период, РН.АналитикаУчетаНоменклатуры КАК Аналитика, РН.СтоимостьКонечныйОстаток КАК Остаток, АВТОНОМЕРЗАПИСИ() КАК нпп ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.ОстаткиНоменклатурыВСебестоимости.ОстаткиИОбороты(&ДатаНач, &Датакон, День, , ) КАК РН УПОРЯДОЧИТЬ ПО РН.АналитикаУчетаНоменклатуры, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Аналитика КАК Аналитика, ВТ.Остаток КАК Остаток, ВТ.Период КАК Период, ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ВТ1.Период, СЕКУНДА, -1), &Датакон) КАК ПериодПо ПОМЕСТИТЬ вт_Движения ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ1 ПО ВТ.Аналитика = ВТ1.Аналитика И (ВТ.нпп + 1 = ВТ1.нпп) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ вт_Движения.Остаток КАК Остаток, вт_Движения.Период КАК Период, АналитикаУчетаНоменклатуры.Склад КАК Склад ПОМЕСТИТЬ втСАналитикой ИЗ вт_Движения КАК вт_Движения ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры ПО вт_Движения.Аналитика = АналитикаУчетаНоменклатуры.КлючАналитики ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(втСАналитикой.Остаток) КАК Остаток, втСАналитикой.Период КАК Период, втСАналитикой.Склад КАК Склад ПОМЕСТИТЬ вт_Сгруппировано ИЗ втСАналитикой КАК втСАналитикой СГРУППИРОВАТЬ ПО втСАналитикой.Период, втСАналитикой.Склад Результат тот же. |
|||
|
21
Zombi
21.11.25
✎
10:36
|
(19) Как надо?
|
|||
|
22
lEvGl
гуру
21.11.25
✎
10:47
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
КалендарныеГрафики.Период ПОМЕСТИТЬ Дни ИЗ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики ГДЕ КалендарныеГрафики.Период МЕЖДУ &НачалоПериода И &КонецПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Движения.Номенклатура, ДНИ.Период, СУММА(ВЫБОР КОГДА Движения.Период = &НачалоПериода ТОГДА Движения.КоличествоКонечныйОстаток ИНАЧЕ ВЫБОР КОГДА Движения.Период < = ДНИ.Период ТОГДА Движения.КоличествоОборот ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК КоличествоКонечныйОстаток ИЗ Дни КАК ДНИ, РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Номенклатура = &Номенклатура) КАК Движения СГРУППИРОВАТЬ ПО Движения.Номенклатура, ДНИ.Период Если после внутреннего соединения с аналитикой сумма уменьшается - ну значит нет связей |
|||
|
23
RomanYS
21.11.25
✎
11:09
|
(21) ВЫБРАТЬ ПЕРВЫЕ 99999999
РН.Период КАК Период, РН.АналитикаУчетаНоменклатуры КАК Аналитика, РН.КоличествоКонечныйОстаток КАК Остаток, АВТОНОМЕРЗАПИСИ() КАК нпп ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.СебестоимостьТоваров.ОстаткиИОбороты(, , День, , ) КАК РН УПОРЯДОЧИТЬ ПО РН.АналитикаУчетаНоменклатуры, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Аналитика КАК Аналитика, ВТ.Остаток КАК Остаток, ВТ.Период КАК Период, ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ВТ1.Период, СЕКУНДА, -1), &Датакон) КАК ПериодПо ПОМЕСТИТЬ ВТПериодами ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ1 ПО ВТ.Аналитика = ВТ1.Аналитика И (ВТ.нпп + 1 = ВТ1.нпп) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ.Период КАК Дата ПОМЕСТИТЬ Даты ИЗ ВТ КАК ВТ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Даты.Дата КАК Дата, СУММА(ВТ.Остаток) КАК Остаток, ВТ.Аналитика.МестоХранения КАК АналитикаМестоХранения ИЗ Даты КАК Даты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПериодами КАК ВТ ПО (Даты.Дата МЕЖДУ ВТ.Период И ВТ.ПериодПо) СГРУППИРОВАТЬ ПО Даты.Дата, ВТ.Аналитика.МестоХранения |
|||
|
24
Zombi
21.11.25
✎
11:38
|
(23) Не так у меня. У меня в РН только ключ аналитики. Чтобы саму аналитику получить и склад через нее, нужно соединение с РС "СтоимостьКонечныйОстаток". Вот когда соединяю, начинаются чудеса с остатками по дням. Корректно только в первый и последний день периода. Если с РС не соединять, общие остатки правильные по всем дням. Но нужна разбивка по складам.
|
|||
|
25
Fedor-1971
21.11.25
✎
11:42
|
(24) Ключ аналитики, в норме, это справочник. И для поиска аналитик есть РС КлючиАналитикиНоменклатуры (или как-то так)
Для эксперимента: попробуй свой склад тупо достать из Аналитики через точку |
|||
|
26
Zombi
21.11.25
✎
11:54
|
(25) Здесь ключ аналитики это справочник, но все данные хранятся в РС. В самом справочнике реквизитов нет:
|
|||
|
27
RomanYS
21.11.25
✎
11:57
|
(24) ну замени на соединение с РС
"Вот когда соединяю, начинаются чудеса с остатками по дням" "Чудеса" начинаются когда аналитику из виртуальной таблицы запросил, а вовсе не при соединении. Если не изучать физику, то мир будет полон чудес) |
|||
|
28
Zombi
21.11.25
✎
12:18
|
Вот 2 запроса и вот 2 разных результата.
(27) Да я уже не из виртуальной таблицы запрашивал. В отдельную вт собирал остатки и соединял с РС с аналитикой.
|
|||
|
29
Rovan
гуру
21.11.25
✎
12:20
|
зачем соединение ? вот так нельзя ?
ВЫБРАТЬ ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.АналитикаУчетаНоменклатуры.Склад ... |
|||
|
30
Zombi
21.11.25
✎
12:24
|
(29) Нет. АналитикаУчетаНоменклатуры это измерение - справочник. У него нет реквизитов.
|
|||
|
31
Zombi
21.11.25
✎
12:26
|
Вот
|
|||
|
32
Zombi
21.11.25
✎
12:35
|
ВЫБРАТЬ
ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.СтоимостьКонечныйОстаток КАК Себестоимость, ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.Период КАК Период, ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры ПОМЕСТИТЬ вт_Остатки ИЗ РегистрНакопления.ОстаткиНоменклатурыВСебестоимости.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ОстаткиНоменклатурыВСебестоимостиОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АналитикаУчетаНоменклатурыСБ.Склад КАК Склад, АналитикаУчетаНоменклатурыСБ.КлючАналитики КАК КлючАналитики ПОМЕСТИТЬ вт_Аналитика ИЗ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатурыСБ СГРУППИРОВАТЬ ПО АналитикаУчетаНоменклатурыСБ.Склад, АналитикаУчетаНоменклатурыСБ.КлючАналитики ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(вт_Остатки.Себестоимость) КАК Себестоимость, вт_Остатки.Период КАК Период, вт_Аналитика.Склад КАК Склад ИЗ вт_Остатки КАК вт_Остатки ЛЕВОЕ СОЕДИНЕНИЕ вт_Аналитика КАК вт_Аналитика ПО вт_Остатки.АналитикаУчетаНоменклатуры = вт_Аналитика.КлючАналитики СГРУППИРОВАТЬ ПО вт_Остатки.Период, вт_Аналитика.Склад Вот так уже делал. Все равно не так. Период с 10 по 16, 10 правильный остаток, 16 правильный, остальные дни неправильный. Период делаю с 11 по 16, правильными становятся 11 и 16, остальные нет. |
|||
|
33
Timon1405
21.11.25
✎
12:51
|
(30)(31) бред пишете, а скрин из расширения какой-то стоит. или фильтр вверху в дереве конфигуратора наложен.
реквизиты в справочнике есть, а РС рядом такой же сделан потому в справочнике нет составного индекса по 2+ реквизитам сразу, а в РС есть. с появлением в 27 версии(не помню точно в какой) платформенных составных индексов от таких РС разработчики типовых постепенно должны начать избавляться. |
|||
|
34
Zombi
21.11.25
✎
13:20
|
(33) Заняться мне больше нечем, ставить фильтры и скриншоты из расширений слать. Это не расширение и фильтров нет:
|
|||
|
35
СвинТуз
21.11.25
✎
13:30
|
.ОстаткиИОбороты(, , День, ДвиженияИГраницыПериода, )
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |