Имя: Пароль:
1C
1С v8
Цикл по ТЗ. Создавать, заполнять и записывать документы по датам. Как ?
0 raykom
 
16.10.14
09:59
ДенисЧ, неси свою очередную метлу ...

Есть таблица значений со строкой вида -

Дата   Номенклатура  Количество

Колонка дата содержит даты, остальные - соответственно.
Даты могут быть и одинаковые и различное количество одинаковых в группе.
Надо идти по таблице и в начале каждой группы одинаковых дат создавать документ, а остальные строки с одноименной датой - заносить в табличную часть.
Потом как то записывать, соответственно.
Подкиньте код.

Я вот так наговнял - все вроде отрабатывает. А вот запись документа - ни как пристроить не могу. Не пойму куда и как.

СтараяДата = "01.01.01";
    //счетцикла = 1;
    Для Каждого Стр из ТабПоле Цикл
        
        Если Стр.Дата <>  СтараяДата Тогда
            //записываем созданный док но если только счетцикла не равен одному
            Сообщить("Создаем документ   "+Стр.Дата);
        КонецЕсли;
        
        Сообщить("Заполняем Строки Документа    "+Стр.НоменклатураФ+"   "+Стр.Дата);
        СтараяДата = Стр.Дата;
        
    КонецЦикла;
    //Сообщить("Записываем документ  ");  ?????


Благодарю за внимание.
1 Kalambur
 
16.10.14
10:02
если не создаем документ, все-равно его заполняем? оригинально!
2 kosts
 
16.10.14
10:03
Если правильно понял проблему


Если Стр.Дата <>  СтараяДата Тогда

    Тут записываем документ

    Тут создаем новый документ

КонецЕсли;
3 raykom
 
16.10.14
10:03
(1)А где такая ситуация возникает ?
4 Ёпрст
 
16.10.14
10:03
Бегом за парту - каникулы школьные еще не наступили!
5 raykom
 
16.10.14
10:04
(2)А последний документ как запишем ?
6 kosts
 
16.10.14
10:04
(5) После цикла
7 raykom
 
16.10.14
10:04
(4)Какая парта ... Час ДенисЧ с инвентарем припрется, на территорию погонит ...
8 raykom
 
16.10.14
10:05
(6)Хмм ... Логично.
Попробую.
9 kosts
 
16.10.14
10:06
Можно изменить логику. В цикле определяем начало и конец одного документа и во вложенной процедуре создаем/заполняем/записываем.
10 СвинТуз
 
16.10.14
10:07
из извращений
выгружаем колонку дата
сворачиваем
идем по свернутой
ищем строки в оригинале
работаем с массивом строк
11 Злобный Фей
 
16.10.14
10:07
о_О
12 raykom
 
16.10.14
10:07
(2)Не. Не катит. Первое то входение - чего записывать будем ? Еще ни чего не создавали.
13 raykom
 
16.10.14
10:09
(9)Можно - только тямы не хватает - как. И нужно, по ходу.
(10)Ну, это тоже не вариант. Тоде надо кумекать, когда док создавать, а когда табличную начинать заполнять.
Для меня во всяком случае - не очевидно.
Шо то. шо другое - нипнимаю.
14 raykom
 
16.10.14
10:10
(11)Это что за функция ?
15 Fish
 
16.10.14
10:11
(12) Ну так всё просто: если ничего не создавали, то и не записываем :)
16 hhhh
 
16.10.14
10:11
Если Стр.Дата <>  СтараяДата Тогда

    Если СтараяДата <> "01.01.01" Тогда
    
        Тут записываем документ

    КонецЕсли;  

    Тут создаем новый документ

КонецЕсли;
17 Ёпрст
 
16.10.14
10:12
на вот, наслаждайся

ИТЗ= СоздатьОбъект("ИндексированнаяТаблица");
ИТЗ.Загрузить(ТЗ);
ИТЗ.Группировать("Дата:*ДатаДок;ТаблЧасть:*Номенклатура","Количество");
ИТЗ.ВыбратьСтроки();
Пока ИТЗ.ПолучитьСтроку()=1 Цикл
   Док.Новый();
   Док.ДатаДок = ИТЗ.ДатаДок;
   Док.ЗагрузитьТабличнуюЧасть(ИТЗ.тзПотомки);
   Док.Записать();
КонецЦикла;
18 raykom
 
16.10.14
10:15
(17) Зачет. Дайте две. Если это правда ))
Почти как запросом получаем группировку )
Щаз попробую.
19 СвинТуз
 
16.10.14
10:16
тз2=тз1.СкопироватьКолонки("Дата");
тз2.Свернуть("Дата");
Для каждого Стр из тз2 Цикл
Стрюк=Новый Структура;
Стрюк.Добавить("Дата",Стр.Дата);
Строки=тз1.НайтиСтроки(Стрюк);
Объект=Документы.МойДок.СоздатьНовый();
Для каждого Стр2 из Строки Цикл
НОв=Объект.Товары.Добавить();
НОв.Клиент=Стр2.Клиент;
КонецЦикла;
КонецЦикла;
20 raykom
 
16.10.14
10:23
(17)Чето конфа не понимает.

{Форма.Форма.Форма(73,6)}: Процедура или функция с указанным именем не определена (СоздатьОбъект)
ИТЗ= <<?>>СоздатьОбъект("ИндексированнаяТаблица"); (Проверка: Толстый клиент (обычное приложение))
21 МишельЛагранж
 
16.10.14
10:23
(19) а запись где?
22 МишельЛагранж
 
16.10.14
10:24
(20) это тебе семерошный код показали
23 МишельЛагранж
 
16.10.14
10:24
(0) в общем, с алгоритмизацией полный п-ц...
24 raykom
 
16.10.14
10:25
(22)о_О А что 8ка не может того, что может 7ка ?
25 raykom
 
16.10.14
10:26
(23)  )))
А с чен не ПЦ ?

Ну утри нос ...
26 СвинТуз
 
16.10.14
10:27
ТЗ.Сортировать("Дата");
Дата='00010101000000';
Для каждого Стр Из Тз1 Цикл
Если Дата<>Стр.Дата Тогда
Док=Документы.МойДок.СоздатьДокумент();
Дата=Стр.Дата;
КонецЕсли;
Нов=Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(Нов,Стр);
КонецЦикла;
Попытка
Док.Записать();
Исключение
Сообщить("Гвозди тебе в кеды!");
КонецПопытки;
27 Banned
 
16.10.14
10:28
(24) Она может. Ты не можешь. Ты даже метлу, которую тебе предлагаю, освоить не можешь...
28 ssh2QQ6
 
16.10.14
10:28
(0) можно как (19), только не СкопироватьКолонки, а Скопировать(, "Дата")
Можно таблицу во временную таблицу запроса поместить и выбрать из нее с итогами по Дата
29 СвинТуз
 
16.10.14
10:29
ТЗ.Сортировать("Дата");
Дата='00010101000000';
Для каждого Стр Из Тз1 Цикл
Если Дата<>Стр.Дата Тогда
Если Дата='00010101000000' Тогда
Док.Записать();
КонецЕсли;
Док=Документы.МойДок.СоздатьДокумент();
Дата=Стр.Дата;
КонецЕсли;
Нов=Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(Нов,Стр);
КонецЦикла;
30 pessok
 
16.10.14
10:30
Да сделайте уже из ДЗ из ТЗ. Итоги по Дата
И обход, в первой группировке создаем документ, в деталях заполняем номенклатуру
31 pessok
 
16.10.14
10:30
+(30) ДЗ из ТЗ
32 СвинТуз
 
16.10.14
10:30
еще!
33 YFedor
 
16.10.14
10:33
(0) Можно обычным способом, т.е. циклом по строкам с использованием переменно ТекущаяДатаВТаблице,

можно запрос к ТЗ с итогом по полю дата и обходом по группировкам
34 kosts
 
16.10.14
10:36
Самый правильный способ - в каждой строке ищем документ в БД с нужной датой, добавляем строку в документ, записываем документ, повторяем цикл.
35 kosts
 
16.10.14
10:36
(34) + Если не нашли документ, то создаем новый.
36 YFedor
 
16.10.14
10:37
(34) это неправильный вариант, т.к. много лишних поисков и записей
37 YFedor
 
16.10.14
10:37
(35) А кто сказал, что документов с такой датой нет в БД до выполнения операции
38 pessok
 
16.10.14
10:37
(34) а если за день было два документа с одной номенклатурой?
39 kosts
 
16.10.14
10:38
(34) слово "неправильный" тут не подходит. Способ правильный и работать будет. Другое дело, что возможно не очень быстрый...
40 kosts
 
16.10.14
10:39
(38) Данные будут в БД и хорошо.
41 YFedor
 
16.10.14
10:40
(40) Не нужно новые данные добавлять в старый документ (этого нет в задании)
42 YFedor
 
16.10.14
10:40
А вообще уже 40 постов о простейшей задачке
43 Ёпрст
 
16.10.14
10:40
Жесть какая, этот примитив в снеговике нужен что ле?

:)))
44 kosts
 
16.10.14
10:41
(41) Все хорошие способы разобрали...
45 raykom
 
16.10.14
10:41
(27)Не присваивай чужие инициативы и прерогативы  ) .
Выписка дворницкого инвентаря - это ДенисЧа поляна.

Конструктиву не добавишь ?

(28)Экспериментирую.

(29)Дану на ... В цикле надо несколько документов создать и записать. А ты предлагаешь записывать один раз. В начале цикла.

(30)>ДЗ из ТЗ
Это запрос к ТЗ ? Чтоли ? Какой - Чорный ?

О поперло то ... :DDD
Щас обзову тролем и забанят ...

(33)Дак вот с запросом то было бы понятно, только разве к ТЗ можно запрос ?

(34)(35)Колдовство какое то
46 raykom
 
16.10.14
10:43
(43)Да. А щто, есть какое то предложение по решению примитива ? )))
С мастерского плеча )))
47 МишельЛагранж
 
16.10.14
10:44
(45)"только разве к ТЗ можно запрос ?"
можно
"Колдовство какое то"
а то. "Алгоритмы" называется.
(43) это не примитив, это - построение алгоритмов. Оно от 1С не зависит ))
48 СвинТуз
 
16.10.14
10:45
(46)
ещЁ
49 МишельЛагранж
 
16.10.14
10:46
(24)"А что 8ка не может того, что может 7ка ?"
- если кратко - не реагирует на семерошные команды. Но вы экспериментируйте, экспериментируйте..
50 Ёпрст
 
16.10.14
10:47
(46) ТЗ откуда хоть взял ?
51 raykom
 
16.10.14
10:47
(47)>Алгоритмы ...
Это курят или пиют ?

Где почитать про запрос к ТЗ ?
52 pessok
 
16.10.14
10:47
так, стопэ. ЭТО КЛЮШКИ?
53 МишельЛагранж
 
16.10.14
10:47
(50) это у него ТП, а не отдельная ТЗ.
54 МишельЛагранж
 
16.10.14
10:48
(52) клюшкины ТАКИХ вопросов не задают...
55 raykom
 
16.10.14
10:48
(50)ТЗ - ТаблицаЗначений или ТезЗадание ?
Если про таблицу - то ТЗ - это Табличное поле на форме обработки
56 raykom
 
16.10.14
10:48
Неее ))) Сусанины.
Это осмерка
57 Крошка Ру
 
16.10.14
10:49
(54) Ещё и не такие задают, когда в восьмерке кодить пытаются. Особенно поначалу
58 МишельЛагранж
 
16.10.14
10:49
ВЫБРАТЬ
    ТЗ.поле1,
    ТЗ.поле2
ИЗ
    &ТЗ КАК ТЗ
59 Крошка Ру
 
16.10.14
10:49
(56) так чем тебе вариант в (29) не понравился?
60 МишельЛагранж
 
16.10.14
10:49
(57) семерошники ПРО СЕМЕРКУ ТАКИХ вопросов не задают ))
61 Ёпрст
 
16.10.14
10:50
(55) поставщиком твоего табличного поля что является ?
Источник данных для него что ? Таблица значений, еще чего ?
62 pessok
 
16.10.14
10:50
Ну так это

ТЗВыгрузка = ТабЧасть.Выгрузить();
Запрос = Новый Запрос(
"ВЫБРАТЬ * ПОМЕСТИТЬ ТЗОтбор ИЗ &ТЗ КАК ТЗ;
ВЫБРАТЬ * ИЗ ТЗОТбор
ИТОГИ ПО Дата");

Запрос.УстановитьПараметр("ТЗ", ТЗВыгрузка);
63 МишельЛагранж
 
16.10.14
10:50
(55)"то ТЗ - это Табличное поле на форме обработки"
ТП и ТЗ - разные вещи.
64 raykom
 
16.10.14
10:51
(59)>Если Дата='00010101000000' Тогда
Док.Записать();

Это будет только одн раз при запуске процедуры.
Я остальные то Доки когда записывать буду ?
65 pessok
 
16.10.14
10:51
(63) у табличного поля (не поля табличного документ) есть источник. Либо это табличная часть объекта, либо это таблица значений. И то и другое можно запихнуть параметров в запрос
66 МишельЛагранж
 
16.10.14
10:52
(65) из ТЧ выгрузить сначала надо.
67 pessok
 
16.10.14
10:53
(66) чуЖь
68 Ёпрст
 
16.10.14
10:53
(59) не рабочий код
69 Крошка Ру
 
16.10.14
10:53
(64) А да. Там ошибка. Должно быть
Если Дата<>'00010101000000' Тогда
70 Крошка Ру
 
16.10.14
10:53
(68) Обоснуй
71 Ёпрст
 
16.10.14
10:53
(64) там помимо этого, всё неправильно.
72 МишельЛагранж
 
16.10.14
10:54
+ 63 хотя ТП неявно использует внутри себя некую структуру а-ля ТЗ как основу, но никто не признается.
73 pessok
 
16.10.14
10:54
посоны, ну это уже троллинг, расходимся :)
74 raykom
 
16.10.14
10:54
(61)ТабПоле - ТипЗнаения - ТаблицаЗначений
75 raykom
 
16.10.14
10:54
(73)Приехали ...
76 Ёпрст
 
16.10.14
10:55
(70)
Если Дата='00010101000000' Тогда
Док.Записать();

в это условие влетит раньше, чем переменная Док вообшще объявляется как создать документ
77 МишельЛагранж
 
16.10.14
10:55
(70) алгоритм в 17 самый правильный, его только в 8-ку нужно переписать.
78 pessok
 
16.10.14
10:55
(75) я тебе написал рабочий код в (62)
обходи теперь по группировкам результат запроса как в (30)
79 Крошка Ру
 
16.10.14
10:56
(76) См.(69)
80 МишельЛагранж
 
16.10.14
10:56
(74)"ТабПоле - ТипЗнаения - ТаблицаЗначений"
это откуда такие информации?
81 Ёпрст
 
16.10.14
10:56
(74)

Помести ТЗ в запрос, далее примитив - обходи группировки запроса и привет.
82 raykom
 
16.10.14
10:57
(77)И я о том же. Только не понимаю как. Покурить про объект ИндексированнаяТаблица ?
В СП есть такое ?

(78)Да пробую. Только тут вот вариантов накидали - завис ...
83 МишельЛагранж
 
16.10.14
10:57
ТипЗначения ТП = Тип("ТабличноеПоле")
84 Ёпрст
 
16.10.14
10:58
(79) не спасёт - последний документ не запишется
85 МишельЛагранж
 
16.10.14
10:58
(82) нет, заменить семерошные инструкции на восьмерошные.
86 raykom
 
16.10.14
10:58
(8)>Помести ТЗ в запрос
Каг ?
87 raykom
 
16.10.14
10:58
(85)Где их искать ?
88 МишельЛагранж
 
16.10.14
10:59
(81) из ТЗ можно отобрать все что угодно по условию безо всякого запроса ))
89 Ёпрст
 
16.10.14
10:59
(86)
Запрос.УстановитьПараметр("ТЗ",ТЗ);
90 raykom
 
16.10.14
10:59
Рука тянется к бутилке ...
91 pessok
 
16.10.14
11:00
Запрос = Новый Запрос();
    
    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    ТаблицаОбработки.Дата,
    |    ТаблицаОбработки.Номенклатура,
    |    ТаблицаОбработки.Количество
    |ПОМЕСТИТЬ ВТТабЧастьОбработки
    |ИЗ
    |    &ТаблицаОбработки КАК ТаблицаОбработки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТТабЧастьОбработки.Дата,
    |    ВТТабЧастьОбработки.Номенклатура,
    |    ВТТабЧастьОбработки.Количество
    |ИЗ
    |    ВТТабЧастьОбработки КАК ВТТабЧастьОбработки
    |ГДЕ
    |    ВТТабЧастьОбработки.Дата = &Дата";
    
    Запрос.УстановитьПараметр("ТаблицаОбработки", ТабличнаяЧасть1);
    
    ВыборкаДата = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаДата.Сбросить() Цикл
        
        Док = Документы.ХХХ.Создать();
        Док.Дата = ВыборкаДата.Дата;
        
        ВыборкаДетали = ВыборкаДата.Выбрать();
        
        Пока ВыборкаДетали.Следующий() Цикл
            
            ЗаполнитьЗначенияСвойств(Док.ТЧ.Добавить(), ВыборкаДетали);
            
        КонецЦикла;
        
        Док.Записать();
        
    КонецЦикла;
92 Ёпрст
 
16.10.14
11:00
(88) ктож спорит то.. запросом удобнее, мало ли, ему надо еще что-то при этом сделать
:)
93 pessok
 
16.10.14
11:00
все, закрываемся :)
94 raykom
 
16.10.14
11:00
(89)Ага.
95 raykom
 
16.10.14
11:00
(91) ))) Обломил сотко ...
96 МишельЛагранж
 
16.10.14
11:01
(74) это ты перепутал источник данных ТП и саму ТП.
97 Крошка Ру
 
16.10.14
11:01
(93) Взял и всё испортил
98 pessok
 
16.10.14
11:01
хоу. Сбросить = Следующий() ессно
99 pessok
 
16.10.14
11:01
Запрос = Новый Запрос();
    
    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    ТаблицаОбработки.Дата,
    |    ТаблицаОбработки.Номенклатура,
    |    ТаблицаОбработки.Количество
    |ПОМЕСТИТЬ ВТТабЧастьОбработки
    |ИЗ
    |    &ТаблицаОбработки КАК ТаблицаОбработки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТТабЧастьОбработки.Дата,
    |    ВТТабЧастьОбработки.Номенклатура,
    |    ВТТабЧастьОбработки.Количество
    |ИЗ
    |    ВТТабЧастьОбработки КАК ВТТабЧастьОбработки
    |ГДЕ
    |    ВТТабЧастьОбработки.Дата = &Дата";
    
    Запрос.УстановитьПараметр("ТаблицаОбработки", ТабличнаяЧасть1);
    
    ВыборкаДата = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаДата.Следующий() Цикл
        
        Док = Документы.ХХХ.Создать();
        Док.Дата = ВыборкаДата.Дата;
        
        ВыборкаДетали = ВыборкаДата.Выбрать();
        
        Пока ВыборкаДетали.Следующий() Цикл
            
            ЗаполнитьЗначенияСвойств(Док.ТЧ.Добавить(), ВыборкаДетали);
            
        КонецЦикла;
        
        Док.Записать();
        
    КонецЦикла;
100 pessok
 
16.10.14
11:01
сотка. закрываемсо :)
101 pessok
 
16.10.14
11:03
чорт. не

    Запрос = Новый Запрос();
    
    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    ТаблицаОбработки.Дата,
    |    ТаблицаОбработки.Номенклатура,
    |    ТаблицаОбработки.Количество
    |ПОМЕСТИТЬ ВТТабЧастьОбработки
    |ИЗ
    |    &ТаблицаОбработки КАК ТаблицаОбработки
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТТабЧастьОбработки.Дата КАК Дата,
    |    ВТТабЧастьОбработки.Номенклатура,
    |    ВТТабЧастьОбработки.Количество
    |ИЗ
    |    ВТТабЧастьОбработки КАК ВТТабЧастьОбработки
    |ИТОГИ ПО
    |    Дата";
    
    Запрос.УстановитьПараметр("ТаблицаОбработки", ТабличнаяЧасть1);
    
    ВыборкаДата = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаДата.Следующий() Цикл
        
        Док = Документы.ХХХ.Создать();
        Док.Дата = ВыборкаДата.Дата;
        
        ВыборкаДетали = ВыборкаДата.Выбрать();
        
        Пока ВыборкаДетали.Следующий() Цикл
            
            ЗаполнитьЗначенияСвойств(Док.ТЧ.Добавить(), ВыборкаДетали);
            
        КонецЦикла;
        
        Док.Записать();
        
    КонецЦикла;
102 raykom
 
16.10.14
11:04
Ну спасибо, камрады. Надо разбираться. Материала наверстали - выше крыши )))

Буду применять. Дальше без меня пока ...

(101)Нифига, тебя штырибасит )))
103 pessok
 
16.10.14
11:05
ну если уж даешь код, то он должен быть рабочим, без закладок :)
104 raykom
 
16.10.14
11:09
Таки мне приглянулсо код из (17) курю вот.
про СоздатьОбъект("ИндексированнаяТаблица")
105 pessok
 
16.10.14
11:10
(104) это код для клюшек, в восьмерке не взлетит
106 raykom
 
16.10.14
11:11
Да. Уже понял. 1с++ надо бибилиотеку СРР.
Все. Переключаюсь на другие варианты.
107 pessok
 
16.10.14
11:11
+(105) по сути он делает тоже самое что и (101), создает дерево и обходит его
108 raykom
 
16.10.14
11:12
(107)А вот на (101) и остановлюсь, походу.
109 raykom
 
16.10.14
11:16
(101)>ТаблицаОбработки
Это что ? Мое ТабличноеПоле ?
110 raykom
 
16.10.14
11:19
(101)>ВТТабЧастьОбработки
Это правильное написание ?
111 Banned
 
16.10.14
11:33
Мда... Не, зря ему метлу предлагали...
112 raykom
 
16.10.14
11:35
Дак кто спорит ... Я не отказываюсь. Принимаю с почтением. У меня их штук десяток уже.
Не помогает ...
113 Banned
 
16.10.14
11:37
(112) Так ими пользоваться нужно по назначению, а не коллекционировать.
Зря что-ли человек старался?
114 raykom
 
16.10.14
11:41
(113)Дак я и это то не умею ...
115 raykom
 
16.10.14
11:42
Работал бы  я одинесником тогда ...
116 pessok
 
16.10.14
11:43
(109) это таблица значений, которая источник твоего табличного поля
117 raykom
 
16.10.14
11:51
(116)Да, уже понял. Подправил
>Док = Документы.ХХХ.Создать();
СоздатьДокумент()
надо было.

С Датой еще пришлось помудрить - я ее из файла ф ТАбПоле получал как строку.
Привел к виду дата с нужным форматом.
Теперь разбираюсь с

>ВыборкаДетали

Пока через Сообщить все врде ок.
ВыборкаДетали.Коичество() - говорит, что итогах группировки нужное количество записей по каждой дате.

Так что все ОК. Почти ))
118 raykom
 
16.10.14
11:54
Да. По структуре запроса и по итогам - все ОК.
Сейчас нюансы заполнения документа подпилю и все ОК.
Спасибо всем.
И pessok персонально
119 raykom
 
16.10.14
12:03
Мдя. Рановато радовался. Чего то недосмотрел.

Вот такой кодец вышел.

Процедура СоздатьДокументыНажатие(Элемент)
    Запрос = Новый Запрос();
    
    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    ТабПоле.Дата,
    |    ТабПоле.НоменклатураБ,
    |    ТабПоле.Количество
    |ПОМЕСТИТЬ ВТТабЧастьОбработки
    |ИЗ
    |    &ТабПоле КАК ТабПоле
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    ВТТабЧастьОбработки.Дата КАК Дата,
    |    ВТТабЧастьОбработки.НоменклатураБ,
    |    ВТТабЧастьОбработки.Количество
    |ИЗ
    |    ВТТабЧастьОбработки КАК ВТТабЧастьОбработки
    |ИТОГИ ПО
    |    Дата";
    
    Запрос.УстановитьПараметр("ТабПоле", ТабПоле);
    
    ВыборкаДата = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаДата.Следующий() Цикл
        Док = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
        Док.Дата = ВыборкаДата.Дата;
        
        ВыборкаДетали = ВыборкаДата.Выбрать();
        Пока ВыборкаДетали.Следующий() Цикл
            ЗаполнитьЗначенияСвойств(Док.Товары.Добавить(), ВыборкаДетали);
        КонецЦикла;
        
        Док.Записать();
        
    КонецЦикла;
КонецПроцедуры

Вроде все верно, а документ не создается.
Помоему с пустой фирмой то запишется ведь ?

Но в журнале - пусто.
120 Banned
 
16.10.14
12:09
ВыборкаДетали = ВыборкаДата.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
121 Сияющий Асинхраль
 
16.10.14
12:12
Во народ дает! Такую фигню на 120 постов развезли!
122 raykom
 
16.10.14
12:14
(120)Ну да, как вариант заполнения ТЧ документа.
Но ведь и в
>ЗаполнитьЗначенияСвойств(Док.Товары.Добавить(), ВыборкаДетали)

Можно просто параметры заполнения добавить и все ОК будет. Не ?

(121)Дак мы общаемся  ... ))
123 raykom
 
16.10.14
12:15
+(122) и на проблему в (119) это не влияет. Не?
124 H A D G E H O G s
 
16.10.14
12:16
(121) +500

Автору нефиг делать в программировании.
125 Banned
 
16.10.14
12:17
(122) Попробуй сначала.
Если получится - дай слово, что уйдёшь из 1с.
126 raykom
 
16.10.14
12:19
(124)Дак я понимаю. Но в дворники не берут.  )))
ДенисЧ протекцию составлял - не помогло.

(125)Как я дам то ??? Куда меня возьмут то ??? Не ... есть то надо уж както. Пока тут перекантуюсь.
Потом может Путин приметит. Я тут отличался прогнозами, так может предложат что то стоящее.
Тогда да. А так - не могу.
127 raykom
 
16.10.14
12:23
Немая сцена
128 pessok
 
16.10.14
12:24
что не работает то?
129 Banned
 
16.10.14
12:24
(127) Так помогло или нет?
130 raykom
 
16.10.14
12:24
Говорят голова ...
131 raykom
 
16.10.14
12:25
(130)для (128)
132 pessok
 
16.10.14
12:27
(131) Москва не сразу строилась, все или почти все через это проходили. В чем конкретно беда?
133 raykom
 
16.10.14
12:28
(129)Шо ? Вот это ?
>ВыборкаДетали = ВыборкаДата.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пробую.
134 pessok
 
16.10.14
12:28
(133) это не поможет и не может помочь. там уже нет группировок, там уже детальные записи, т.к. итоги только по полю дата
135 raykom
 
16.10.14
12:29
ПЦ. Вопще все колом встало )))

Открываю обработку в конфигураторе -
Ошибка при выполнении файловой операции  'C:\Users\ray\Desktop\Девайс\ЗагрузкаИзЭксель.epf'
по причине:
Неверный формат хранилища данных 'file://C:/Users/xxx/Desktop/xxx/ЗагрузкаИзЭксель.epf'
136 pessok
 
16.10.14
12:30
(135) ну тут мы не поможем, файлик побился. письма счастья из "сбебанка" не приходили?
137 Banned
 
16.10.14
12:31
Уже даже сама 1с намекает...
138 pessok
 
16.10.14
12:34
добрее надо быть, коллеги, завтра ж пятница :)
139 raykom
 
16.10.14
12:34
(135)Шо такое сбебанк ? о_О

Типа заплатите на счет ххх пришлем код ?
Да не, у меня все чисто . Вроде ...
140 pessok
 
16.10.14
12:36
(139) ну у тебя побился файл обработки. беда, как известно, одна не приходит. решил предположить худшее, свят-свят
141 raykom
 
16.10.14
12:37
Все. ПЦ файлику. Точно.

Ну, камрады, вводная меняется )))

Теперь тема обсуждения - как отремонтировать файл )))
Еще постов на 300.

Блин. и Копии то нет ...
142 raykom
 
16.10.14
12:38
Цукко ...

Нут как то глухо подвис. Первый раз за пару лет. Пришлось ресетить.
Вот результат.
143 pessok
 
16.10.14
12:39
ресетить вообще категорически 1С нельзя.

если у тебя загрузка из экселя трех колонок, то там переписать все за 10 минут. + вставить мой код из (101) с учетом СоздатьДокумент() вместо Создать() и усё
144 raykom
 
16.10.14
12:39
переименовать в ТХТ и в амноблакноте хоть открыть может ? )))
145 шаэс
 
16.10.14
12:39
(7) некому Вас пока гонять. Под баном Денис.
146 raykom
 
16.10.14
12:41
(145)о_О ??? Шо голым по мисте бегал ???
147 raykom
 
16.10.14
15:16
Слава откатам ... И иногда полезно хранить файлы на рабочем столе.
Откатил систему на позавчера - восстановилась версия файла.
По крайней мере интерфейсная часть и одна процедура.

Остальное по свежей памяти наколотил )))
148 ssh2QQ6
 
16.10.14
15:47
(62) можно выгрузку табличной часть в ТЗ не делать, а сразу в параметр запроса таб часть передавать
149 pessok
 
16.10.14
15:49
(148) да, это обсуждалось чуть дальше
150 raykom
 
16.10.14
22:46
(120)>ВыборкаДетали = ВыборкаДата.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Из принципа попробовал - результат = 0.
Изначально было понятно, что к проблеме (119) отношения не имеет.
151 raykom
 
16.10.14
23:01
А нет проблемы. Извиняй pessok, просто тупо не догадался отключить отбор в журнале документов.  Фирма не заполнена, а отбор по фирме включен.

Все, всем спасибо.
Вопрос закрыт.
152 МишельЛагранж
 
27.10.14
10:30
(0) а вообще, если автору понятней ЕГО вариант - нужно флаг вставить на создание документа ДокументСоздан (перед каждой итерацией его нужно сбрасывать не забывать), а потом проверять: если Истина - то заполнить ТЧ и записать, нет - далее смотреть исходную ТЗ.
153 МишельЛагранж
 
27.10.14
10:34
(65) умные все.
А если нет? Ни ТЗ, ни ТЧ как источника.
Все, на митсу побежишь вопросы задавать?
Независимо от того, куда вы едете — это в гору и против ветра!