Имя: Пароль:
1C
1С v8
Как в выборке перебрать документы с разными метаданными ?
0 yavasya
 
25.07.14
20:09
Например, в одном доке есть реквизит, а в другом его нет.
Если Выборка.Ссылка.метаданные().СуммаДокумента тогда ...
Иначе
......
конецесли;
ЗначениеЗаполнено(Выборка.СуммаДокумента) не работает, и Выборка.СуммаДокумента)=неопределено не работает и Выборка.СуммаДокумента)= NULL не работает;
как сделать проверку ?
1 yavasya
 
25.07.14
20:10
ПутьКФайлу="D:\ForExcel\Файл.xls";
       Попытка
        Эксель = Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Книга = Эксель.WorkBooks.Add();
        
    Лист = Книга.WorkSheets(1);
    Лист = Книга.Sheets.Add();
    
          

    
    
    
    
    //код от GROOVY !!!!
    Запрос = Новый Запрос;
    ФлагПервыйВход = Истина;
    Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (";
    Для каждого Док из Метаданные.Документы Цикл
        Если НЕ ФлагПервыйВход Тогда
            Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ ";
        КонецЕСли;
        ФлагПервыйВход = Ложь;
        Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Ссылка ИЗ Документ." + Док.Имя + " ГДЕ НачалоПериода(Дата, ДЕНЬ) = &Дата ";
    КонецЦикла;
    Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос УПОРЯДОЧИТЬ ПО ВложенныйЗапрос.Ссылка.Дата";
    Запрос.УстановитьПараметр("Дата", НачалоДня(ДатаНачала);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    НомерСтроки = 1;
    Пока Выборка.Следующий() Цикл
        
        ДокСсылка = Выборка.Ссылка;
        
        Лист.Cells(НомерСтроки, 1).Value = Выборка.Ссылка.Метаданные().Имя;
        Лист.Cells(НомерСтроки, 2).Value = Выборка.Номер;
        Лист.Cells(НомерСтроки, 3).Value = Выборка.Дата;
        Лист.Cells(НомерСтроки, 4).Value = Выборка.СуммаДокумента;
        
        НомерСтроки = НомерСтроки + 1;

    КонецЦикла;    
    
    
    
    Попытка
        Книга.SaveAs(ПутьКФайлу);
    Исключение
        Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
    КонецПопытки;
    
    Эксель.Application.Quit();
2 Cyberhawk
 
25.07.14
20:11
Обращайся к реквизиу через точку в попытке. Если реквизита нет - попадешь в исключение.
3 Asmody
 
25.07.14
20:12
В типовых есть функция ЕстьРеквизитДокумента() или что-то типа того
4 yavasya
 
25.07.14
20:17
Попытка
   Лист.Cells(НомерСтроки, 4).Value = Выборка.СуммаДокумента+0;
Исключение
   возврат;
КонецПопытки;
5 Asmody
 
25.07.14
20:26
(4) нахер возврат?
6 yavasya
 
25.07.14
20:40
из за возврат; дальше не шло . спасибо(5)
7 yavasya
 
25.07.14
20:41
{Форма.Форма.Форма(49)}: Ошибка при установке значения атрибута контекста (Value)
        Лист.Cells(НомерСтроки, 1).Value = Выборка.Ссылка.Метаданные().Имя;
по причине:
Произошла исключительная ситуация (0x800ac472)
8 yavasya
 
25.07.14
20:41
что это может быть ?
9 yavasya
 
25.07.14
20:46
Строкой сделал , помогло
10 yavasya
 
25.07.14
20:46
Можно было код GROOVY заменить запросом по всем докуменатм ?
11 yavasya
 
25.07.14
20:49
Запрос данный получает все документы за один день , как сделать за период ?
12 Asmody
 
25.07.14
20:52
(11) условие в запросе поменять
Где дата между &датаначала и &датаокончания
13 yavasya
 
25.07.14
20:53
(12) спасибо ешё раз!
14 ДенисЧ
 
25.07.14
20:59
(12) И чему у нас равно ДатаОкончания?
15 yavasya
 
25.07.14
20:59
вот теперь думаю выгрузить док экселя в Таблицу значений и сравнить , нужно выявить различающиеся объекты, то есть ,что изменили бухгалтера
16 yavasya
 
25.07.14
21:02
базу товарищу помогаю восстанавливать, у него с 14.07.2014 есть архив, надо сравнить доки , у какого дока поменялась дата с номером , или не хватает дока на дату , хочет он докалачивать врукопашную,
17 yavasya
 
25.07.14
21:05
{Форма.Форма.Форма(51)}: Ошибка при установке значения атрибута контекста (Value)
        Лист.Cells(НомерСтроки, 1).Value = Строка(Выборка.Ссылка.Метаданные().Имя);
по причине:
Произошла исключительная ситуация (0x800ac472)
18 yavasya
 
25.07.14
21:13
главное выгрузил 5 тыщ, а потом выругался, дальше не хочет выгрузку делать
19 vicof
 
25.07.14
22:17
Просто тывася. Отладчик в зубы и вперед.
20 yavasya
 
25.07.14
22:43
(19)  )))
21 yavasya
 
25.07.14
22:44
просто сделал док видимым, и мышкой контролил процесс, мышкой перестал по доку лазить . выгрузилось
22 alle68
 
26.07.14
04:50
(1) А где в запросе поля "Номер", "Дата", "СуммаДокумента"?
Как работает, н., "Value = Выборка.СуммаДокумента"?
Да и "Выборка.Ссылка.Метаданные().Имя" - явно что-то не то.
Независимо от того, куда вы едете — это в гору и против ветра!