Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
1

Не получается добавить две колонки в запрос

31.08.2017, 11:28. Просмотров 1194. Ответов 52
Метки нет (Все метки)

Люди добрые, помогите пожалуйста.. Уперся совсем, не знаю как быть..

1. Сейчас почему-то выводятся только те товары, у которых есть цена и положительный остаток. А нужно, чтобы вся номенклатура показывалась!
2. Как добавить третью колонку Цена закуп., если ЦеныНоменклатуры.Цена уже занята розничной и ищется в ГДЕ ЦеныНоменклатуры.ВидЦены.Наименование = "Розничная"?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
    ЦеныНоменклатуры.Цена КАК ЦенаРозн
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
            ПО (ЦеныНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура)
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
    И ЦеныНоменклатуры.ВидЦены.Наименование = "Розничная"
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2017, 11:28
Ответы с готовыми решениями:

Отгрузка товаров, продукции - добавить 2 колонки
Доброго времени суток. Ребята подскажите как найти хотя бы где это есть, что бы...

Ошибка Неверное имя колонки При добавлении колонки ТЗ
Народ, подскажите что не правильно, Выдет ошибку.Результат отчета помещаю в...

Не получается запрос во внешней обработке
Привет Создала внешнюю обработку. На форме три поля: НачПериода (тип Дата),...

Запрос получается но принцип хотелось бы прояснить
Доброго дня! Итак, следуя совету Уважаемого Zap я решил спросить уже сделав...

Запрос. Пытаюсь из трех абсолютно разных строк, получить две
Ребята, помогите пожалуйста. У меня есть запрос. Я получаю этим запросом три...

52
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 11:40 2
Burkaton, это происходит из-за левого соединения таблиц и дальнейшего условия отбора по полям неосновной таблицы. Во всех условиях для полей неосновной таблицы делайте проверку на NULL: ЕСТЬNULL(ЦеныНоменклатуры.ВидЦены.Наименование,"Розничная") = "Розничная" - может задать параметр или ввести предопределенное значение?)
И еще: регистр цен разве не периодический? Почему вы используете основную физическую таблицу регистра, а не виртуальную.. СрезПоследних, с указанием параметров таблицы?

Добавлено через 2 минуты
Цитата Сообщение от Burkaton Посмотреть сообщение
2. Как добавить третью колонку Цена закуп.
Еще раз соединить с таблицей цен номенклатуры, но с отбором по другому виду цен. И еще раз подумать об использовании виртуальных таблиц регистра сведений.
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 11:42  [ТС] 3
Уважаемый GreenkA, прошу Вас внесите нужные изменения в мой код.. умоляю.. Уже третий день бьюсь над этим, глаза болят
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 11:44 4

Не по теме:

Цитата Сообщение от Burkaton Посмотреть сообщение
уважаемый GreenkA
Увы, я девушка:D



Цитата Сообщение от Burkaton Посмотреть сообщение
умоляю..
Не надо печалиться, сейчас все будет наверное. Только расскажите подробно задачу, где этот запрос и для чего он вам нужен.
1
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 11:54  [ТС] 5
Собственно в списке номенклатуры необходимо вывести три колонки: Цена розничная, Цена закупочная, Остаток.

С остатком я разобрался - всё нормально показывается, но вот с ценами... Либо вообще номенклатура не показывается, либо только с положительным остатком и ценой... И чисто синтаксически не понимаю, как записать две ссылки цен с выборкой из разных мест.. Как-то так

Добавлено через 2 минуты
Цитата Сообщение от GreenkA Посмотреть сообщение
Увы, я девушка
Так это же даже лучше)) Как по мне так, интереснее. Мне ещё ни разу девушка на форуме не помогала))

Добавлено через 4 минуты
1С:Предприятие 8.3 (8.3.10.2299)
Управление торговлей, редакция 11 (11.3.4.21)
Режим Файловый (без сжатия)
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 12:00 6

Не по теме:

Цитата Сообщение от Burkaton Посмотреть сообщение
Мне ещё ни разу девушка на форуме не помогала))
Все бывает в первый раз... У меня, выходит, почетная миссия:D



Добавлено через 4 минуты
И все-таки мне нужны ответы:
1. Регистр ЦеныНоменклатуры периодический?
2. Виды цен Розничная, Закупочная не предопределенные элементы справочника?
3. Где используется этот запрос?
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 12:06  [ТС] 7
Цитата Сообщение от GreenkA Посмотреть сообщение
1. Регистр ЦеныНоменклатуры периодический?
2. Виды цен Розничная, Закупочная не предопределенные элементы справочника?
3. Где используется этот запрос?
Похоже, это за гранью моего понимания.. Сейчас буду искать в конфигурации ответы))
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 12:07 8
Burkaton, ладно, вы указали конфигурацию, сама найду.
1
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 12:09  [ТС] 9
3. Справочники-Номенклатура-Формы-Форма списка
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 12:41 10
Лучший ответ Сообщение было отмечено Burkaton как решение

Решение

Burkaton,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Остаток,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Розн.Цена, 0) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних_Закуп.Цена, 0) КАК ЦенаЗакупочная
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаРозничная) КАК ЦеныНоменклатурыСрезПоследних_Розн
        ПО (ЦеныНоменклатурыСрезПоследних_Розн.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &ЦенаЗакупочная) КАК ЦеныНоменклатурыСрезПоследних_Закуп
        ПО ЦеныНоменклатурыСрезПоследних_Закуп.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}
Дальше в форме списка перейдите в модуль и найдите Процедуру - ПриСозданииНаСервере(...) и пропишите где-нибудь в конце:
1C
1
2
    СписокНоменклатура.Параметры.УстановитьЗначениеПараметра("ЦенаЗакупочная", Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"));
    СписокНоменклатура.Параметры.УстановитьЗначениеПараметра("ЦенаРозничная", Справочники.ВидыЦен.НайтиПоНаименованию("Розничная"));
И не забудьте вынести новую колонку "ЦенаЗакупочная" на форму.
1
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 13:27  [ТС] 11
При открытии списка номенклатуры, вылезает ошибка (Обнаружено дублирование ключевых значений в колонках: "Ссылка". Отображение данных в списке невозможно)

Добавлено через 30 минут
Оленька где же Выыыы
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 13:39 12
Burkaton, запрос один в один, как у меня?

Добавлено через 1 минуту
или вы используете все равно физическую таблицу регистра цен, а не СрезПоследних?
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 15:39  [ТС] 13
Да, полностью. Скопировал-вставил. Без мусора. Колонки вынес на таблицу..

Может дать Вам TeamViewer? ))

Добавлено через 56 секунд
Хотя... У нас база на сетевом компьютере и долго грузится при открытии. Соответственно после каждого внесения изменений я минуты 3 жду...(

Добавлено через 8 минут
Попробовал отладку - остановка по ошибке - не срабатывает...

Добавлено через 5 минут
Пробовал даже удалять эту колонку "Ссылка".. ничего не меняется((

Добавлено через 7 минут
Может у меня в номенклатуре что-то не то.. какие-то данные задвоены? Как проверить можно?

Добавлено через 50 минут
В конструкторе запросов поставил галку в выборка записей - "без повторяющихся". Теперь всё показывает отлично кроме закупочной цены.. Подозреваю, что запрос не может ее найти.. Как устроен механизм поиска?

И да.. насчет галочки... Не знаю, нормально-ли это? По уму-ли?

Добавлено через 25 минут
Всё нашёл.. Может как-то иначе можно находить вид цены, кроме как по названию? Например по идентификатору для формул? А то изменим когда-нибудь название, потом замучаемся ошибку искать...))
Оленька, спасибо Вам от всей души!!! Вы замечательный человек!!! Дай Вам Бог, чтобы всё задуманное получалось!
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 17:43 14
Burkaton, я так понимаю, за время моего отсутствия все заработало?)
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
31.08.2017, 17:49  [ТС] 15
Да именно так, только подозреваю, что немного некрасиво я сделал, поставив ту галочку... Что скажете?
И стоит-ли оставлять поиск вида цены по наименованию?

1C
1
СписокНоменклатура.Параметры.УстановитьЗначениеПараметра("ЦенаЗакупочная", Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"));
Или лучше по идентификатору для формул? А то изменим когда-нибудь название, потом замучаемся ошибку искать...))
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
31.08.2017, 17:51 16
По поводу вида цен и заголовков: думаю, лучше вынести их в какую-нибудь настройку и получать значения оттуда. К примеру: вынести два поля на форму с видом цен и сохранять эти значения, чтобы не выбирать каждый раз.
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
01.09.2017, 15:58  [ТС] 17
Оль, а как можно реализовать отображение характеристик номенклатуры в списке?
У каждой номенклатуры может быть несколько характеристик.. Вот думаю, что нужно отображать в списке каждую характеристику одного и того-же товара новой строкой... Как быть?
0
Миниатюры
Не получается добавить две колонки в запрос  
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
01.09.2017, 16:21 18
Burkaton, "Характеристики номенклатуры" - это уже совсем другой справочник. У вас форма списка справочника "Номенклатура", зачем вам там характеристики?
Ведь основная таблица динамического списка формы списка справочника "Номенклатура" - должна быть таблица справочника "Номенклатура", а не "Характеристики номенклатуры"...
0
Burkaton
0 / 0 / 1
Регистрация: 28.06.2017
Сообщений: 245
01.09.2017, 16:32  [ТС] 19
Ну как же зачем? У меня например есть на складе 10 карандашей. 5 синих и 5 красных. Как в списке номенклатуры смотреть остаток, если отображаетс "карандаш: 10шт"? Прайс смотреть не вариант каждый раз. Нужно видеть оставшиеся цвета в списке номенклатуры..
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
03.09.2017, 11:18 20
Burkaton, какая задача? Это форма подбора товаров или форма списка справочника Номенклатура?
Если просто соединить левым соединением со справочником "характеристики Номенклатуры" - у вас будет ровно такая же ошибка - про дублирование ключевого поля Ссылка. Чтобы понять, почему это произойдет - надо понять принципы соединения таблиц в запросе. Вы представляете, что происходит при ЛЕВОМ, ВНУТРЕННЕМ, ПОЛНОМ соединении таблиц по ключевому полю в запросе 1с?
Для основной таблицы динамического списка недопустимо дублирование ключевого справочника - Ссылка. Надо придумывать другой механизм: либо это будет не динамический список, а просто таблица с описанием действий по клику(тут опять же надо знать задачу), тогда на вид это будет как таблица с несколькими строками по каждой Номенклатуре и ее Характеристикам; можно сделать "дерево", где верхним уровнем будет Номенклатура, а далее - строки по ее характеристикам и остаткам, опять же надо кодить; можно оставить динамический список, но ниже сделать доп. отображение Характеристик выбранной выше Номенклатуры.
На что хватит ума и фантазии в рамках поставленной задачи.
0
03.09.2017, 11:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2017, 11:18

Добавить запрос.Текс
Подскажите Запрос = Новый Запрос ("ВЫБРАТЬ |Параметры.ИндексПараметра...

Как Добавить Периодичность В Запрос?
Здравствуйте. Я сейчас обучаюсь в одной фирме франчайзи. Есть запрос в УТ 11,...

Как добавить периодичность в запрос?
Здравствуйте. Я сейчас обучаюсь в одной фирме франчайзи. Есть запрос в УТ 11,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru