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


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Получить документ по номеру
21. Мая 2008 :: 09:47
Печать  
Есть список, в котором номера документов одного типа (реализация). Каким каком можно получить сами документы  из этого списка?
Типа такого:
Select
Док.IDdoc
From
...
Where
... AND
(Жур.DocNO=:НужныйНомер)
Только вместо НужныйНомер сравнить со списком таких номеров???
  
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Получить документ по номеру
Ответ #1 - 21. Мая 2008 :: 09:54
Печать  
уложитьСписокОбъектов(списокдлязапроса,списокномеров) и
Жур.DocNO in (select val from "+списокдлязапроса+")
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #2 - 21. Мая 2008 :: 10:00
Печать  
А у тебя нумерация документов по всем данного вида или в пределах года?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #3 - 21. Мая 2008 :: 10:02
Печать  
Да нумерация в пределах года.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #4 - 21. Мая 2008 :: 10:05
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 10:02:
Да нумерация в пределах года.

Ну тогда тебе явно одних номеров недостаточно, нужны ещё даты
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #5 - 21. Мая 2008 :: 10:41
Печать  
kriblya писал(а) 21. Мая 2008 :: 09:54:
уложитьСписокОбъектов(списокдлязапроса,списокномеров) и
Жур.DocNO in (select val from "+списокдлязапроса+")


А это вообще правильно? Вроде сначала должен идти списокномеров, потом имя временной таблицы?

Сообственно даже если написать РС.УложитьСписокОбъектов(СписокНомеров,"#spis"); все равно пустой результат. Видимо номера таки не являются объектами?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Получить документ по номеру
Ответ #6 - 21. Мая 2008 :: 10:52
Печать  
kriblya писал(а) 21. Мая 2008 :: 09:54:
уложитьСписокОбъектов(списокдлязапроса,списокномеров) и
Жур.DocNO in (select val from "+списокдлязапроса+")

Правильнее так
Код
Выбрать все
Жур.DocNO in (select DocNo from _1Sjourn (nolock) where iddoc in (select val from "+списокдлязапроса+")) 


Но может вместо запоминания номеров запоминать ИдДок или просто список значений со значениями типа Документ?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #7 - 21. Мая 2008 :: 10:54
Печать  
А кроме номеров ничего нет. Номера подцепляются из excel.
И все таки я не понимаю у "уложитьсписокобъектов" есть какойто еще другой синтакс?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #8 - 21. Мая 2008 :: 10:58
Печать  
УложитьСписокОбъектов
Цитата:
Описание: сохраняет список внутренних идентификаторов объектов во временной таблице MS SQL. Идентификаторы объектов из списка сохраняются во временной таблице в поле val char(9). Имя таблицы должно начинаться с символа "#".


Какой у числа или сроки внутренний идентификатор?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #9 - 21. Мая 2008 :: 10:59
Печать  
Ясно что никакого.
Не ясно как решить проблему  Плачущий
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #10 - 21. Мая 2008 :: 11:00
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 10:54:
А кроме номеров ничего нет. Номера подцепляются из excel.
И все таки я не понимаю у "уложитьсписокобъектов" есть какойто еще другой синтакс?

Нет у него другово синтексиса, пиши процедуру уложитьсписокобъектов сам

Только что ты будешь делать если найдешь два документа с такими номерами?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #11 - 21. Мая 2008 :: 11:04
Печать  
Номера уникальны в пределах года - и оперируем только в этих пределах.
Что неужели по списку номеров никак выборку не сделать?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Получить документ по номеру
Ответ #12 - 21. Мая 2008 :: 11:07
Печать  
Ну строй текст запроса программно Where DocNo=1 or DocNo=2 or...
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #13 - 21. Мая 2008 :: 11:09
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 11:04:
Номера уникальны в пределах года - и оперируем только в этих пределах.
Что неужели по списку номеров никак выборку не сделать?


Почему не сделать?
В чем вопрос?
Я так понимаю: как записать список заначений во временную таблицу?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #14 - 21. Мая 2008 :: 11:09
Печать  
Salimbek писал(а) 21. Мая 2008 :: 11:07:
Ну строй текст запроса программно Where DocNo=1 or DocNo=2 or...


Ну это да, это можно Улыбка
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #15 - 21. Мая 2008 :: 11:11
Печать  
Функция УложитьСписокЗначений(аRS, аСЗЗначений,Знач аИмяТаб, Знач аТип = "") Экспорт
     Перем сТекстЗапроса;
     Если ТипЗначенияСтр(аСЗЗначений) <> "СписокЗначений" Тогда
           Возврат 0;
     КонецЕсли;
     
     // Проверим есть ли такая таблица
     //Если  есть удалим
     аRS.Выполнить("
     |IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE
     |ID=OBJECT_ID('tempdb.."+аИмяТаб+"') AND sysstat & 0xf = 3 )
     |DROP TABLE "+аИмяТаб);
     
     
     чМаксДлина = 1;
     Для к = 1 по аСЗЗначений.РазмерСписка() Цикл
           Знач1 = аСЗЗначений.ПолучитьЗначение(к,);
           чНоваяДлина = СтрДлина(СокрЛП(Строка(Знач1)));
           Если чМаксДлина<  чНоваяДлина  ТОгда
                 чМаксДлина =  чНоваяДлина;
           КонецЕсли;      
     КонецЦикла;

     //Создание временной таблицы
     
     аRS.Выполнить("
     |CREATE TABLE "+аИмяТаб+" (ID int, Val float)
     |");
     

     //Создадим новую
     
     //Запишем данные в таблицу
     Для к = 1 по аСЗЗначений.РазмерСписка() Цикл
           Знач1 = аСЗЗначений.ПолучитьЗначение(к,);
           сТекстЗапроса = "
           |Insert  into " + аИмяТаб+ "  Values (" + Строка(к) + ", " + Строка(Знач1) + ")
           |";
           Если аRS.Выполнить(сТекстЗапроса) = 0 Тогда
                 Сообщить(аRS.ПолучитьОписаниеОшибки());
                 Возврат 0;
           КонецЕсли;
     КонецЦикла;
     
     Возврат 1;
КонецФункции      // УложитьСписокЗначений
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #16 - 21. Мая 2008 :: 11:24
Печать  
Nick писал(а) 21. Мая 2008 :: 11:11:
     чМаксДлина = 1;
     Для к = 1 по аСЗЗначений.РазмерСписка() Цикл
           Знач1 = аСЗЗначений.ПолучитьЗначение(к,);
           чНоваяДлина = СтрДлина(СокрЛП(Строка(Знач1)));
           Если чМаксДлина<  чНоваяДлина  ТОгда
                 чМаксДлина =  чНоваяДлина;


А это для чего?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #17 - 21. Мая 2008 :: 11:26
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 11:24:
Nick писал(а) 21. Мая 2008 :: 11:11:
     чМаксДлина = 1;
     Для к = 1 по аСЗЗначений.РазмерСписка() Цикл
           Знач1 = аСЗЗначений.ПолучитьЗначение(к,);
           чНоваяДлина = СтрДлина(СокрЛП(Строка(Знач1)));
           Если чМаксДлина<  чНоваяДлина  ТОгда
                 чМаксДлина =  чНоваяДлина;


А это для чего?


Это можешь смело удалять и ставить длину какая тебе нравится!
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #18 - 21. Мая 2008 :: 11:32
Печать  
Error converting data type varchar to float

|CREATE TABLE "+аИмяТаб+" (ID int, Val varchar)
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Получить документ по номеру
Ответ #19 - 21. Мая 2008 :: 11:43
Печать  
Этот вариант тоже не катит. Результат пустой.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Получить документ по номеру
Ответ #20 - 21. Мая 2008 :: 12:18
Печать  
Тебе нужен бубен! Улыбка
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Получить документ по номеру
Ответ #21 - 21. Мая 2008 :: 12:23
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 11:43:
Этот вариант тоже не катит. Результат пустой.

Этот вариант - это какой?
  
Наверх
ICQ  
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Получить документ по номеру
Ответ #22 - 21. Мая 2008 :: 12:48
Печать  
RuporAbsurda писал(а) 21. Мая 2008 :: 09:47:
Есть список, в котором номера документов одного типа (реализация). Каким каком можно получить сами документы  из этого списка?


1. нада список документов запихать в список значений
2. затем этот список преобразуй в строку списокдок с разделителями и замени двойную кавычку на одинарную.

ну и запрос:
Код
Выбрать все
ТекстЗапр="
|SELECT
|  j.IDDOC,
|  j.iddocdef
|FROM _1sjourn j
|WHERE j.DOCNO In ("+списокдок+")
|  AND LEFT(j.DATE_TIME_IDDOC,4)='"+год+"'
|"; 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать