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


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
ИДДокумента() наоборот
25. Июня 2007 :: 10:30
Печать  
Подозреваю что туплю ..но никак не могу догнать, как получить строку с видом документа, если есть его внутренний ИД(число)? Ужас
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #1 - 25. Июня 2007 :: 10:40
Печать  
alexdd писал(а) 25. Июня 2007 :: 10:30:
Подозреваю что туплю ..но никак не могу догнать, как получить строку с видом документа, если есть его внутренний ИД(число)? Ужас


а какие средства есть в распоряжении?
только 1С?
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: ИДДокумента() наоборот
Ответ #2 - 25. Июня 2007 :: 11:08
Печать  
Цитата:

а какие средства есть в распоряжении?
только 1С?
Цитата:


1С, 1С++.. а какие нужны?
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #3 - 25. Июня 2007 :: 11:10
Печать  
у меня доки по 1С++ нет под рукой, но по-моему там был вариант с объект из ид, хотя могу ошибаться
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: ИДДокумента() наоборот
Ответ #4 - 25. Июня 2007 :: 11:21
Печать  
нашелУлыбка

Код
Выбрать все
Метадата = СоздатьОбъект("MetaDataWork");
Метадата.ЗначениеИзСтрокиБД(12,ИД,"").Вид()
 



  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #5 - 11. Февраля 2009 :: 12:09
Печать  
Ребята!!! Помогите пожалуйста понять почему тогда не получается получить вид документа по его внутреннему идентификатору из нетекущей другой базы 1с(хотя в текущей всё проходит да и присоединяется "гостевой" МД гарантом-т.к. работают другие методы и вытягивают данные), используя аналогичный код alexdd.
Код следующий:
Метадата=СоздатьОбъект("MetaDataWork");
Метадата.ПрисоединитьМД("E:\data\Склад\config\1Cv7.MD");
Метадата.ЗначениеИзСтрокиБД(12,ИД,"").Вид()
и счастья нету  Плачущий выдаёт ошибку: Значение не представляет агрегатный объект (Вид)

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #6 - 11. Февраля 2009 :: 12:17
Печать  

Код
Выбрать все
ЗнДок = Метадата.ЗначениеИзДлиннойСтрокиБД(12,ИД);
 


где Ид содержит 13 символьный идентефикатор документа.
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #7 - 11. Февраля 2009 :: 12:37
Печать  
Спасибо большое Z1  Подмигивание, что так оперативно отреагировали !
Но почему-то так и не смог получить вид дока, когда вместо ИД ставлю явно "3024"(в sql ID=3024 реально наблюдаю и знаю, что ето "ПриходНаСклад") и ЗначениеИзДлиннойСтрокиБД ничего не возвращает  Нерешительный
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #8 - 11. Февраля 2009 :: 12:47
Печать  
vladimir-boy писал(а) 11. Февраля 2009 :: 12:37:
Спасибо большое Z1  Подмигивание, что так оперативно отреагировали !
Но почему-то так и не смог получить вид дока, когда вместо ИД ставлю явно "3024"(в sql ID=3024 реально наблюдаю и знаю, что ето "ПриходНаСклад") и ЗначениеИзДлиннойСтрокиБД ничего не возвращает  Нерешительный

до конца не понимаю ( лучше напиши маленький тестовый пример )
если речь идет о документе то не ID а  IDDOC
если через вид документа тогда
Код
Выбрать все
ЗнДок = Метадата.ЗначениеИзСтрокиБД(12,196,ИД_9);
или
ЗнДок = Метадата.ЗначениеИзСтрокиБД("Документ","Счет",ИД_9);
 



  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #9 - 11. Февраля 2009 :: 12:51
Печать  
ps ИД_9 идентеф документа 9 символов
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #10 - 11. Февраля 2009 :: 13:29
Печать  
Ещё раз Сенкс за терпение!!!
Поподробней опишу свою проблему:
У меня 2(две) 1с 7.7 sql-базы:
1)Бухгалтерия e:\data\Бухгалтерия\config\*.*(1Cv7.MD,1cv7.DDS..);
2)Склад E:\data\Склад\config\(1Cv7.MD,1cv7.DDS..);
Мне из Бухгалтерии надо подключиться к Складской базе и
просмотреть все документы из Журнала документов _1sjourn
и выбрать доки которые допустим создал какой-то менеджер
код следующий:
СКЛ = СоздатьОбъект("ODBCRecordSet");
БазаСКЛ= СоздатьОбъект("ODBCDatabase");
Соед=БазаСКЛ.Соединение(СокрЛП(ПараметрыSQLПодключения_К_БАЗЕ_СКЛАД));
СКЛ.УстБД1с(БазаСКЛ);
ТекстЗапроса="SELECT Ж.ДатаДок as [ДАТА $Дата], Ж.Номер НОМЕР,Ж.Вид ВИД, ..";
СКЛ.ПолучитьРезультатыВ_ТЗ(Моя_Таблица_Значений,1);
----------------------------------------------------------------
извините, что текст запроса не написал потому что пользуюсь "вьюшками" (views) и там можно запутаться, 
но проблема, что в таблице значений вместо вида документа ВидДок IDDocDef (с Датой документа я нашёл выход!) появляется его внутренний 1с идентификатор да ещё и привязанный к 1cv7.md файлу базы Склад(например-3024), как мне получить его ВидДок в
читабельном варианте!!!
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #11 - 11. Февраля 2009 :: 13:56
Печать  
Для справочников получай название в отдельную колонку таблицы значений ( descr )
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #12 - 11. Февраля 2009 :: 13:57
Печать  
Улыбка да мне надо для ДОКУМЕНТОВ
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #13 - 11. Февраля 2009 :: 14:01
Печать  
тогда выводи колонки дата и номер документа.
вид документа не разу не пробовал самый простой способ
составь таблицу соответвия номеру вида документа названию вида
и по ней востанавливай вид документа.
может кто и лучше ответит но ты точно должен назвать
какая версия у тебя 1с++ ( потому что в разных версиях по этой теме ) разный функционал
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #14 - 11. Февраля 2009 :: 14:07
Печать  
v 2.5.0.7 и кстати заметил, что дата выходила как "20011015AJV73K   V98" , но в текте запроса я использовал
SELECT Ж.ДатаДок as [ДАТА $Дата]
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #15 - 11. Февраля 2009 :: 14:10
Печать  
.. и дата приобрела нормальный вид '15.10.1001' так как же можна
с iddocdef разделаться!????????????
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #16 - 11. Февраля 2009 :: 14:23
Печать  
select
...
iddocdef [ВидДокумента $ВидДокумента],
iddocdef [ПредставлениеВида $ВидДокументаПредставление],
...
  

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #17 - 11. Февраля 2009 :: 14:26
Печать  
даты документов из позиций имхо этичней получать так:
select
...
cast(left(date_time_iddoc,8) as datetime) ДатаДок,
...
  

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


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #18 - 11. Февраля 2009 :: 14:35
Печать  
Спасибо Друзья!!!
Но к моему удивлению Ужас поля в Таблице Значений -ВидДокумента и ПредставлениеВида выходят пустыми.. Ужас
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #19 - 11. Февраля 2009 :: 14:43
Печать  
выведи в тз для отладки еще поле iddocdef
или еще лучше поле ltrim(iddocdef)
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #20 - 11. Февраля 2009 :: 14:43
Печать  
Может из ДРУГООООООООООООЙ базы эти методы работают некорректно!?
Кто-то реально сталкивался с такой траблой???????
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #21 - 11. Февраля 2009 :: 14:48
Печать  
Поле Журнал.Вид as ВИД (_1sjourn.iddocdef) выводится на ура, но только внутренними идентификаторами 3024,3669,.. (Документ "ПриходНаСклад" соотв. 3024, "РасходСоСклада" 3669)!!!
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #22 - 11. Февраля 2009 :: 14:50
Печать  
vladimir-boy писал(а) 11. Февраля 2009 :: 14:43:
Может из ДРУГООООООООООООЙ базы эти методы работают некорректно!?
все работает корректно.

Просто ты подключил только БД
Код
Выбрать все
СКЛ = СоздатьОбъект("ODBCRecordSet");
БазаСКЛ= СоздатьОбъект("ODBCDatabase");
Соед=БазаСКЛ.Соединение(...);
СКЛ.УстБД1с(БазаСКЛ); 


А нужно подключать ИБ (т.е. данные и метаданные)
Код
Выбрать все
БазаСКЛ= СоздатьОбъект("ODBCDatabase");
БазаСКЛ.ПрисоединитьИБ("E:\data\Склад\config\");
СКЛ = СоздатьОбъект("ODBCRecordSet");
СКЛ.УстБД(БазаСКЛ) 

  

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


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #23 - 11. Февраля 2009 :: 15:14
Печать  
УРА!!!!!!!!! Получилось!!!!!!!! Смех
МЕГА СПАСИБО всем участникам!!! Очень довольный
TRAD крепко жму тебе руку!!! Ты просто ГЕНИЙ!!! Круглые глаза
Z1 тебе тоже пасиб за помощь!!!
  
Наверх
 
IP записан
 
vladimir-boy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 22
Зарегистрирован: 11. Февраля 2009
Re: ИДДокумента() наоборот
Ответ #24 - 11. Февраля 2009 :: 15:17
Печать  
Кстати я на форуме первый денёк а как поощрить спасителяне вижу или не пойму(ну типа "плюсануть") Круглые глаза
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ИДДокумента() наоборот
Ответ #25 - 11. Февраля 2009 :: 15:42
Печать  
vladimir-boy писал(а) 11. Февраля 2009 :: 15:17:
Кстати я на форуме первый денёк а как поощрить спасителяне вижу или не пойму(ну типа "плюсануть") Круглые глаза
извини за меркантильность, но есть единственный способ Улыбка
http://www.1cpp.ru/index.php/1cpp:Donations

ps
если что, не за себя ратую
  

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