Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Проблема вигрузки залишків номенклатури з регістру.          
Sirius83 Подменю пользователя
сообщение 23.06.18, 22:12
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 52
Спасибо сказали: 3 раз
Рейтинг: 0

Конфігурація бухгалтерия+торговля+производство+зарплата+кадры+Cash&Carry+розница+(торговля)+урб support, присутній як бухгалтерський облік так і оперативний, документи по оперативному і бух. обліку при проведенні записують дані в Регистр.Остатки. Задача вигрузити в текстовий файл згруповані залишки ТМЦ на кожну дату в періоді.
написав таке:

Код
Процедура Сформировать()
    КаталогВыгрузкиФайлы = КаталогВыгрузки + "\CSVFiles";
    Текст = СоздатьОбъект("Текст");
    Текст.ДобавитьСтроку("ProductID;Data;Qty;Summ");
    ДатаТек = ДатаНачало;
    
        Запр = СоздатьОбъект("Запрос");
                
        ТекстЗапр = "
    
        |Период с ДатаНачало по ВыбКонПериода;
        |ТМЦ = Регистр.Остатки.ТМЦ;
        |Кво = Регистр.Остатки.Кво;
        |СуммаОсн = Регистр.Остатки.СуммаОсн;
        |Условие (ТМЦ в выбТМЦ);
        |Группировка ТМЦ;
        |Функция ККво = КонОст(Кво);
        |Функция КСуммаОсн = КонОст(СуммаОсн);";

        
        Если Запр.Выполнить(ТекстЗапр)=0 Тогда
            Возврат;
        КонецЕсли;
        
        Пока ДатаТек <= ВыбКонПериода Цикл
            
            Пока Запр.Группировка("ТМЦ")=1 Цикл
                Если Запр.ТМЦ.Выбран()=0 Тогда
                    Продолжить;
                КонецЕсли;
                Если Запр.ТМЦ.ЭтоГруппа()=1 Тогда
                    Продолжить;
                Иначе
                    Текст.ДобавитьСтроку(СокрЛП(Запр.ТМЦ.Код) + ";" + ПреобразоватьДату(ДатаТек) + ";" + ОбработкаСтроки(СокрЛП(Запр.ККво)) + ";" +  СтрЗаменить(СокрЛП(Запр.КСуммаОсн), ",", "."));
                КонецЕсли;
            КонецЦикла;
            ДатаТек = ДатаТек + 1;
        КонецЦикла;
    
    Текст.ДобавитьСтроку("");
    Текст.Записать(КаталогВыгрузкиФайлы + "\Stocks.csv");

КонецПроцедуры


Результат на кожну дату один й той самий результат, та ще й відрізняється від реального.
Будь-ласка допоможіть, (сильно не сваріть, ятільки вчуся)

Сообщение отредактировал Vofka - 25.06.18, 12:58

Sirius83 Подменю пользователя
сообщение 24.06.18, 1:23
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 52
Спасибо сказали: 3 раз
Рейтинг: 0

Sirius83 @ Вчера, 23:12 * ,
Хочу поправити, результат у всіх строках на кожну дату отримуємо такий який відповідає результату на ВыбКонПериода.

Sirius83 Подменю пользователя
сообщение 24.06.18, 13:32
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 52
Спасибо сказали: 3 раз
Рейтинг: 0

Sirius83 @ Сегодня, 2:23 * ,
Сам запитав, сам і відповім.
 Процедура Сформировать()
    КаталогВыгрузкиФайлы = КаталогВыгрузки + "\CSVFiles";
    Текст = СоздатьОбъект("Текст");
    Текст.ДобавитьСтроку("ProductID;Data;Qty;Summ");
    ДатаТек = ДатаНачало;
    Пока ДатаТек <= ВыбКонПериода Цикл
        Запр = СоздатьОбъект("Запрос");
                
        ТекстЗапр = "
    
        |Период с ДатаНачало по ДатаТек;
        |ТМЦ = Регистр.Остатки.ТМЦ;
        |Кво = Регистр.Остатки.Кво;
        |СуммаОсн = Регистр.Остатки.СуммаОсн;
        |Условие (ТМЦ в выбТМЦ);
        |Группировка ТМЦ;
        |Функция ККво = КонОст(Кво);
        |Функция КСуммаОсн = КонОст(СуммаОсн);";

        
        Если Запр.Выполнить(ТекстЗапр)=0 Тогда
            Возврат;
        КонецЕсли;
        
            Пока Запр.Группировка("ТМЦ")=1 Цикл
                Если Запр.ТМЦ.Выбран()=0 Тогда
                    Продолжить;
                КонецЕсли;
                Если Запр.ТМЦ.ЭтоГруппа()=0 Тогда
                    Текст.ДобавитьСтроку(СокрЛП(Запр.ТМЦ.Код) + ";" + ПреобразоватьДату(ДатаТек) + ";" + ОбработкаСтроки(СокрЛП(Запр.ККво)) + ";" +  СтрЗаменить(СокрЛП(Запр.КСуммаОсн), ",", "."));
                КонецЕсли;
                
            КонецЦикла;
            ДатаТек = ДатаТек + 1;
        КонецЦикла;
    
    Текст.ДобавитьСтроку("");
    Текст.Записать(КаталогВыгрузкиФайлы + "\Stocks.csv");

КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:18
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!