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

Автор Тема: Выбрать данные из 2-х регистров  (Прочитано 2239 раз)

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

Оффлайн dello

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

ВЫБРАТЬ
        ЕСТЬNULL(Цены.Цена, ЦеныБазовые.ЦенаБазовая) КАК Цена,
   ПродажиСЦенами.Контрагент КАК Контрагент,
   ПродажиСЦенами.Номенклатура КАК Номенклатура,
   ПродажиСЦенами.Период КАК Период,
   ПродажиСЦенами.ЦенаПродажи КАК ЦенаПродажи,
   СУММА(ПродажиСЦенами.Площадь) КАК Площадь
ИЗ
   Продажи КАК ПродажиСЦенами
      ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены
      ПО ПродажиСЦенами.Контрагент = Цены.ПартнерПоЦенам
         И ПродажиСЦенами.Формула = Цены.БазоваяФормула
      ЛЕВОЕ СОЕДИНЕНИЕ ЦеныБазовые КАК ЦеныБазовые
      ПО ПродажиСЦенами.Категория = ЦеныБазовые.КатегорияПартнеров
         И ПродажиСЦенами.Формула = ЦеныБазовые.ФормулаБазовыхЦен

СГРУППИРОВАТЬ ПО
   ПродажиСЦенами.Контрагент,
   ПродажиСЦенами.Номенклатура,
   ПродажиСЦенами.Период,
   ПродажиСЦенами.ЦенаПродажи,
        ЕСТЬNULL(Цены.Цена, ЦеныБазовые.ЦенаБазовая)

Запрос с временными таблицами не стал их сюда пихать.


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Нужно понять, почему задваиваются данные.
Создай копию запроса, выполни без группировок, выбрав все поля - из обоих регистров цен. Затем сравни 2 строки с одинаковыми значениями ключевых полей.

В общем, не хватает какого-то условия либо в соединениях, либо под ГДЕ надо добавить после - чтобы ровно 1 строка получалась всегда. Для этого нужно видеть полную структуру данных.

Оффлайн dello

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-05-16
  • Сайт: 
  • Профессия: Программист 1С
Цена   Контрагент   Номенклатура   Период   ЦенаПродажи   Площадь
582   ДОНСТРОЙ, ООО   с\п 1         26.08.2013    985,6          1,6993
580   ДОНСТРОЙ, ООО   с\п 1        26.08.2013  985,6          1,6993

Это результат с группировкой, площадь сложилась. Если цены для контрагента есть в двух регистрах и они разные, вот получается 2 строки. А надо бы только первую. Если в одном из регистров данных нету, или они одинаковы, тогда всё норм, срабатывает СГРУППИРОВАТЬ и получается 1 строка.

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Есть подозрение, что изначально в таблице Продажи 2 разных строки - в одной заполнен Контрагент, в другой - Категория. Как следствие, после соединения так же остается 2 строки, при чем в одной Цена = Цены.Цена, в другой Цена = ЦеныБазовые.ЦенаБазовая, далее по условиям группировок обе строи остаются.

Таким образом, надо изначально выбрать * из таблицы Продажи и проверить, что там.

Если мое предположение верно, то надо сначала обеспечить одновременное наличие в каждой строке Продажи значений Контрагент и Категория, а потом уже присоединять слева таблицы Цены и ЦеныБазовые


Теги:
 

Как перенести данные из 7.7 типовая УСН 1.3 в 1С 8 типовая бухгалтерия

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

Ответов: 0
Просмотров: 4833
Последний ответ 13 Фев 2010, 07:58
от Александр бухгалтер
"Лишние" данные в зарплате

Автор Мария_ХРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 3784
Последний ответ 05 Апр 2014, 11:11
от Славянка
"Данные по коду не найдены"

Автор elteawРаздел Пользователям "1С - Предприятие 8"

Ответов: 6
Просмотров: 8101
Последний ответ 03 Дек 2015, 13:58
от Timofey Gurubanov
Куда сохраняются данные в режиме работы клиент при выгрузке данных обработкой "Универсальный обмен данными в формате XML"

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

Ответов: 3
Просмотров: 6952
Последний ответ 13 Ноя 2014, 08:23
от cska-fanat-kz
Как при помощи СКД при формировании макета отчета данные связанного набора данных вывести в Параметр через ";"

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

Ответов: 0
Просмотров: 961
Последний ответ 01 Мар 2016, 14:33
от sveta C

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal