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

 ! 

Ознакомьтесь с правилами форума, пункт 12 особенно.
 



База ТИС 7.7

Пример файла
distr_code;stock_date;distr_product_code;stock_volume;
1012;19.02.16;8461;567;
1012;19.02.16;7775;311;
1012;19.02.16;8467;10;
1012;19.02.16;8306;77;
а нужно
distr_code;stock_date;distr_product_code;stock_volume;
1012;19.02.16;8461;567;
1012;19.02.16;7775;311;
1012;19.02.16;8467;10;
1012;19.02.16;8306;77;
1012;20.02.16;8461;566;
1012;20.02.16;7775;310;
1012;20.02.16;8467;9;
1012;20.02.16;8306;76;
inna.innainna84

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

            СтрокаТекста=СокрЛП(Строка("distr_code"))+";"+СокрЛП(Строка("stock_date"))+";"+СокрЛП(Строка("distr_product_code"))+";"+СокрЛП(Строка("stock_volume"))+";";
             ТекстВыгрузки.ДобавитьСтроку(СтрокаТекста);
        
            
             Пока Запрос.Группировка("Товар")=1 Цикл
                
            
            СтрокаТекста= СокрЛП(Строка(Константа.КодРуна))+";";
            СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Дата2))+";";
            СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Запрос.Товар.КодСоответствия))+";";
            СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Запрос.КонКол))+";";
            ТекстВыгрузки.ДобавитьСтроку(СтрокаТекста);
        КонецЦикла;
        
        Если ТекстВыгрузки.КоличествоСтрок()<>0 Тогда
        
            Попытка
                ТекстВыгрузки.Записать(ФайлВыгрузки);
                Предупреждение("Файл успешно сформирован");
            Исключение
                Предупреждение("Невозможно сохранить файл! Проверьте путь к файлу выгрузки!");
            КонецПопытки;
            
        Иначе
            Предупреждение("Нет данных для выгрузки! Файл не сформирован!");
        КонецЕсли;
КонецПроцедуры
Acid
никак не пойму для каких целей?
Vofka
А я понять не могу, в чем разница между "пример файла" и "нужно"?
Нонна

 ! 

Предлагаю впредь прекратить давать советы которые не соответствуют версии платформы. Этот совет совершенно не относится к 7.7
 
Мичман Харитонов
В семерочных запросах есть предопределенная групировка "День", можно использовать её.
nysysimara
Ваш запрос достает итоги только на Дата2
inna.innainna84, нужно добавить в запрос группировку День
ТекстЗапроса="                         
        |ПЕРИОД С Дата1 По Дата2;
        |Фирма=Регистр.ОстаткиТоваров.Фирма;
        |Товар=Регистр.ОстаткиТоваров.Товар;
        |Кол=Регистр.ОстаткиТоваров.ОстатокТовара;
|Группировка День;
        |Группировка Товар без групп;
        |Функция КонКол=КонОст(Кол);
        |Условие (Фирма=ВыбФирма);
        |";

затем добавить обход по дням
и в стоку помещать дату из запроса
Пока Запрос.Группировка("День")=1 Цикл 
    Пока Запрос.Группировка("Товар")=1 Цикл
        СтрокаТекста= СокрЛП(Строка(Константа.КодРуна))+";";
        СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Запрос.День))+";"; // ЗДЕСЬ ДАТУ ИЗ ЗАПРОСА
        СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Запрос.Товар.КодСоответствия))+";";
        СтрокаТекста=СтрокаТекста+СокрЛП(Строка(Запрос.КонКол))+";";
        ТекстВыгрузки.ДобавитьСтроку(СтрокаТекста);
    КонецЦикла;
КонецЦикла;
inna.innainna84
nysysimara
nysysimara
Спасибо большое. Вы умничка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.