Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выгрузка контагентов в текстовый файл
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
inna.innainna84
необходимо зарегистрироваться для просмотра ссылки

// ===============================
Процедура ВыгрузкаОбщиеTLKA()
    ТекстВыгрузки=СоздатьОбъект("Текст");
    СтрокаТекста="";
    ФайлВыгрузки=СокрЛП(КаталогОбщиеTLKA)+СокрЛП(ИмяФайлаОбщиеTLKA);
    Если ФС.СуществуетФайл(ФайлВыгрузки)=1 Тогда
        Если Вопрос("Файл с таким именем существуе! Заменить?",4)<>6 Тогда
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    Запрос=СоздатьОбъект("Запрос");
    
    ТекстЗапроса="
    
        
        |ПЕРИОД С ДатаТоргового По ДатаТоргового;
        |Фирма=Регистр.ПартииТоваров.Фирма;
        |Контрагент = Справочник.Контрагенты.ТекущийЭлемент;
        |Группировка Контрагент без групп упорядочить по Контрагент.Наименование;
           |";  

        СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
        
                 Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Контрагент,,,СписокКонтрагентов,,,,,")=0 Тогда
            Возврат;
        КонецЕсли;
          // ВыбКонтрагент
    
        
        Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
            Предупреждение("Запрос по Партиям не выполнился!");
            возврат;
        КонецЕсли;
          
               СтрокаТекста=СокрЛП(Строка("ID накладной"))+";"+СокрЛП(Строка("Дата"))+";"+СокрЛП(Строка("ID точки доставки"))+";"+СокрЛП(Строка("масса"))+";"+СокрЛП(Строка("обьем"))+";"+СокрЛП(Строка("сумма"))+";"+СокрЛП(Строка("Комментарий"))+";"+СокрЛП(Строка("Вид товара"))+";";
            ТекстВыгрузки.ДобавитьСтроку(СтрокаТекста);
        
          
                 
        Пока Запрос.Группировка("Контрагент")=1 Цикл  
                 IDТД=Запрос.Контрагент.КодСоответствия;
                 масса="";  
                 обьем="";
                 Видтовара="";
                 Имя=  Запрос.Контрагент.Наименование;                 
                 Адрес =   Запрос.Контрагент.ПочтовыйАдрес;  
                 Времяначалаработы = "08:00";
                 Времяокончанияработы = "17:00";                
                 времязадержки=    "00:15";                
                 Широта="";
                 Долгота="";                 
                 Note= СокрЛП(Запрос.Контрагент.Информация);
                             
                     сумма="";
                      СтрокаТекста=СокрЛП(Строка(ДатаТоргового+Запрос.Контрагент.КодСоответствия))+";";
                      СтрокаТекста=СтрокаТекста+СокрЛП(Строка(ДатаТоргового))+";";
                      СтрокаТекста=СтрокаТекста+СокрЛП(Строка(IDТД))+";";
                    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(масса))+";";
                    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(обьем))+";";
                    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(сумма))+";";
                   // СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Видтовара))+";";
                   // СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Имя))+";";
                   // СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Адрес))+";";
                //    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Времяначалаработы))+";";
                  //  СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Времяокончанияработы))+";";
                //    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(времязадержки))+";";  
                    //СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Широта))+";";
                    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Note))+";";
                    СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Видтовара))+";";
                  
                    
                ТекстВыгрузки.ДобавитьСтроку(СтрокаТекста);
            КонецЦикла;

        
        Если ТекстВыгрузки.КоличествоСтрок()<>0 Тогда
        
            Попытка
                ТекстВыгрузки.Записать(ФайлВыгрузки);
                Предупреждение("Файл успешно сформирован");
            Исключение
                Предупреждение("Невозможно сохранить файл! Проверьте путь к файлу выгрузки!");
            КонецПопытки;
            
        Иначе
            Предупреждение("Нет данных для выгрузки! Файл не сформирован!");
        КонецЕсли;
КонецПроцедуры

хочется добавить еще выборку по группе контрагента через сравочник - ВыбКонтрагент
CobraS
inna.innainna84 @ Сегодня, 12:42 необходимо зарегистрироваться для просмотра ссылки,
Во-первых не мешало бы почистить программный код от ненужного мусора:
        |Фирма=Регистр.ПартииТоваров.Фирма;

        СписокКонтрагентов = СоздатьОбъект("СписокЗначений");
        
                 Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Контрагент,,,СписокКонтрагентов,,,,,")=0 Тогда
            Возврат;
        КонецЕсли;
          // ВыбКонтрагент

и добавить в текст запроса что-то типа:
        |Родитель = Справочник.Контрагенты.Родитель;
        |Группировка Родитель без групп упорядочить по Родитель.Наименование;
inna.innainna84
Простите я не правильно обяснила.
Сейчас группируются клиенты через "ВыбКатегорияКонтрагентов" (т.е.справочник категории контрагента) ,
а нужно через ВыбКатегорияКонтрагентов и ВыбКонтрагент (т.е. справочник контрагенты).

Если глФильтрПоСправочнику("Контрагенты",0,0,ВыбКатегорияКонтрагентов,0,0,СписокКонтрагентов,ТекстЗапроса,0,0,"Контрагент,,,СписокКонтрагентов,,,,,")=0 Тогда
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.