|   |   | 
| 
 | Как получить список ссылок на родительские документы | ☑ | ||
|---|---|---|---|---|
| 0
    
        Блондинистая Ромашка 17.05.11✎ 13:09 | 
        мне в итоге нужно что-то вроде структуры подчиненности.
  есть ссылка на текущий документ. так можно достать подчиненные ТаблицаПодчиненных = ПолныеПрава.ПолучитьСписокДокументовПоКритериюОтбора("СвязанныеДокументы", ДокументСсылка); а как с родительскими? | |||
| 1
    
        u2006 17.05.11✎ 13:26 | 
        Реквизит ДокументОснование имеется?     | |||
| 2
    
        Блондинистая Ромашка 17.05.11✎ 13:27 | 
        (1) нет. 
  УТ 10.3 В доке РеализацияТоваровУслуг нет такого реквизита | |||
| 3
    
        aleks-id 17.05.11✎ 13:28 | 
        фота где???     | |||
| 4
    
        FIXXXL 17.05.11✎ 13:28 | 
        (2) куда дела?     | |||
| 5
    
        Jstunner 17.05.11✎ 13:29 | 
        (2) в УТ есть типовая структура подчиненности     | |||
| 6
    
        u2006 17.05.11✎ 13:29 | 
        (2) странно, ну может просто Основание     | |||
| 7
    
        Ненавижу 1С гуру 17.05.11✎ 13:30 | 
        (2) есть другие, но можно критерий отбора, например, юзать
  и посмотри общую форму ФормаСтруктурыПодчиненности | |||
| 8
    
        FIXXXL 17.05.11✎ 13:33 | 
        (6) Сделка это называется в УТ10     | |||
| 9
    
        Reset 17.05.11✎ 13:39 | 
        (0) Перебрать все реквизиты и табличные части документа с данными - ссылками на документы. Заполненные значения будут значениями родителей.
  Если это конкретный документ, то просто посмотреть названия реквизитов в конфигураторе. | |||
| 10
    
        Блондинистая Ромашка 17.05.11✎ 13:47 | 
        видимо я здесь одна такая дура...
  (9) я не знаю как это сделать | |||
| 11
    
        hhhh 17.05.11✎ 13:49 | 
        (10) ну из типовой скопипасть. Ведь там в структуре подчиненности вытаскиваются родительские документы. Зачем ты велосипед начинаешь изобретать?     | |||
| 12
    
        Блондинистая Ромашка 17.05.11✎ 13:53 | 
        (11) 
  МетаданныеДокумента = ДокументСсылка.Метаданные(); СписокРеквизитов = Новый СписокЗначений; Для Каждого Реквизит ИЗ МетаданныеДокумента.Реквизиты Цикл ТипыРеквизита = Реквизит.Тип.Типы(); Для Каждого ТекущийТип ИЗ ТипыРеквизита Цикл МетаданныеРеквизита = Метаданные.НайтиПоТипу(ТекущийТип); Если МетаданныеРеквизита<>Неопределено И Метаданные.Документы.Содержит(МетаданныеРеквизита) И ПравоДоступа("Чтение", МетаданныеРеквизита) Тогда Попытка ЗначениеРеквизита = ДокументСсылка[Реквизит.Имя]; Исключение Прервать; КонецПопытки; ЕСли ЗначениеРеквизита<>Неопределено И НЕ ЗначениеРеквизита.Пустая() И ТипЗнч(ЗначениеРеквизита) = ТекущийТип И мУжеВСписке[ЗначениеРеквизита] = Неопределено И СписокРеквизитов.НайтиПоЗначению(ДокументСсылка[Реквизит.Имя]) = Неопределено Тогда Попытка СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ЗначениеРеквизита.Дата,"ДФ=yyyyMMddЧЧММсс")); Исключение ОтладкаТекстОшибки = ОписаниеОшибки(); КонецПопытки; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; Для Каждого ТЧ Из МетаданныеДокумента.ТабличныеЧасти Цикл СтрРеквизитов = ""; Попытка СодержимоеТЧ = ДокументСсылка[ТЧ.Имя].Выгрузить(); Исключение Прервать; КонецПопытки; Для Каждого Реквизит ИЗ ТЧ.Реквизиты Цикл ТипыРеквизита = Реквизит.Тип.Типы(); Для Каждого ТекущийТип ИЗ ТипыРеквизита Цикл МетаданныеРеквизита = Метаданные.НайтиПоТипу(ТекущийТип); Если МетаданныеРеквизита<>Неопределено И Метаданные.Документы.Содержит(МетаданныеРеквизита) И ПравоДоступа("Чтение", МетаданныеРеквизита) Тогда СтрРеквизитов = СтрРеквизитов + ?(СтрРеквизитов = "", "", ", ") + Реквизит.Имя; Прервать; КонецЕсли; КонецЦикла; КонецЦикла; СодержимоеТЧ.Свернуть(СтрРеквизитов); Для Каждого КолонкаТЧ ИЗ СодержимоеТЧ.Колонки Цикл Для Каждого СтрокаТЧ ИЗ СодержимоеТЧ Цикл Попытка ЗначениеРеквизита = СтрокаТЧ[КолонкаТЧ.Имя]; Исключение Продолжить; КонецПопытки; МетаданныеЗначения = Метаданные.НайтиПоТипу(ТипЗнч(ЗначениеРеквизита)); Если МетаданныеЗначения = Неопределено Тогда // базовый тип Продолжить; КонецЕсли; ЕСли ЗначениеРеквизита<>Неопределено И НЕ ЗначениеРеквизита.Пустая() И Метаданные.Документы.Содержит(МетаданныеЗначения) И мУжеВСписке[ЗначениеРеквизита] = Неопределено Тогда Если СписокРеквизитов.НайтиПоЗначению(ЗначениеРеквизита) = Неопределено Тогда Попытка СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ЗначениеРеквизита.Дата,"ДФ=yyyyMMddЧЧММсс")); Исключение ОтладкаТекстОшибки = ОписаниеОшибки(); КонецПопытки; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; СписокРеквизитов.СортироватьПоПредставлению(); мУжеВСписке.Вставить(ДокументСсылка, Истина); //Если СписокРеквизитов.Количество() = 1 Тогда // ВывестиРодительскиеДокументы(СписокРеквизитов[0].Значение); //ИначеЕсли СписокРеквизитов.Количество() > 1 Тогда // ВывестиБезРодителей(СписокРеквизитов); //КонецЕсли; //СтрокаДерева = мДерево.Строки.Добавить(); Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ Ссылка, Проведен, ПометкаУдаления, #Сумма, #Валюта, Представление, """ + МетаданныеДокумента.Имя + """ КАК Метаданные | ИЗ Документ."+МетаданныеДокумента.Имя + " ГДЕ Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка", ДокументСсылка); Если МетаданныеДокумента.Реквизиты.Найти("СуммаДокумента") <> Неопределено Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Сумма", "СуммаДокумента КАК СуммаДокумента"); Иначе Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Сумма", "NULL КАК СуммаДокумента"); КонецЕсли; Если МетаданныеДокумента.Реквизиты.Найти("ВалютаДокумента") <> Неопределено Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Валюта", "ВалютаДокумента КАК ВалютаДокумента"); Иначе Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Валюта", "NULL КАК ВалютаДокумента"); КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); ЕСли Выборка.Следующий() Тогда Сообщить(Выборка.Ссылка); Сообщить("******************************************"); //СтрокаДерева.Ссылка= Выборка.Ссылка; //СтрокаДерева.Проведен = Выборка.Проведен; //СтрокаДерева.ПометкаУдаления = Выборка.ПометкаУдаления; //СтрокаДерева.ДокументПредставление = Выборка.Представление; //СтрокаДерева.СуммаДокумента = Выборка.СуммаДокумента; //СтрокаДерева.ВалютаДокумента = Выборка.ВалютаДокумента; //СтрокаДерева.ВидДокумента = Выборка.Метаданные; Иначе Сообщить(Выборка.Ссылка); Сообщить("******************************************"); //СтрокаДерева.Ссылка= ДокументСсылка; //СтрокаДерева.ДокументПредставление = Строка(ДокументСсылка); //СтрокаДерева.СуммаДокумента = ДокументСсылка.СуммаДокумента; КонецЕсли; //мДерево = СтрокаДерева; скопипастила. выводит только текущий док, но не родителей. | |||
| 13
    
        FIXXXL 17.05.11✎ 13:55 | 
        (11) разве родительские вытаскиваются? вроде бы только подчиненные?
  (12)там еще посмотри Связанные документы, это ближе | |||
| 14
    
        FIXXXL 17.05.11✎ 13:57 | 
        (11) хотя нет, и родительские тянет
  но там связка непростая, к реализации могут оплаты приязаться, которые в авансах... надо ли это в (0)? | |||
| 15
    
        Блондинистая Ромашка 17.05.11✎ 14:09 | 
        (14) надо.     | |||
| 16
    
        Reset 17.05.11✎ 15:02 | 
        // В Ссылка - ссылка на текущий документ
  ТаблицаРодителей=Новый ТаблицаЗначений; ТаблицаРодителей.Колонки.Добавить("Родитель"); Объект=Ссылка.ПолучитьОбъект(); Для каждого Реквизит из Ссылка.Метаданные().Реквизиты цикл МетаданныеРеквизита=Метаданные.НайтиПоТипу(ТипЗнч(Объект[Реквизит.Имя])); Если МетаданныеРеквизита<>Неопределено И Метаданные.Документы.Содержит(МетаданныеРеквизита) тогда Если ЗначениеЗаполнено(Объект[Реквизит.Имя]) тогда ТаблицаРодителей.Добавить().Родитель=Объект[Реквизит.Имя]; КонецЕсли; КонецЕсли; КонецЦикла; Для каждого ТабличнаяЧасть из Ссылка.Метаданные().ТабличныеЧасти цикл Для каждого Строка из Объект[ТабличнаяЧасть.Имя] цикл Для каждого Реквизит из ТабличнаяЧасть.Реквизиты цикл МетаданныеРеквизита=Метаданные.НайтиПоТипу(ТипЗнч(Строка[Реквизит.Имя])); Если МетаданныеРеквизита<>Неопределено И Метаданные.Документы.Содержит(МетаданныеРеквизита) тогда Если ЗначениеЗаполнено(Строка[Реквизит.Имя]) тогда ТаблицаРодителей.Добавить().Родитель=Строка[Реквизит.Имя]; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; ТаблицаРодителей.Свернуть("Родитель"); // | |||
| 17
    
        Reset 17.05.11✎ 15:04 | 
        (16) к (10) и (9)
  Это если рассматривать термин "родительский документ" так же, как его рассматривает "СтруктураПодчиненности". | |||
| 18
    
        Блондинистая Ромашка 17.05.11✎ 15:15 | 
        ГОСПОДИ! Спасибо, что есть такие люди как Reset!!!!!!
  (17) Спасибо!!! Огромное!!! //а то у меня уже истерика началась... | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |