Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
1C 8.x

Создание отчета в СКД

11.11.2024, 20:13. Показов 3259. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, коллеги.
Требуется создать отчет в СКД, где будет выводится номенклатура без цены, которая не проводилась в системе по регистру.

Написал такой запрос
1C
1
2
3
4
5
6
7
8
9
10
11
12
ВЫБРАТЬ
    тНoменклатура.Ссылка KAK Ссылка,
    СУММА(тНoменклатура.ЦенаПoкупки) KAK ЦенаПoкупки,
    ЦеныПoставщикoвСрезПoследних.Нoменклатура KAK Нoменклатура,
    СУММА(ЦеныПoставщикoвСрезПoследних.Цена) KAK Цена
ИЗ
    РегистрСвeдeний.ЦеныПоставщиков.СрeзПослeдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ЛЕВOЕ СOЕДИНЕНИЕ Справoчник.Нoменклатура KAK тНoменклатура
        ПO ЦеныПoставщиковСрезПoследних.Нoменклaтурa = тНoменклaтурa.Ссылкa
ГДЕ
    ЦеныПoставщиковСрезПоследних.Номенклатура = НЕОПРЕДЕЛЕНО
    И тНoменклатура.ЦенаПoкупки = 0

По итогу выходит пустая таблица отчета (в режиме предприятия).
Подскажите, где я ошибся?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2024, 20:13
Ответы с готовыми решениями:

Создание отчета в СКД. Установить правильную связь
Всем привет! Подскажите как настроить правильную связь, чтобы показывало все 3 документа : "СписаниеБезналичныхДС",...

Настройка отчёта в СКД
Подскажите пожалуйста как в СКД,для пустых строк сделать вывод "0" И можно ли скрыть "НомерСтроки"?В заголовке

Расшифровка отчета на СКД
Есть отчет на скд. Внешний вид отчета: Оборудование| Нач остаток| Приход | Расход| Кон остаток Как при щелчке на любой ячейке...

56
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 13:55
Студворк — интернет-сервис помощи студентам
чего б ему не собираться, учитывая то что эта виртуальная таблица тоже подзапрос или временная табличка им сформированная. и поскольку навряд ли 1с там оконные функции использует, то он сам из себя многоэтажный с группировкой

а при использование временных таблиц нужно не забывать об их индексации, но не огульно, а с умом. без правильной индексации навряд ли временные таблицы будут оптимальней подзапросов
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4775 / 970 / 270
Регистрация: 22.04.2013
Сообщений: 6,656
Записей в блоге: 1
12.11.2024, 13:59
Maks, чо? ))
не, если нет ссылки - значит что-то не так в консерватории. неверно запрос написал

по мне так мало того, что 1С советует юзать ВТ, так с ними ещё и проще жить
видишь, что вот тут хранятся вот такие данные оттуда
вот тут - сякие отсюда
а потом или что-то с ними соединяешь, или берёшь из них, которые названы ВТ_ПриемыУвольненияНаДату
и понятно, о чём речь
чем когда вот так внутри чего-то что-то находится. фу бе.
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 14:14  [ТС]
Yulunga, в таком случае есть идеи как преобразовать вложенный запрос в ВТ?
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 14:29
вот это
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Цена КАК Цена
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Цена = 0
    И НЕ Номенклатура.Ссылка В
    (ВЫБРАТЬ 
        РегистрСведений.ЦеныПоставщиков.СрезПоследних.Номенклатура
    ИЗ
        РегистрСведений.ЦеныПоставщиков.СрезПоследних)   
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование;
без всяких подзапросов и временных таблиц преобразуется в

1C
1
2
3
4
5
6
7
8
9
10
11
12
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Цена КАК Цена
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВOЕ СOЕДИНЕНИЕ РегистрСвeдeний.ЦеныПоставщиков.СрeзПослeдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ПO ЦеныПoставщиковСрезПoследних.Нoменклaтурa = Нoменклaтурa.Ссылкa
ГДЕ
    Номенклатура.Цена = 0
    и НЕ ЦеныПoставщиковСрезПoследних.Нoменклaтурa есть null
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование
Добавлено через 1 минуту
тот срез последних можно конечно вытащить во временную таблицу, только желательно в ней по номенклатуре индекс сделать
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 15:28  [ТС]
Возвращаюсь к первой части задачи:
Цитата Сообщение от Maks Посмотреть сообщение
создаю для начала простой отчет, выводящий список номенклатуры, для которой в одноименном справочнике не установлены цены
С использованием ВТ написал такой код (свою задачу он отрабатывает):
1C
1
2
3
4
5
6
7
8
9
10
11
12
ВЫБРАТЬ
    Ссылка,
    Цена
ПОМЕСТИТЬ втНоменклатура
ИЗ
    Справочник.Номенклатура;
//////////////////////////////////
ВЫБРАТЬ * ИЗ втНоменклатура
ГДЕ
    Цена = 0  
УПОРЯДОЧИТЬ ПО
    Ссылка;
Теперь осталось сюда запихать условие, что отобранная номенклатура не фигурирует в регистре сведений ЦеныПоставщиков.

Добавлено через 11 минут
Цитата Сообщение от Аватар Посмотреть сообщение
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Цена КАК Цена
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВOЕ СOЕДИНЕНИЕ РегистрСвeдeний.ЦеныПоставщиков.СрeзПосл eдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ПO ЦеныПoставщиковСрезПoследних.Нoменклaтур a = Нoменклaтурa.Ссылкa
ГДЕ
    Номенклатура.Цена = 0
    и НЕ ЦеныПoставщиковСрезПoследних.Нoменклaтур a есть null
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование
Выходит следующее:
Поле не найдено "ЦеныПоставщиковСрезПоследних.Номенклату ра"
Добавлено через 40 минут
Аватар, разобрался, однако в предложенном Вами методе в отчет выводится номенклатура с нулевой ценой, но прошедшая по регистру ЦеныПоставщиков (в методических целях создал для них документы), номенклатура с нулевой ценой и не прошедшей по регистру в отчете нет. Если убрать "НЕ" или "ЕСТЬ NULL" (в разных вариациях) - отчет выводится пустым.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 15:36
а-а, я ж не отлаживал, там где то в ЦeныПoстaвщикoвСрeзПослeдних то ли латинская буква, то ли еще что-то затесалось, вот сделал одинаково )
1C
1
2
3
4
5
6
7
8
9
10
11
12
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Цена КАК Цена
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВOЕ СOЕДИНЕНИЕ РегистрСвeдeний.ЦеныПоставщиков.СрeзПослeдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ПO ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтурa = Нoменклaтурa.Ссылкa
ГДЕ
    Номенклатура.Цена = 0
    и НЕ ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтурa есть null
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование
Добавлено через 2 минуты
Цитата Сообщение от Maks Посмотреть сообщение
С использованием ВТ написал такой код
ой, такой лучше не надо. можно конечно, но это изврат полный ) срез последних во временную
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 15:47  [ТС]
Аватар, с синтаксическими ошибками я справился, пересобрав запрос в конструкторе, однако Ваше решение не отображает номенклатуру с нулевой ценой и не вошедшую в регистр сведений ЦеныПоставщиков.
Не подскажете, как изменить условие?
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 16:09
Цитата Сообщение от Maks Посмотреть сообщение
Не подскажете, как изменить условие?
я не знаю. то ли у меня глюк в голове, то ли 1с так умничает. это должно работать, почему не работает хз
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 16:59  [ТС]
Аватар, опытным путем выяснил, следующие выражения приводят к одному результату:
1C
1
НЕ ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтурa есть null
1C
1
НЕ ЦеныПоставщиковСрезПоследних.Номенклатура=ЛОЖЬ
1C
1
ЦеныПоставщиковСрезПоследних.Номенклатура=ИСТИНА
Отсюда я делаю вывод, что условие работает как раз для тех позиций номенклатуры, которые входят в регистр.
А нужно наоборот.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 17:07
правидьно, если не убрать, то для тех что не входят
сравнение с булевыми в общем-то и не корректно, хотя в каких то пределах и работает, субд само там разберется (или нет) с приведением типов, но нужно тщательно проанализировать насколько это будет правильно, а не охота, поэтому так не надо))
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 17:16  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
правидьно, если не убрать, то для тех что не входят
Убирал (если Вы про частицу НЕ) - отчет выходит пустым.
0
Эксперт 1С
7179 / 1781 / 649
Регистрация: 16.01.2015
Сообщений: 7,355
12.11.2024, 18:39
Maks, Запрос в #26 абсолютно правильный и должен работать, Аватар прав. Какая-то непонятка в вашей базе.
Попробуй убрать в консоли из условий "и ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтур a есть null" и посмотри, какое значение в поле ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтур a, когда нет номенклатуры. Выведи в запросе это поле. Покажи скрин результата.
Любопытно, почему правильный и довольно простой запрос без закавык и вдруг работает не так как должен
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 19:23  [ТС]
Цитата Сообщение от polax Посмотреть сообщение
Попробуй убрать в консоли из условий "и ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтур a есть null"
Убрал, в отчете отображается номенклатура с пустой ценой и занесенная в регистр.
Цитата Сообщение от polax Посмотреть сообщение
какое значение в поле ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтур a, когда нет номенклатуры. Выведи в запросе это поле. Покажи скрин результата.
Не совсем понял, как это сделать? В СКД нет возможности установить точку останова.
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 19:28
запрос то и в консоли запросов можно запускать и там уж крутить его хоть вдоль, хрть поперек )
0
Эксперт 1С
7179 / 1781 / 649
Регистрация: 16.01.2015
Сообщений: 7,355
12.11.2024, 19:32
Запрос
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Цена КАК Цена,
    ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтурa КАК НоменклатураРегистра
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВOЕ СOЕДИНЕНИЕ РегистрСвeдeний.ЦеныПоставщиков.СрeзПослeдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ПO ЦeныПoстaвщикoвСрeзПослeдних.Нoменклaтурa = Нoменклaтурa.Ссылкa
ГДЕ
    Номенклатура.Цена = 0
    
УПОРЯДОЧИТЬ ПО
    Номенклатура.Наименование
И не в СКД, а в консоле запросов. И посмотреть ЧТО в поле НоменклатураРегистра, когда номенклатура отсутствует. Должно быть NULL. Но по какой-то невероятной и непредставляемой пока причине, там, возможно, не NULL, а что-то другое (правда, не представляю КАК), иначе запрос из #26 точно работал бы
0
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 19:42  [ТС]
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(9, 2)}: Неоднозначное поле "Номенклатура.ЦенаПокупки"
<<?>>Номенклатура.ЦенаПокупки = 0
...

Добавлено через 5 минут
Цитата Сообщение от polax Посмотреть сообщение
не в СКД, а в консоле запросов
Как ее (консоль запросов) запустить?
0
Эксперт 1С
7179 / 1781 / 649
Регистрация: 16.01.2015
Сообщений: 7,355
12.11.2024, 19:43
Цитата Сообщение от Maks Посмотреть сообщение
Номенклатура.ЦенаПокупки
Откуда поле взялось? Не вижу его в запросе?

Добавлено через 1 минуту
Консоль запросов - это отдельная обработка. Набери в поисковике. Полно бесплатных. Единственное, обращай внимание для ОФ или УФ
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
12.11.2024, 19:58
Цитата Сообщение от Maks Посмотреть сообщение
Неоднозначное поле "Номенклатура.ЦенаПокупки"
там скорее всего нельзя псевдоним Номенклатура, может конфликтовать с полем Номенклатура. лучше псевдоним сделать так например тНоменклатура. ага и насчет цены - то Цена, то ЦенаПокупки
1
Супер-модератор
Эксперт 1СЭксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
9758 / 5644 / 651
Регистрация: 13.03.2013
Сообщений: 19,361
Записей в блоге: 68
12.11.2024, 20:19  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
там скорее всего нельзя псевдоним Номенклатура, может конфликтовать с полем Номенклатура.
Да, верно.
По итогу сработал следующий код запроса:
1C
1
2
3
4
5
6
7
8
9
10
11
12
ВЫБРАТЬ
    Номенклатура2.Ссылка КАК Ссылка,
    Номенклатура2.ЦенаПокупки КАК ЦенаПокупки 
ИЗ
    Справочник.Номенклатура КАК Номенклатура2
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
        ПО ЦеныПоставщиковСрезПоследних.Номенклатура = Номенклатура2.Ссылка
ГДЕ
    Номенклатура2.ЦенаПокупки = 0
    И ЦеныПоставщиковСрезПоследних.Номенклатура ЕСТЬ NULL
УПОРЯДОЧИТЬ ПО
    Номенклатура2.Ссылка
Причем, обращаю Ваше внимание, что отбор требуемой номенклатуры как раз установился без частицы "НЕ" в 10-й строчке кода.
0
Эксперт 1С
7179 / 1781 / 649
Регистрация: 16.01.2015
Сообщений: 7,355
12.11.2024, 20:28
Цитата Сообщение от Maks Посмотреть сообщение
обращаю Ваше внимание, что отбор требуемой номенклатуры как раз установился без частицы "НЕ"
Обращаю внимание. Что первоначальный запрос из #6, а именно
1C
1
2
3
4
5
6
7
8
9
10
ВЫБРАТЬ
    тНоменклатура.Ссылка КАК Ссылка,
    тНоменклатура.ЦенаПокупки КАК ЦенаПокупки
ИЗ
    Справочник.Номенклатура КАК тНоменклатура
        ЛЕВOЕ СOЕДИНЕНИЕ РегистрСвeдeний.ЦеныПоставщиков.СрeзПослeдних KAK ЦeныПoстaвщикoвСрeзПослeдних
        ПO ЦеныПoставщиковСрезПoследних.Нoменклaтурa = тНoменклaтурa.Ссылкa
ГДЕ
    тНоменклатура.ЦенаПокупки = 0
    и ЦеныПoставщиковСрезПoследних.Нoменклaтурa есть null
НИЧЕМ не отличается от победного запроса. Но почему-то не работал. Еще полторы страницы назад мог был быть достигнут результат
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2024, 20:28

скд вариант отчёта
доброго всем последнемартовского утра! чот я совсем туплю, не могу понять можно или нет надо сделать вариант отчёта смысл такой: ...

СКД убрать колонки из отчета
Добрый день. Всю голову уже сломал. Задача именно убрать колонки из отчета по чекбоксу. Скрыть, путем изменения ширины колонки, мне...

Вывод отчета СКД слева направо
Добрый день. Отчет на СКД. В поле Макеты нарисован макет. Если задать период - квартал, отчет выводится таблицами сверху вниз. Допустим ...

Вывод Отчета сформированного в СКД ландшафтом
Как можно сделать, что бы сформированный отчет выводился автоматически ландшафтном?

Два отдельных отчета СКД в один
ДД. Понимаю что куча инструкций в сети, но не могу найти понятную. В общем есть 2 отчета по скд, хочу объединить их в 1, но в разных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru