|
Цикл по ТЗ. Создавать, заполнять и записывать документы по датам. Как ? | ☑ | ||
---|---|---|---|---|
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) умные все.
А если нет? Ни ТЗ, ни ТЧ как источника. Все, на митсу побежишь вопросы задавать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |