По теме из базы знаний
- Highload-оптимизация 1С: теория и практика на примере консолидированной отчетности группы "Магнит" и розничной аптечной сети "Магнит"
- Оптимизация персонализированных рассылок отчетов в БСП
- Начните уже использовать хранилище запросов
- Опыт оптимизации 1С на PostgreSQL
- Опыт оптимизации одной простенькой пользовательской задачи
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Так? Если да, то та же ошибка
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Документ КАК Документ
ПОМЕСТИТЬ ВТПродажиОбороты
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , Документ ССЫЛКА Документ.ЧекККМ) КАК ПродажиОбороты
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТПродажиОбороты.Номенклатура КАК Номенклатура,
ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК НоменклатураКолонка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТПродажиОбороты.Документ) КАК Документ
{ВЫБРАТЬ
Номенклатура.*,
НоменклатураКолонка.*,
Документ.*}
ИЗ
ВТПродажиОбороты КАК ВТПродажиОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТПродажиОбороты КАК ВТПродажиОбороты1
ПО ВТПродажиОбороты.Номенклатура <> ВТПродажиОбороты1.Номенклатура
И ВТПродажиОбороты.Документ = ВТПродажиОбороты1.Документ
СГРУППИРОВАТЬ ПО
ВТПродажиОбороты.Номенклатура,
ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
Показать
(8) Полным соединением проверяю вхождения номенклатур в чеки, если значение Null то значит, что номенклатура входит только в свой чек. Значит если поставить проверку ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)), то спишу на пустую ссылку и это будет колонкой "Единичная позиция в чеке". Как-то так
(6) Думаю, в консоле запросов у Вас попроще вывод данных, чем Вы того требуете от отчета. Попробуйте упростить оформление данных, при этом не разбивать условное оформление на множество частей. Или вовсе его отключить, чтобы удостовериться, не тратится ли на него слишком много ресурсов.
Также можно попробовать посмотреть, во что превращается Ваш запрос при исполнении отчета. Для этого можно воспользоваться консолью СКД. Либо формировать отчет программно и при компоновке макета в отладчике подглядеть текст запроса.
Также можно попробовать посмотреть, во что превращается Ваш запрос при исполнении отчета. Для этого можно воспользоваться консолью СКД. Либо формировать отчет программно и при компоновке макета в отладчике подглядеть текст запроса.
(14) Сформировал, в Макете для табличного документа XML код. Оно?
<query>ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК НоменклатураКолонка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПродажиОбороты.Документ) КАК Документ,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Номенклатура) КАК НоменклатураПредставление,
ПродажиОбороты.Номенклатура.КатегорияНоменклатуры КАК НоменклатураКатегорияНоменклатуры,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Номенклатура.КатегорияНоменклатуры) КАК НоменклатураКатегорияНоменклатурыПредставление,
ПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Наименование КАК НоменклатураКатегорияНоменклатурыНаименование,
ПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель КАК НоменклатураКатегорияНоменклатурыРодитель,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель) КАК НоменклатураКатегорияНоменклатурыРодительПредставление,
ПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель.Наименование КАК НоменклатураКатегорияНоменклатурыРодительНаименование,
ПродажиОбороты.Номенклатура.Наименование КАК НоменклатураНаименование,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))) КАК НоменклатураКолонкаПредставление,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры КАК Поле1,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры) КАК Поле1Представление,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Наименование КАК Поле2,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель КАК Поле3,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель) КАК Поле3Представление,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель.Наименование КАК Поле4,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).Наименование КАК Поле5
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , (Документ ССЫЛКА Документ.ЧекККМ) И Документ.СтруктурнаяЕдиница В(&П)) КАК ПродажиОбороты
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , (Документ ССЫЛКА Документ.ЧекККМ) И Документ.СтруктурнаяЕдиница В(&П)) КАК ПродажиОбороты1
ПО ПродажиОбороты.Номенклатура <> ПродажиОбороты1.Номенклатура
И ПродажиОбороты.Документ = ПродажиОбороты1.Документ
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура,
ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Номенклатура.КатегорияНоменклатуры),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))),
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры),
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Наименование,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель),
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель.Наименование,
(ЕСТЬNULL(ПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).Наименование</query>
Показать
(17)
- Запросы работают в консоле
- Условное оформление отключил, в настройках наименование явно вроде не использую. Со стороны настройки выглядят так
- Вот из СКД с рекомендациями
- Запросы работают в консоле
- Условное оформление отключил, в настройках наименование явно вроде не использую. Со стороны настройки выглядят так
- Вот из СКД с рекомендациями
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Документ КАК Документ
ПОМЕСТИТЬ ВТПродажиОбороты
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , Документ ССЫЛКА Документ.ЧекККМ) КАК ПродажиОбороты
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТПродажиОбороты.Номенклатура КАК Номенклатура,
ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК НоменклатураКолонка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТПродажиОбороты.Документ) КАК Документ,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТПродажиОбороты.Номенклатура) КАК НоменклатураПредставление,
ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры КАК НоменклатураКатегорияНоменклатуры,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры) КАК НоменклатураКатегорияНоменклатурыПредставление,
ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Наименование КАК НоменклатураКатегорияНоменклатурыНаименование,
ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель КАК НоменклатураКатегорияНоменклатурыРодитель,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель) КАК НоменклатураКатегорияНоменклатурыРодительПредставление,
ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель.Наименование КАК НоменклатураКатегорияНоменклатурыРодительНаименование,
ВТПродажиОбороты.Номенклатура.Наименование КАК НоменклатураНаименование,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))) КАК НоменклатураКолонкаПредставление,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры КАК Поле1,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры) КАК Поле1Представление,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Наименование КАК Поле2,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель КАК Поле3,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель) КАК Поле3Представление,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель.Наименование КАК Поле4,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).Наименование КАК Поле5
ИЗ
ВТПродажиОбороты КАК ВТПродажиОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ВТПродажиОбороты КАК ВТПродажиОбороты1
ПО ВТПродажиОбороты.Номенклатура <> ВТПродажиОбороты1.Номенклатура
И ВТПродажиОбороты.Документ = ВТПродажиОбороты1.Документ
СГРУППИРОВАТЬ ПО
ВТПродажиОбороты.Номенклатура,
ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТПродажиОбороты.Номенклатура.КатегорияНоменклатуры.Родитель),
ПРЕДСТАВЛЕНИЕССЫЛКИ(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))),
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры),
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Наименование,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель,
ПРЕДСТАВЛЕНИЕССЫЛКИ((ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель),
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).КатегорияНоменклатуры.Родитель.Наименование,
(ЕСТЬNULL(ВТПродажиОбороты1.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))).Наименование
Показать
(24)Требовалось написать отчет (для УНФ 1.6) - "Анализ и оценка кросс-наполненности чеков". Отчет формируется по количеству чеков, в которые попала та или иная номенклатурная позиция.
На примере "номенклатура 3": данная позиция попала в 58 чеков, из них в этом же чеке присутствовало: - "номенклатура 1" в 12 чеках
-"номенклатура 2" в 6 чеках
- "номенклатура 3" в 4 чеках
В 36 чеках отсутствуют другие номенклатурные позиции
Есть отбор по магазинам
Отчет должен работать по всем магазинам за квартал. С небольшими данными справляется, а вот если ставлю за квартал по всем магазинам, то получаю ошибку "недостаточно памяти" (выполняю на сервере).
Я начинающий, так что мог криво написать запрос. Подскажите что можно исправить?
На примере "номенклатура 3": данная позиция попала в 58 чеков, из них в этом же чеке присутствовало: - "номенклатура 1" в 12 чеках
-"номенклатура 2" в 6 чеках
- "номенклатура 3" в 4 чеках
В 36 чеках отсутствуют другие номенклатурные позиции
Есть отбор по магазинам
Отчет должен работать по всем магазинам за квартал. С небольшими данными справляется, а вот если ставлю за квартал по всем магазинам, то получаю ошибку "недостаточно памяти" (выполняю на сервере).
Я начинающий, так что мог криво написать запрос. Подскажите что можно исправить?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот