Имя: Пароль:
1C
1C 7.7
v7: Как перебрать справочник иерархически в 7.7 и документы?
0 yavasya
 
28.10.14
06:03
//*******************************************
Функция СобратьПереоценки()  
                                                  
       ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Номер");
    ТЗ.НоваяКолонка("Дата");
    ТЗ.НоваяКолонка("УИНДок");
    ТЗ.НоваяКолонка("Организация");  
    ТЗ.НоваяКолонка("Склад");  
    ТЗ.НоваяКолонка("СуммаРозница");  
    ТЗ.НоваяКолонка("Время");  
    
    _Док = СоздатьОбъект("Документ.АктОПереоценке");
    _Док.УстановитьФильтр(1,0);
    _Док.ВыбратьДокументы(НачДата,КонДата);
    Пока _Док.ПолучитьДокумент() = 1 Цикл                          
        
        Если _Док.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли;
        
        ТЗ.НоваяСтрока();
        ТЗ.Номер = СокрЛП(_Док.НомерДок);
        ТЗ.Дата  = Формат(_Док.ДатаДок, "d YYYYMMDD");
        ТЗ.УИНДок      = ПолучитьУИН(_Док.ТекущийДокумент());
        ТЗ.Организация = СокрЛП(ВыбФирмы.ИНН);
        ТЗ.Склад       = ПолучитьУИН(_Док.Склад);
        ТЗ.СуммаРозница= _Док.Итог("Сумма_Разницы");  
        ч = 0; м = 0; с = 0;
        _Док.ПолучитьВремя (ч, м, с);
        ТЗ.Время = Прав("0" + ч,2) + Прав("0"+м,2) + Прав("0"+с,2);
        
    КонецЦикла;
                
    Возврат ТЗ;
    
КонецФункции //СобратьПереоценки
непонятно конструкция, но она работает.
почему создать документ? а не выбрать документы? остальное всё понятно.

следующее


//*******************************************
Функция СобратьКлиентовДоговоры()
    
    ТЗКонтрагенты = СоздатьОбъект("ТаблицаЗначений");
    ТЗКонтрагенты.НоваяКолонка("УИНКлиента");  
    ТЗКонтрагенты.НоваяКолонка("ВидКлиента");  
    ТЗКонтрагенты.НоваяКолонка("ЭтоГруппа");
    ТЗКонтрагенты.НоваяКолонка("Наименование");
    ТЗКонтрагенты.НоваяКолонка("ПолнНаименование");
    ТЗКонтрагенты.НоваяКолонка("ИНН");
    ТЗКонтрагенты.НоваяКолонка("КПП");
    ТЗКонтрагенты.НоваяКолонка("ОКПО");
    ТЗКонтрагенты.НоваяКолонка("Телефон");
    ТЗКонтрагенты.НоваяКолонка("Адрес");  
    ТЗКонтрагенты.НоваяКолонка("УИНДоговор");
    ТЗКонтрагенты.НоваяКолонка("Договор");  
    ТЗКонтрагенты.НоваяКолонка("Организация");
    
    СпрКлиенты = СоздатьОбъект("Справочник.Клиенты");
    СпрКлиенты.ВыбратьЭлементы();  
    Пока СпрКлиенты.ПолучитьЭлемент() = 1 Цикл
        
        _Стр = 0;
        Если мПоставщики.НайтиЗначение(СпрКлиенты.ТекущийЭлемент(), _Стр, "Клиент") = 0 Тогда
            Продолжить;
        КонецЕсли;
        
        ТЗКонтрагенты.НоваяСтрока();
        ТЗКонтрагенты.УИНКлиента        = ПолучитьУИН(СпрКлиенты.ТекущийЭлемент());
        ТЗКонтрагенты.ВидКлиента        = "Поставщик";
        ТЗКонтрагенты.ЭтоГруппа         = ?(СпрКлиенты.ЭтоГруппа() = 1, "Истина", "Ложь");
        ТЗКонтрагенты.Наименование      = СокрЛП(СпрКлиенты.Наименование);
        ТЗКонтрагенты.ПолнНаименование  = СокрЛП(СпрКлиенты.ФИО);
        ТЗКонтрагенты.ИНН               = СокрЛП(СпрКлиенты.ИНН);
        ТЗКонтрагенты.КПП               = СокрЛП(СпрКлиенты.КПП);
        ТЗКонтрагенты.ОКПО              = СокрЛП(СпрКлиенты.КодОКПО);
        ТЗКонтрагенты.Телефон           = СокрЛП(СпрКлиенты.Телефон);
        ТЗКонтрагенты.Адрес             = СокрЛП(СпрКлиенты.Адрес);
        ТЗКонтрагенты.УИНДоговор        = ПолучитьУИН(СпрКлиенты.ОсновнойДоговор);
        ТЗКонтрагенты.Договор           = СокрЛП(СпрКлиенты.ОсновнойДоговор);
        ТЗКонтрагенты.Организация       = СокрЛП(ВыбФирмы.ИНН);
                            
    КонецЦикла;  
    
    Возврат ТЗКонтрагенты;



снова эта строчка !! почему создать элемент?
СпрКлиенты = СоздатьОбъект("Справочник.Клиенты");
СпрКлиенты.ВыбратьЭлементы();
1 VladZ
 
28.10.14
06:13
_ИмяПеременной = СоздатьОбъект(ИмяОБъекта) - создает переменную с типом нужного объекта.  Семерка - это не восьмерка, где можно ваять конструкции вида документы.АвансовыйОтчет.Выбрать().

Сначала инициализируем переменную с нужным типом объекта. Потом с ним работаем.
2 VladZ
 
28.10.14
06:16
По аналогии с VB:

Set AppWord - CreateObject ("Word.Application")
3 VladZ
 
28.10.14
06:17
упс. Опечатка...
Set AppWord = CreateObject ("Word.Application")
4 yavasya
 
28.10.14
11:45
спасибо!
Основная теорема систематики: Новые системы плодят новые проблемы.