Имя: Пароль:
1C
1С v8
Создание Документов через com-соединение
, , ,
0 Novi4ek2015
 
08.04.15
14:13
Через com-соединение отбираю документы оприходования на определенную дату.На основании их надо создать документы Партия. Но не получается прочитать дату и контрагентов и документов оприходования.Конфигурация 8.2.
ВнешЗапрос = Подключение.NewObject("Запрос");
    ВнешЗапрос.УстановитьПараметр("ДатаОстатков",ДатаВводаОстатков + 1);
    ВнешЗапрос.Текст = "
    |ВЫБРАТЬ
    |        ПартииТоваровНаСкладахОстатки.ДокументОприходования.Ссылка КАК Партия
    |        
    |    ИЗ
    |        РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаОстатков, ) КАК ПартииТоваровНаСкладахОстатки
    |    ГДЕ
    |        ПартииТоваровНаСкладахОстатки.КоличествоОстаток > 0
    |Сгруппировать по
    |      ПартииТоваровНаСкладахОстатки.ДокументОприходования.Ссылка
    |УПОРЯДОЧИТЬ ПО
    |        Партия ";    
        
      ВнешДЗЗапрос = ВнешЗапрос.выполнить().Выгрузить(Подключение.ОбходРезультатаЗапроса.ПоГруппировкам);
    ДЗОстатки = Новый ДеревоЗначений;
    ДЗОстатки.Колонки.Добавить("Партия");

    для каждого ВнешУзелПартия из ВнешДЗЗапрос.Строки цикл
        УзелПартия = ДЗОстатки.Строки.Добавить();
        УзелПартия.Партия = ПолучитьСоответствиеПоКлючу(УзелДляСоответствий,Подключение.ЗначениеВСТрокуВнутр(ВнешУзелПартия.Партия));
    КонецЦикла;
    
    
    Для Каждого УзелПартия из ДЗОстатки.Строки цикл
        ДокументПартия = Документы.Партия.СоздатьДокумент();
        ДокументПартия.Дата                =УзелПартия.Дата;
        ДокументПартия.Организация        = УзелПартия.Организация;
        //ДокументПартия.Контрагент        = УзелПартия.Контрагент;
        ДокументПартия.ПолучитьФорму().Открыть();
    КонецЦикла;
1 Михаил Козлов
 
08.04.15
14:29
Извините не понял, зачем обход по группировкам, если в запросе нет итогов? И СГРУППИРОВАТЬ в запросе непонятно зачем.
2 Stim
 
08.04.15
14:41
может все-таки
УзелПартия.Партия.Организация
и
УзелПартия.Партия.Контрагент
??
3 Stim
 
08.04.15
14:41
+ хотя код вызывает массу вопросов. это неправильно
4 Novi4ek2015
 
08.04.15
15:03
ВнешДЗЗапрос = ВнешЗапрос.выполнить().Выгрузить(Подключение.ОбходРезультатаЗапроса.ПоГруппировкам);
    ДЗОстатки = Новый ДеревоЗначений;
    ДЗОстатки.Колонки.Добавить("Партия");

    для каждого ВнешУзелПартия из ВнешДЗЗапрос.Строки цикл
        УзелПартия = ДЗОстатки.Строки.Добавить();
        УзелПартия.Партия = ПолучитьСоответствиеПоКлючу(УзелДляСоответствий,Подключение.ЗначениеВСТрокуВнутр(ВнешУзелПартия.Партия.Ссылка));
    КонецЦикла;
    
    
    Для Каждого УзелПартия из ДЗОстатки.Строки цикл
        ДокументПартия = Документы.Партия.СоздатьДокумент();
        ДокументПартия.Дата                =УзелПартия.Партия.Дата;
        ДокументПартия.Организация        = УзелПартия.Партия.Организация;
        ДокументПартия.Контрагент        = УзелПартия.Партия.Контрагент;
    КонецЦикла;
        ДокументПартия.ПолучитьФорму().Открыть();
5 Novi4ek2015
 
08.04.15
15:04
Выдает ошибку: Значение не является значением объектного типа (Дата)
        ДокументПартия.Дата=УзелПартия.Партия.Дата.Ссылка;
6 Novi4ek2015
 
08.04.15
15:04
(3) Как правильно сделать?
7 salvator
 
08.04.15
15:11
(6) На (1) ответь
8 Novi4ek2015
 
08.04.15
15:26
(7) РезультатЗапроса =ВнешЗапрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДокументПартия = Документы.Партия.СоздатьДокумент();
        ДокументПартия.Дата                            = ВыборкаДетальныеЗаписи.Дата;
        ДокументПартия.Организация                    = ВыборкаДетальныеЗаписи.Организация;
    КонецЦикла;
        ДокументПартия.ПолучитьФорму().Открыть();
9 Novi4ek2015
 
08.04.15
15:27
Если так, то тоже выдает ошибку

Значение не является значением объектного типа (Дата)
ДокументПартия.Дата  = ВыборкаДетальныеЗаписи.Дата;
10 salvator
 
08.04.15
15:35
(9) Выбери дату в запросе, будь мужиком блеать!
11 Stim
 
08.04.15
15:39
открой для себя отладчик уже наконец
12 Славен
 
08.04.15
15:45
)))
13 hhhh
 
08.04.15
16:02
ПолучитьСоответствиеПоКлючу что там?
14 Сергиус
 
08.04.15
17:07
(5)Может там не Дата, а Date.