Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Как из виртуальной таблицы типизировать документ? (число прочтений - 8905 )
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как из виртуальной таблицы типизировать докуме
Ответ #15 - 22. Ноября 2006 :: 15:03
Печать  
не получилось отредактировать, предыдущий пост неверный, там немного бред, вот исправленный
Код
Выбрать все
ТекстЗапросаВсе = "
|SELECT
|	Рег.Товар as [Товар $Справочник],
|	Рег.СН as [СН $Справочник],
|	Рег.Склад as [Склад $Справочник],
|	ВсеДоки.IDDoc as [Док $Документ],
|	ВсеДоки.IDDocDef as Док_вид,
|   IsNull(Рег.КоличествоНачальныйОстаток,0) as КоличествоНачОст,
|	IsNull(Рег.КоличествоПриход,0) as КоличествоПриход,
|	IsNull(Рег.КоличествоРасход,0) as КоличествоРасход,
|	IsNull(Рег.КоличествоКонечныйОстаток,0) as КоличествоКонОст
|FROM
|   $РегистрОстаткиОбороты.ОстаткиСклад(:НачПериода,:КонПериода~,
|		Document,ActionsAndPeriodBoundaries, ,
|"	+ ТекстУсловия+",,) As Рег
|
|LEFT JOIN _1SJourn as ВсеДоки ON right(Рег.ПозицияДокумента,9) =  ВсеДоки.IDDoc
|ORDER by Товар,СН,IDDoc
|";  

  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #16 - 23. Ноября 2006 :: 07:40
Печать  
berezdetsky писал(а) 22. Ноября 2006 :: 14:49:
Bess_Tolkovaia писал(а) 22. Ноября 2006 :: 14:06:
Без _1SJourn  было бы здорово, но не знаю - как это сделать.

Озадачен Вариант, показанный в (10), у меня работает. Поле "День" там для удобства, на типизацию оно не влияет.
Покажи полный текст (с подставленным ТекстУсловия) и результат отладки.


Ну это и блондинке понятно, что поле День на типизацию Док не влияет  Улыбка

Полный текст с подставленным условием:
Код
Выбрать все
	ТекстЗапросаВсе = "
|SELECT
|	Рег.Товар as [Товар $Справочник],
|	Рег.СН as [СН $Справочник],
|	Рег.Склад as [Склад $Справочник],
|	$НачалоПериода.День(Рег.ПозицияДокумента) День,
|	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
|   Рег.ВидДокумента as ТекДокумент_вид,
|   IsNull(Рег.КоличествоНачальныйОстаток,0) as КоличествоНачОст,
|	IsNull(Рег.КоличествоПриход,0) as КоличествоПриход,
|	IsNull(Рег.КоличествоРасход,0) as КоличествоРасход,
|	IsNull(Рег.КоличествоКонечныйОстаток,0) as КоличествоКонОст
|FROM
|   $РегистрОстаткиОбороты.ОстаткиСклад(:НачПериода,:КонПериода~,
|		Document,ActionsAndPeriodBoundaries, ,
|		(Склад = $ВидСправочника36.МестаХранения + :ВыбСклад)
|		and (Товар = $ВидСправочника36.Материалы + :ВыбТовар),,) As Рег
|ORDER by Товар,СН,ПозицияДокумента
|";
 



В регистре измерения Товар, СН, склад - справочники неопределенного вида. Переменные ВыбСклад, ВыбТовар - справочники конкретных видов, выбираются в диалоге.

Результат отладки:

Код
Выбрать все
SELECT
	Рег.Товар as [Товар $Справочник],
	Рег.СН as [СН $Справочник],
	Рег.Склад as [Склад $Справочник],
	(
cast(left(Рег.ПозицияДокумента, 8) as datetime)) День,
	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
   Рег.ВидДокумента as ТекДокумент_вид,
   IsNull(Рег.КоличествоНачальныйОстаток,0) as КоличествоНачОст,
	IsNull(Рег.КоличествоПриход,0) as КоличествоПриход,
	IsNull(Рег.КоличествоРасход,0) as КоличествоРасход,
	IsNull(Рег.КоличествоКонечныйОстаток,0) as КоличествоКонОст
FROM
   #T503EC005BBDB4F4480703B3884B08193 As Рег
ORDER by Товар,СН,ПозицияДокумента
 



Ошибка:
Для типизации поля "Док", не найдено дополнительное типизирующее поле.

вот... Озадачен
  
Наверх
ICQ  
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #17 - 23. Ноября 2006 :: 07:54
Печать  
Цитата:
не получилось отредактировать, предыдущий пост неверный, там немного бред, вот исправленный...


Спасибо, это работает.  Очень довольный Что-то такое тоже было у меня в промежуточных вариантах, но почему-то я пришла к выводу, что в этом случае в результат попадают ВСЕ документы из регистра за указанный период?... А! у меня сначала условие неправильно формировалось, поэтому получалось в результате куча лишнего. Условие я исправила, а вот дальше не додумала.  Смущённый
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как из виртуальной таблицы типизировать докуме
Ответ #18 - 23. Ноября 2006 :: 08:43
Печать  
Заметь, у меня написано
Код
Выбрать все
|	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
|	Рег.ВидДокумента as Док_вид,
 

, а у тебя
Код
Выбрать все
|	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
|   Рег.ВидДокумента as ТекДокумент_вид,
 


Натуральная блондинка, 1 штука  Со сжатыми губами
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #19 - 23. Ноября 2006 :: 08:54
Печать  
berezdetsky писал(а) 23. Ноября 2006 :: 08:43:
Заметь, у меня написано
Код
Выбрать все
|	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
|	Рег.ВидДокумента as Док_вид,
 

, а у тебя
Код
Выбрать все
|	Right(Рег.ПозицияДокумента, 9) as [Док $Документ],
|   Рег.ВидДокумента as ТекДокумент_вид,
 


Натуральная блондинка, 1 штука  Со сжатыми губами


Ну дык я и не скрываю  Подмигивание
Мало того - еще похоже и любительница повторно наступать на одни и те же грабли.   Ужас Ой, больно!
Ведь уже выяснила, что имена имеют значения в данном случае! Ведь смотрела же - рядом запросы поставила и сравнивала по-строчно.... Кажется, очки нужно менять... или голову... или хотя бы перекраситься, что ли...
  
Наверх
ICQ  
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #20 - 23. Ноября 2006 :: 09:26
Печать  
АГа. Запрос отрабатывает. Вот только результат странный выдает....  Озадачен
По тем СН, по которым не было остатков начальных, почему-то в результирующей таблице 2 записи:
                  Нач.ост.| Приход| Расход| Кон.ост.
1) Акт передачи...     0                1               0           1
2) <тут пусто>             1                0                0          1

И как это понимать?

В том варианте, который у меня получился - с _1SJourn и подзапросом, и в варианте Славко - в принципе тоже самое, только порядок строк другой. Смотрится еще страньше - была 1, пришла 1, и осталась 1...  Озадачен

Использую я компоненту версии 2.0.2.2.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как из виртуальной таблицы типизировать докуме
Ответ #21 - 23. Ноября 2006 :: 10:26
Печать  
Bess_Tolkovaia писал(а) 23. Ноября 2006 :: 09:26:
АГа. Запрос отрабатывает. Вот только результат странный выдает....  Озадачен
По тем СН, по которым не было остатков начальных, почему-то в результирующей таблице 2 записи:
                  Нач.ост.| Приход| Расход| Кон.ост.
1) Акт передачи...     0                1               0           1
2) <тут пусто>             1                0                0          1

И как это понимать?
Цитата:
ДвиженияИГраницыПериода (ActionsAndPeriodBoundaries) - в таблицу включаются обороты по каждому периоду движений и текущие остатки; также таблица дополняется записями о ненулевых остатках на начало и/или конец на границы периода расчета.

При детализации до документа в этих добавленных строках ПозицияДокумента содержит только дату - это не позиция реального документа. Поэтому я и предлагал поле "День".
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #22 - 23. Ноября 2006 :: 11:04
Печать  
Дык читала. Поэтому и удивляюсь.
Но вот ч то поулчается. По СН НЕ БЫЛО начальных остатков на начало периода

Если бы было так:

Док                 | Нач.ост.| Приход| Расход| Кон.ост.
1) Акт передачи...     0                1               0           1
2) <тут пусто>         0                0                0          1

это бы я поняла

Но ведь выдает в одном варианте:

Док                 | Нач.ост.| Приход| Расход| Кон.ост.
1) Акт передачи...     0                1               0           1
2) <тут пусто>         1                0                0          1

а в другом и того круче:

Док                 | Нач.ост.| Приход| Расход| Кон.ост.
1) <тут пусто>         1                0                0          1
2) Акт передачи...     0                1               0           1


  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как из виртуальной таблицы типизировать докуме
Ответ #23 - 23. Ноября 2006 :: 11:25
Печать  
Bess_Tolkovaia писал(а) 23. Ноября 2006 :: 11:04:
Дык читала. Поэтому и удивляюсь.
Но вот ч то поулчается. По СН НЕ БЫЛО начальных остатков на начало периода

А на дату конца периода были?

Попробуй добавить поле "День".
Напиши Actions вместо ActionsAndPeriodBoundaries.
Сравни результаты.
Перечитай документацию.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Как из виртуальной таблицы типизировать докуме
Ответ #24 - 23. Ноября 2006 :: 12:11
Печать  
На дату конца периода - были. Но ведь на начало - не было...

Цитата:
Попробуй добавить поле "День".

Получается аналогично, но там хоть логично - после того, как введена запись документом, на следующий день начальный остаток уже есть. Но меня такой результат не устраивает.
Мне нужны остатки на начало и конец периода и движения, если они были.
Actions даст только движения.
Придется 2 запроса делать и объединять. Ну и ладно.  Со сжатыми губами
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать