Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Табличная часть документов (число прочтений - 2610 )
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Табличная часть документов
08. Сентября 2010 :: 17:30
Печать  
Помогите плиз, необходимо из двух документов (точнее из их ТЧ) выбрать Номенклатуру и Сумму за период и отбором по Номенклатуре расположенной в диалоге отчета. Очень надо
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #1 - 08. Сентября 2010 :: 18:05
Печать  
Логики чуть не пойму. Поясни, я правильно понимаю:
1) Из двух ТЧ документов выбираем номенклатуру.
2) По заданному периоду и номенклатуре из п.1 выбираем весь приход/расход... (что?)
так?

Или так:
1) По заданному периоду выбираем два (почему только два?) документа, где в ТЧ есть заданная номенклатура.
2) Вычисляем сумму по номенклатуре из п.1
?

А вообще постановка задачи для телепата, Саша. А потом программисты жалуются , что им хреново объясняют суть проблемы.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #2 - 08. Сентября 2010 :: 18:07
Печать  
sql? dbf?
  

1&&2&&3
Наверх
 
IP записан
 
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Re: Табличная часть документов
Ответ #3 - 08. Сентября 2010 :: 18:20
Печать  
1) По заданному периоду выбираем два (почему только два?) документа, где в ТЧ есть заданная номенклатура.
2) Вычисляем сумму по номенклатуре из п.1

Я тоже не пойму никакой логики, но очень нужна помощь. SQL
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #4 - 08. Сентября 2010 :: 18:22
Печать  
А если  в заданном периоде таких документов больше двух, то как поступать? Первые два, последние?
  
Наверх
 
IP записан
 
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Re: Табличная часть документов
Ответ #5 - 08. Сентября 2010 :: 18:29
Печать  
Сорри, два ВИДА документов (Реализация и Возврат от покупателя). Ступил сам немного Улыбка
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #6 - 08. Сентября 2010 :: 18:39
Печать  
если речь о двух видах документов, то: (пишу по памяти)
Код
Выбрать все
ТекстЗапроса="
|select
|  isnull($Стр1.Номенклатура, $Стр2.Номенклатура) [Номенклатура $Справочник.Номенклатура],
|  sum(isnull($Стр1.Сумма, $Стр2.Сумма)) Сумма
|from _1sjourn j (nolock) -- выбираем из журнала
|left join $ДокументСтроки.ВидДок1 Стр1 (nolock) on Стр1.iddoc = right(j.date_time_iddoc,9) -- присоединяем одну ТЧ
|left join $ДокументСтроки.ВидДок2 Стр2 (nolock) on Стр2.iddoc = right(j.date_time_iddoc,9) -- присоединяем другую ТЧ
|join #tmp1 on #tmp1.val = isnull($Стр1.Номенклатура, $Стр2.Номенклатура) -- отбираем по номенклатуре
|where j.date_time_iddoc between :НачДата and :КонДата~ -- за период
|  and j.iddocdef in ($ВидДокумента.ВидДок1, $ВидДокумента.ВидДок2) -- два вида документов
//|  and j.closed != 0 -- если нужны только проведенные
|group by isnull($Стр1.Номенклатура, $Стр2.Номенклатура) -- группируем по номенклатуре
|";
рс=СоздатьОбъект("ODBCRecordset");
рс.УложитьСписокОбъектов(Список,"tmp1","Номенклатура");
рс.УстановитьТекстовыйПараметр("НачДата",НачДата);
рс.УстановитьТекстовыйПараметр("КонДата",КонДата);
Рез=рс.ВыполнитьИнструкцию(ТекстЗапроса);
 

  

1&&2&&3
Наверх
 
IP записан
 
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Re: Табличная часть документов
Ответ #7 - 08. Сентября 2010 :: 18:45
Печать  
Спасибо ща попробую, я пытался как в 8-ке через объединение
  
Наверх
 
IP записан
 
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Re: Табличная часть документов
Ответ #8 - 08. Сентября 2010 :: 18:47
Печать  
Еще такой вопрос, суммы надо разбить на две колонки для каждого вида документа. Наверное все таки через объединение
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #9 - 08. Сентября 2010 :: 18:56
Печать  
|select
|  isnull($Стр1.Номенклатура, $Стр2.Номенклатура) [Номенклатура $Справочник.Номенклатура],
|  sum($Стр1.Сумма) Сумма1,
|  sum($Стр2.Сумма) Сумма2
  

1&&2&&3
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #10 - 08. Сентября 2010 :: 18:58
Печать  
Тогда возьми и разбей строку:
Код
Выбрать все
sum(isnull($Стр1.Сумма, $Стр2.Сумма)) Сумма 


на две:
Код
Выбрать все
sum($Стр1.Сумма) Сумма1,
sum($Стр2.Сумма) Сумма2 

« Последняя редакция: 09. Сентября 2010 :: 06:09 - JohnyDeath »  
Наверх
 
IP записан
 
AVenger
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 40
Зарегистрирован: 08. Января 2009
Re: Табличная часть документов
Ответ #11 - 08. Сентября 2010 :: 19:02
Печать  
Спасибо
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличная часть документов
Ответ #12 - 08. Сентября 2010 :: 19:03
Печать  
Дим, за тобой не успеешь!  Очень довольный
« Последняя редакция: 09. Сентября 2010 :: 06:09 - JohnyDeath »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать