Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Июн 2018, 02:09
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Условие в запросе  (Прочитано 2769 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Подскажите пожалуйста как правильно написать условие в запросе. Конфа УТ 10.3 уф.
Мне нужно получить ячейку"место хранения" при условии что она основная или если же таковой нет то тогда просто одну другую,по определенному складу, т.е. в размещении номенклатуры указано несколько ячеек на одном и том же складе


Оффлайн LexaK

  • *****
  • Сообщений: 1297
  • РЕПУТАЦИЯ: 356
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
а где сам запрос?
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
а где сам запрос?
еще пока делается.. теперь другой вопрос если можно? как запросом получить одну любую ячейку, по определенному складу?? их может быть несколько...

Оффлайн LexaK

  • *****
  • Сообщений: 1297
  • РЕПУТАЦИЯ: 356
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
"выбрать первые 1 ..."

а вообще, если вы серьезно хотите заниматься программированием в 1С, сначала надо освоить все базовые механизмы, программирования, запросов, СКД и т.д.

только потом уже браться за решение прикладных задач.
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
ВЫБРАТЬ ПЕРВЫЕ 1
РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка КАК МестоХранения
ПОМЕСТИТЬ яч
ИЗ
РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
ГДЕ
РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ЛОЖЬ
;

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

СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Артикул,
ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмеренияМест,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка,
ВЫБОР
КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА
ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
ИНАЧЕ яч.МестоХранения
КОНЕЦ

Получаю только у одного место хранения,у которого назначена основная ячейка...а остальные не получаю


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
ВТ выбирает 1(одно) любое место хранения
РН левое соединение РС - нормальная связь, а вот РС левое соединение ВТ - связяь ненормальная в ВТ всего одна запись и шанс что ячейка принадлежит сладу отбора - мизерная. в запросе для ВТ яч установите отбор по складу.
Добавлено: 26 Фев 2015, 13:39

Поправка. Сделай условие связи РС с ВТ как: "Истина=Истина"

Последний раз редактировалось: vitasw; 26 Фев 2015, 13:39. Причина: Объединение сообщений

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
ВТ выбирает 1(одно) любое место хранения
РН левое соединение РС - нормальная связь, а вот РС левое соединение ВТ - связяь ненормальная в ВТ всего одна запись и шанс что ячейка принадлежит сладу отбора - мизерная. в запросе для ВТ яч установите отбор по складу.

ВЫБРАТЬ
ВЫБОР
КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ЛОЖЬ
ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
ИНАЧЕ РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
КОНЕЦ КАК МестоХранения,
РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад,
РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура
ПОМЕСТИТЬ яч
ИЗ
РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
ГДЕ
РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад

СГРУППИРОВАТЬ ПО
РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура,
РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад,
ВЫБОР
КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ЛОЖЬ
ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
ИНАЧЕ РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Артикул КАК Артикул,
ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачОстатокУчет,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоУчет,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриходУчет,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасходУчет,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
0 КАК Количество,
ВЫБОР
КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА
ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
ИНАЧЕ яч.МестоХранения
КОНЕЦ КАК МестоХранения
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , , Склад = &Склад {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
ВНУТРЕННЕЕ СОЕДИНЕНИЕ яч КАК яч
ПО РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = яч.Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура = яч.Номенклатура
И РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка = яч.МестоХранения
ПО (РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
И (РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад)

СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Артикул,
ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаИзмеренияМест,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка,
ВЫБОР
КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА
ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
ИНАЧЕ яч.МестоХранения
КОНЕЦ

Сделал так. Работает, но не совсем правильно. Теперь в добавок Дублируются номенклатура у которой несколько ячеек на одном складе

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Верните все взад и прочитайте мою попровку

Оффлайн LexaK

  • *****
  • Сообщений: 1297
  • РЕПУТАЦИЯ: 356
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
зачем так программу писать?
...
 ВЫБОР
        КОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = &Склад
                И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА
            ТОГДА РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка
        ИНАЧЕ яч.МестоХранения
    КОНЕЦ КАК МестоХранения
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , , Склад = &Склад {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
            ЛЕВОЕ СОЕДИНЕНИЕ яч КАК яч
            ПО РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка = яч.МестоХранения
        ПО (РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
            И (РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад)
...

правильнее и проще (для вашего случая),

...
ЕстьNull(РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка,яч.МестоХранения)КАК МестоХранения
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , , , Склад = &Склад {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
    ПО (РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
    И (РазмещениеНоменклатурыПоСкладскимЯчейкам.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад)
    И РазмещениеНоменклатурыПоСкладскимЯчейкам.ОсновнаяЯчейка = ИСТИНА
ЛЕВОЕ СОЕДИНЕНИЕ яч КАК яч
    ПО Истина
...

изучайте СКЛ (язык запросов), понимайте что и как вы хотите от него получить, тогда будет результат (и даже правильный) :befhbt:
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Сделай условие связи РС с ВТ как: "Истина=Истина"
прости не понял



Теги:
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 5024
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1354
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Объединить и Объединить все в одном запросе

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 364
Последний ответ 16 Янв 2018, 21:35
от Tsaiger
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 2714
Последний ответ 26 Апр 2018, 06:45
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3350
Последний ответ 27 Окт 2015, 10:29
от vitasw

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

AIFrame AIFrame
125 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
123 Сообщений
alexandr_ll
61 Сообщений
pavl_vs
47 Сообщений
alex0402
28 Сообщений
buketov.av buketov.av
24 Сообщений
magnifico61
21 Сообщений
wise wise
20 Сообщений
trialex3
15 Сообщений
ilyay ilyay
15 Сообщений

* Кто онлайн

  • Точка Гостей: 221
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal