Имя: Пароль:
1C
1C 7.7
v7: как получить документ основание
,
0 yalanton
 
19.04.15
15:45
Добрый день в 1с 7.7. Все просто есть документ1(акт) На осноании документа1 сделан документ2(счет) через ввод на основании Вопрос как позиционируясь в цикле на документ2(на счет)  получит документ1(акт) на основнии которого он был создан . Наоборот понятно через ВыбратьПодчиненныеДокументы   , а пото как основание получить . спасибо
1 Euguln
 
19.04.15
15:49
Реквизит ДокументОснование. Не?
2 yalanton
 
19.04.15
15:49
т.е стоя на документ2(счет) программно надо получить документ1   (акт)и из него инфу
3 yalanton
 
19.04.15
15:53
нету такого реквизита ДокументОснование
4 yalanton
 
19.04.15
15:57
вот у справочника есть атрибуты владелец ,родитель а как у дока документоснование получить
5 kobzon2
 
19.04.15
16:08
Процедура ЗаполнитьПоДокументуОснованию(ДокОснование)
    Если ДокОснование.Выбран() = 0 Тогда
        Возврат;
    КонецЕсли;

    Если ДокОснование.Вид() = "акт" Тогда
              БлаБлаБла
        КонецЕсли;
КонецПроцедуры
6 yalanton
 
19.04.15
16:18
не то   kobzon2
Счет=Создатьобъект("Документ.Счет");
Счет.ВыбратьДокументы();
Пока Счет.ПолучитьДокумент()>0 Цикл
     //вот тут как со счета попасть в документ его основавший    т.а. акт
     Примерно  Акт= Счет.ДокументОсновние но так не работает в 7.7  
КонецЦикла
7 kobzon2
 
19.04.15
16:28
(6) С какого это не работает?
8 AntiBuh
 
19.04.15
16:34
(6) потому что не Документ, а Док
9 yalanton
 
19.04.15
16:35
Счет.ДокументОсновние - так не работает  уж не знаю с какого
10 Dmitry1c
 
19.04.15
16:36
тест
11 kobzon2
 
19.04.15
16:36
(8) "потому что не Документ, а Док" - не правда!
(6) (8) - отладчик возьмите в руки.
12 yalanton
 
19.04.15
16:39
мы про 7-ку хоть говорим надеюсь
13 AntiBuh
 
19.04.15
16:41
(11) сравни своё (5) и его (6)
14 kobzon2
 
19.04.15
16:41
(12) А я 8-ку и не знаю.
15 AntiBuh
 
19.04.15
16:42
+(13) если ДокОснование.Выбран(), а Счет.ДокументОсновние - нет, без отладчика всё ясно
16 kobzon2
 
19.04.15
16:42
(13) Я ему пример показал процедуры заполнения.
Код у него рабочий. Если основание есть, то оно найдется. Если нет будет просто:  Акт= Счет.ДокументОсновние =
17 AntiBuh
 
19.04.15
16:49
а вообще б ТС показал бы что именно "не работает"
18 kobzon2
 
19.04.15
16:51
Вот такую обработку сделай и запусти:
//*******************************************
Процедура Сформировать()
      Док = СоздатьОбъект("Документ.Счет");
      Док.ВыбратьДокументы();
      Пока Док.ПолучитьДокумент() = 1 Цикл  
          Докосн = Док.ДокументОснование;
          Сообщить(Докосн.Вид());
          Сообщить(Докосн.НомерДок);
      КонецЦикла;
КонецПроцедуры
//*******************************************
19 kobzon2
 
19.04.15
16:51
(17) +1
20 yalanton
 
19.04.15
16:56
Док = СоздатьОбъект("Документ.НалоговаяНакладная");
      Док.ВыбратьДокументы(д1,д2);
      Пока Док.ПолучитьДокумент() = 1 Цикл  
          Докосн = Док.ДокументОснование;
          Сообщить(Докосн.Вид());
          Сообщить(Докосн.НомерДок);
      КонецЦикла;


вот сделал только вместо счета НалоговаяНакладная
Ошибка
Докосн = Док.ДокументОснование;
{G:\1C\К\777.ERT(132)}: Поле агрегатного объекта не обнаружено (ДокументОснование)
21 ДенисЧ
 
19.04.15
16:58
Мда... Вместо того, чтобы угадывать - не проще в конфигураторе посмотреть, как (если есть) называется реквизит?
22 AntiBuh
 
19.04.15
17:01
(20) вот не поленился и типовую открыл
ДокОснование
23 kobzon2
 
19.04.15
17:02
А у нас хоть типовая?))
24 Хряк
 
19.04.15
17:04
ввод документа на основании не означает, что он обязательно сохраниться в реквизите
25 Абыр
 
19.04.15
17:09
(0) Документ-основание можно получить, если:
- в документе предусмотрен реквизит для хранения ссылки на документ-основание (или предусмотрен общий реквизит);
- этот реквизит был корректно заполнен при вводе на основании.
26 yalanton
 
19.04.15
17:10
вот в этом и проблема Хряк что есть рекизит РодительскийДокумент  но там не всегда есть информация - как служебной командой узнать документ основание ?
27 yalanton
 
19.04.15
17:12
Абыр  реквизит есть но не всегда корректно заполнен при вводе на основании. - что делать ?  т.е у счета есть рекв РодительскийДокумент куда д.б. записан акт по идеи но не всегда там есть инфа
28 ДенисЧ
 
19.04.15
17:14
(27) нет инфы - нет документа
29 yalanton
 
19.04.15
17:15
плохо  почему есть команда  ВыбратьПодчиненныеДокументы  а наоборот например выбрать документоснование нет такой команды
30 Абыр
 
19.04.15
17:17
(26) если имеются навыки, то можно прямым запросом. индекс по childid в 1s_crdoc есть, искать будет быстро
31 yalanton
 
19.04.15
17:18
нет таких навыков если только напишешь как :)
32 yalanton
 
19.04.15
17:20
а может команда есть какая нибудь - ?
33 yalanton
 
19.04.15
17:31
не пойму все равно если я стоя на документе основание могу выбрать подчиненные ВыбратьПодчиненныеДокументы т.е стоя на акте могу выбрать счета которые ввел на основании этого акта
значит есть связь значи я должен как то смочь наоборот стоя на   счет выбрать его документ основание акт  даже если в счете не заполнен рекизит для хранения ссылки на документ основание
34 Хряк
 
19.04.15
17:32
если реквизит пустой, - ничего ты не узнаешь
35 yalanton
 
19.04.15
17:34
ВыбратьПодчиненныеДокументы   но при пустом реквизите команда же работает
36 Креатив
 
19.04.15
17:39
Подчинённые документы - это те, у которых в каком-либо реквизите есть ссылка на данный документ.
37 yalanton
 
19.04.15
17:39
как же тогда обратная связь устроена от дока основания к его подчиненным связь же работает  даже если у подчинных доков не  заполнен рекизит для хранения ссылки на документ основание
38 yalanton
 
19.04.15
17:42
У меня есть рекизит в подчиненном доке РодительскийДокумент он иногда пуст но даже с пустым значением реквизита они попадают в список подчиненных    т.е. связь в одну сторону есть а в другую нет
39 Креатив
 
19.04.15
17:43
(37)Ссылка может быть в ЛЮБОМ реквизите. Возможно даже табличной части, но тут надо проверять.
40 ДенисЧ
 
19.04.15
17:47
(39) Не надо проверять...
41 yalanton
 
19.04.15
17:49
нету других реквизитов
42 yalanton
 
19.04.15
17:49
ДенисЧ а как надо  ?
43 yalanton
 
19.04.15
18:00
Креатив Спасибо ты прав был другой рекизит просто "Заказ"
  Вообщем результат у подчиненног дока  должен быть реквизит и он должен быть заполнен только тогда есть связь между подчиненным доком и доком основанием
44 yalanton
 
19.04.15
18:03
подскажите еще плиз как мне перебрать проводки конкретного дока в 7.7.  на котором стою ?
45 Хряк
 
19.04.15
18:20
найти операцию
выбрать проводки
46 yalanton
 
19.04.15
18:28
А как найти операцию ?
47 Хряк
 
19.04.15
18:32
синаксис-помощник потерял?
48 GreyK
 
19.04.15
19:10
(47) Не плохо-бы спросить ДенисЧ, больно ловко украли...
Да и продаёт он их, что наводит на мысель :)
49 ifso
 
19.04.15
19:40
(48) чета сегодня по клюшакм не продает ^^
выходной, не?)
50 ИсчадиеADO
 
19.04.15
19:46
(30)+ 1с++
51 ИсчадиеADO
 
19.04.15
20:03
как пример http://catalog.mista.ru/public/85668/ только нужено поле PARENTVAL  
описание таблиц http://www.script-coding.com/v77tables.html
я вот так сурово получал http://www.1cpp.ru/docum/icpp/html/ODBC.html
52 ИсчадиеADO
 
19.04.15
20:05
хм, миста подменяет в адресе ис?
53 Сияющий Асинхраль
 
19.04.15
20:21
(29) Огорчу автора ВыбратьПодчиненныеДокументы тоже работает только в том случае, если реквизит типа Документ основание в документе 2 таки предусмотрен, если не предусмотрен выбор работать не будет, ибо без этого реквизита связь между документами существует только в момент ввода на основании, а после записи ее нет :-(