Имя: Пароль:
1C
1С v8
Интеграция 1С:Документооборот 8 с LanDocs
0 slimuz
 
11.08.16
09:01
Доброе утро.
Подскажите пожалуйста кто-нибудь решал задачу интеграции 1С:Документооборот 8 с LanDocs? Написал маленькую обработку, создаёт документ в LanDocs, импортирует наименование из справочника ИсходящиеДокументы через OLE. Проблема в импортировании вложенного файла. Если прописывать в строке Operation.SetStr( "FileName", - путь к файлу с указанием расширения (с локального комп.), в LanDocs импортируется этот файл. Но нужно забирать вложенный файл из 1С:Документооборот 2.0. Файлы перенёс в том хранения файлов (на локальный пк). Подскажите пожалуйста, что в запросе не так. Я новичок в 1с.
[code]
Application = Новый COMОбъект( "LanDocs2.LDApplication" );
                Application.UserLogin( "...", "..." );
                                                                        
         Запрос = Новый Запрос;          
        Запрос.Текст = "ВЫБРАТЬ
    |ИсходящиеДокументы.Наименование КАК Наименование1,
    |ИсходящиеДокументы.ДополнительныеРеквизиты.(
    |    Значение.ТекущаяВерсияТом.ПолныйПутьWindows
    |) КАК ПутьКФайлу
        |ИЗ
    |Справочник.ИсходящиеДокументы КАК ИсходящиеДокументы";
        РезультатЗапроса=Запрос.Выполнить();
        Выборка=РезультатЗапроса.Выбрать();                                                        
      
        Пока Выборка.Следующий() Цикл
          
                Operation = Application.CreateOpByName( "NEWDOCUMENT" );

                Operation.ParamByName( "JOURNALID" ).ID = 25132471;

                Operation.SetStr( "LDERC.RegDate"    , "2016-07-15" );

                Operation.SetInt( "LDERC.DocumTypeID", 42345913      );

                Operation.SetStr( "LDERC.DescrDoc"   , Выборка.Наименование1      );

                Operation.Run();                    

                ID = Operation.MainParam.ID;
              
                Operation = Application.CreateOpByName( "EDITDOCUMENT" );

                Operation.MainParam.ID = ID;

                Operation.SetStr( "LDERC.DocN", "Тестовый" );

                Operation.Run();
              
                Operation = Application.CreateOpByName( "NEWFILE" );

                Operation.SetInt( "DocID", ID );

                Operation.SetStr( "FileName", Выборка.ПутьКФайлу );

                Operation.Run();                                
              
        КонецЦикла;
[/code]
1 Горогуля
 
11.08.16
09:02
из ИсходящиеДокументы.ДополнительныеРеквизиты
2 slimuz
 
11.08.16
09:20
Что вы имеете ввиду ? Запрос создан через конструктор запроса
3 Горогуля
 
11.08.16
09:30
обращайся к ТЧ
4 slimuz
 
11.08.16
10:02
Попробовал вот так:
[code]
        Запрос.Текст = "ВЫБРАТЬ
    |ИсходящиеДокументы.Наименование КАК Наименование1,
    |ДополнительныеРеквизиты.ТекущаяВерсияТом.ПолныйПутьWindows КАК ПутьКФайлу
        |ИЗ
    |Справочник.ИсходящиеДокументы.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты,
    |Справочник.ИсходящиеДокументы КАК ИсходящиеДокументы";
[/code]
- Поле не найдено.
И так писал: ДополнительныеРеквизиты.Значение.ТекущаяВерсияТом.ПолныйПутьWindows КАК ПутьКФайлу
- Неоднозначное поле (ошибка)
5 Горогуля
 
11.08.16
10:10
в 1Ске есть очень мощное изобретение: в тексте ошибки указывается также и её причина. читай текст
Ошибка? Это не ошибка, это системная функция.