Имя: Пароль:
1C
1С v8
v8: Запись даты в текстовый документ
0 zzzLEXzzz
 
18.03.14
11:14
Привет всем, 1с 8.2. делаю обработку которая записывает данные в файл, но не могу разобраться, как записать дату в документ, дату нужно записать "датаКон", которую забивают в самой обработке. вот код, таким образом на дату начинает ругаться.

Текст = Новый ТекстовыйДокумент();

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Продажи.Номенклатура.Код КАК Код,
        |    Продажи.Контрагент.САПКод КАК САПКод,
        |    Продажи.Количество КАК Кол
        |ИЗ
        |    РегистрНакопления.Продажи КАК Продажи
        |ГДЕ
        |    Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон
        |    И Продажи.Контрагент.Код <> ""000003128""
        |    И Продажи.Контрагент.Код <> ""50219289""
        |    И Продажи.Контрагент.Код <> ""000003109""
        |    И Продажи.Контрагент.Код <> ""000000428""
        |    И Продажи.Контрагент.Код <> ""000009852""
        |    И Продажи.Контрагент.Код <> ""50218824""
        |    И Продажи.Контрагент.Код <> ""000004036""
        |    И Продажи.Контрагент.Код <> ""000003351""
        |    И Продажи.Контрагент В ИЕРАРХИИ(&Контрагент)
        |    И Продажи.Номенклатура В ИЕРАРХИИ(&Номенклатура)";

    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("00000002817"));
    
    Результат = Запрос.Выполнить();
    
    Дата = (ДатаКон);
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СапКод = СтрЗаменить(ВыборкаДетальныеЗаписи.СапКод," ","");
    Текст.ДобавитьСтроку(Дата+";"+"D7S0;"+СапКод+";"+ВыборкаДетальныеЗаписи.Кол+";"+"L");    
        
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        
    КонецЦикла;

    Сообщить (датаКон);
    Текст.Записать("C:\Мара.txt");
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
1 aka AMIGO
 
18.03.14
11:16
интересно.. вроде-б вначале присваивают значения переменным, потом запускают запрос..
или сейчас уже это не суть важно?
2 aka AMIGO
 
18.03.14
11:17
+1 где у тебя датаКон объявлена?
3 zzzLEXzzz
 
18.03.14
11:19
(2) датаКон на форме, может я что-то не так сделал? скажите как правильно
4 aka AMIGO
 
18.03.14
11:23
(3) возможно, так:
Текст.ДобавитьСтроку(""+Дата+";"...
5 hhhh
 
18.03.14
11:25
(3) ну посмотрите, что там у поля ввода датаКон в поле "данные" написано?
6 aka AMIGO
 
18.03.14
11:26
(5) скорей всего, там у него правильно.. а вот в (4) - он пытается складывать дату со строкой, вот и ругается на дату (вернее, на суммирование дат)
7 zzzLEXzzz
 
18.03.14
11:27
(4) так всё получилось спасибо, вот только вопрос как часы минуты секунды убрать )))
8 ДенисЧ
 
18.03.14
11:27
(7) ТОлько не вздумай читать документацию про Формат() !!!
9 aka AMIGO
 
18.03.14
11:27
(7) примени формат(.. :)
10 Aleksey
 
18.03.14
11:27
(7) Используй формат, или лев()
11 VikingKosmo
 
18.03.14
11:27
(8) Опередил :)
12 aka AMIGO
 
18.03.14
11:28
(8) :))
13 Aleksey
 
18.03.14
11:28
Лев(строка(Дата),8)
14 zzzLEXzzz
 
18.03.14
11:28
спасибо всем огромное )))
15 zzzLEXzzz
 
18.03.14
11:40
Ну помогите ещё в этой же обработки, как суммировать значения которые попадают в фаил именно с одинаковыми САПкод, допустим в файл выгружается так
16.03.2014;D7S0;50544261;5;L
16.03.2014;D7S0;50218700;5;L
16.03.2014;D7S0;50782388;5;L
16.03.2014;D7S0;50533605;0,5;L
16.03.2014;D7S0;50726250;5;L
16.03.2014;D7S0;50544261;2,5;L

как сделать чтобы 50544261 была одной строкой и уже следующее значение было 7,5, то есть сложить 5 и 2,5, надеюсь понятно объяснил
16 zzzLEXzzz
 
18.03.14
11:53
народ ну помогите пожалуйста
17 aka AMIGO
 
18.03.14
12:07
мда..
выгружай в ТЗ, потом её сверни по дате и твоему сапкоду.. или что там..
после свертки выводи ТЗ
18 aka AMIGO
 
18.03.14
12:10
... либо (могу и ошибиться) сделай группировку в запросе, суммируй с условием по совпадению, и выводи
19 zzzLEXzzz
 
18.03.14
12:11
(18) а можно подробнее,как это сделать, просто не когда этим не занимался, да и в 1С только начинающий
20 vicof
 
18.03.14
12:14
(19) Тогда приглашай специалиста. По крайней мере того, который может описать прикладную задачу.
21 zzzLEXzzz
 
18.03.14
12:17
(20) эт проще всего, тогда можно было бы и сюда не писать, но там и финансы нужны
22 vicof
 
18.03.14
12:18
(21) я так тонко намекаю на то, что этим великим специалистом являешься ты
23 Aleksey
 
18.03.14
12:21
(15) то что надо сложить пиши в скобках т.е. ...+(5+2,5)+
24 zzzLEXzzz
 
18.03.14
12:26
(23) вы видимо немного не поняли задачу, посмотрите пожалуйста код
25 mikeA
 
18.03.14
12:40
"ВЫБРАТЬ
|    Продажи.Контрагент.САПКод КАК САПКод,
|    СУММА(Продажи.Количество) КАК Кол
|ИЗ
|    РегистрНакопления.Продажи КАК Продажи
|ГДЕ
|    Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон
|    И Продажи.Контрагент.Код <> ""000003128""
|    И Продажи.Контрагент.Код <> ""50219289""
|    И Продажи.Контрагент.Код <> ""000003109""
|    И Продажи.Контрагент.Код <> ""000000428""
|    И Продажи.Контрагент.Код <> ""000009852""
|    И Продажи.Контрагент.Код <> ""50218824""
|    И Продажи.Контрагент.Код <> ""000004036""
|    И Продажи.Контрагент.Код <> ""000003351""
|    И Продажи.Контрагент В ИЕРАРХИИ(&Контрагент)
|    И Продажи.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|
|СГРУППИРОВАТЬ ПО
|    Продажи.Контрагент.ID";
26 zzzLEXzzz
 
18.03.14
13:23
(25) что-то не получается, правильно я сделал?
Текст = Новый ТекстовыйДокумент();

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        //|    Продажи.Номенклатура.Код КАК Код,
        |    Продажи.Контрагент.САПКод КАК САПКод,
        //|    Продажи.Количество КАК Кол,
        |   СУММА(Продажи.Количество) КАК Кол,
        |    Продажи.Номенклатура.КолЛвШТ КАК КолЛвШт
        |ИЗ
        |    РегистрНакопления.Продажи КАК Продажи
        |ГДЕ
        |    Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон
        |    И Продажи.Контрагент.Код <> ""000003128""
        |    И Продажи.Контрагент.Код <> ""50219289""
        |    И Продажи.Контрагент.Код <> ""000003109""
        |    И Продажи.Контрагент.Код <> ""000000428""
        |    И Продажи.Контрагент.Код <> ""000009852""
        |    И Продажи.Контрагент.Код <> ""50218824""
        |    И Продажи.Контрагент.Код <> ""000004036""
        |    И Продажи.Контрагент.Код <> ""000003351""
        |    И Продажи.Контрагент В ИЕРАРХИИ(&Контрагент)
        |    И Продажи.Номенклатура В ИЕРАРХИИ(&Номенклатура)
        |СГРУППИРОВАТЬ ПО
        |    Продажи.Контрагент.САПКод,
        |    Продажи.Номенклатура.КолЛвШТ";

    Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("00000002817"));
    
    Результат = Запрос.Выполнить();
    
    Дата = Формат(ДатаКон, "ДЛФ=Д");
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    СапКод = СтрЗаменить(ВыборкаДетальныеЗаписи.СапКод," ","");
    Литры = ВыборкаДетальныеЗаписи.Кол * ВыборкаДетальныеЗаписи.КолЛвШт;
    Текст.ДобавитьСтроку(""+Дата+";"+"D7S0;"+СапКод+";"+Литры+";"+"L");    
        
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        
    КонецЦикла;

    Сообщить (датаКон);
    Текст.Записать("C:\Мара.txt");
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
27 Wobland
 
18.03.14
14:38
(26) разумеется, нет. тебе повезло - у тебя, а нам плохо - не видать нам червяка
28 EvgeniuXP
 
18.03.14
22:12
и зачем столько гемора...
Основная теорема систематики: Новые системы плодят новые проблемы.