|
Как выбрать одинаковые записи с двух регистров? | ☑ | ||
---|---|---|---|---|
0
Miss1C
06.09.12
✎
10:19
|
Как выбрать одинаковые записи с двух регистров, за определенную дату?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Продажи.Номенклатура, | Продажи.ХарактеристикаНоменклатуры, | Продажи.ЗаказПокупателя, | Продажи.Подразделение, | Продажи.Проект, | Продажи.Стоимость, | СУММА(Продажи.Количество) КАК Количество |ИЗ | РегистрНакопления.Продажи КАК Продажи | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | ПО Продажи.Регистратор = ПродажиСебестоимость.Регистратор | И Продажи.Номенклатура = ПродажиСебестоимость.Номенклатура | И Продажи.ХарактеристикаНоменклатуры = ПродажиСебестоимость.ХарактеристикаНоменклатуры | И Продажи.ЗаказПокупателя = ПродажиСебестоимость.ЗаказПокупателя | И Продажи.Подразделение = ПродажиСебестоимость.Подразделение | И Продажи.Проект = ПродажиСебестоимость.Проект |ГДЕ | Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО | Продажи.Проект, | Продажи.Подразделение, | Продажи.ЗаказПокупателя, | Продажи.ХарактеристикаНоменклатуры, | Продажи.Номенклатура, | Продажи.Стоимость"; Подскажите где ошибки. |
|||
1
Fragster
гуру
06.09.12
✎
10:22
|
оно не выбирает "одинаковые записи"
|
|||
2
Miss1C
06.09.12
✎
10:23
|
(1)А как выбрать?
|
|||
3
DrShad
06.09.12
✎
10:23
|
ты смотри-ка, фотку выложила
(0) везде ошибки |
|||
4
ssh2006
06.09.12
✎
10:23
|
Отчет по валовой делаешь? Используй виртуальные таблицы оборотов и период задавай в параметрах
|
|||
5
Maxus43
06.09.12
✎
10:24
|
что надо конкретно то? зачем выбирать одинаковые записи?
|
|||
6
DrShad
06.09.12
✎
10:24
|
(2) все зависит от того что ты с ними потом делать будешь
|
|||
7
Miss1C
06.09.12
✎
10:24
|
Создавать менеджер записи, выгружать в ТЗ и методом найти строки сравнивать?
|
|||
8
mehmat
06.09.12
✎
10:24
|
как с такими ногтями код писать?
|
|||
9
DrShad
06.09.12
✎
10:25
|
(7) стоп а менеджер записи для чего!?
|
|||
10
k1us181b
06.09.12
✎
10:27
|
ногти шикарны!
|
|||
11
Miss1C
06.09.12
✎
10:27
|
Нужно выбрать старые записи с базы по регистру накопления "Продажи" и "ПродажиСебестоимость" сравнить их, если будут одинаковые, тогда в регистр "Продажи" в ресурс себестоимость записать себестоимость с регистра "ПродажиСебестоимость".
|
|||
12
Miss1C
06.09.12
✎
10:27
|
(10)Спасибо
|
|||
13
DrShad
06.09.12
✎
10:28
|
(11) а может не стоит? а
|
|||
14
Miss1C
06.09.12
✎
10:28
|
Вот как я вчера делала, только со старыми записями
|
|||
15
Miss1C
06.09.12
✎
10:29
|
(13)Почему?
|
|||
16
Kashemir
06.09.12
✎
10:33
|
(0) Данный запрос покажет все записи регистра продаж с задвоением/троением и т.д в случае наличие подобных записей в регистре себестоимости. Для отбора повторений стоит использовать внутренее соединение, и неясно какую роль играет агрегация по количеству
|
|||
17
orange777
06.09.12
✎
10:34
|
(11)интересно, если они уже одинаковые, зачем их перезаписывать?)
|
|||
18
Kashemir
06.09.12
✎
10:35
|
+(16) Ну и физика тут действительно даром не нужна. Виртуальных таблиц хватит.
|
|||
19
Miss1C
06.09.12
✎
10:36
|
(17)В регистр Продажи добавила ресурс "Себестоимость", по старым записям я должна перенести эту себестоимость с регистра "ПродажиСебестоимость"
|
|||
20
orange777
06.09.12
✎
10:38
|
(19)я не буду спрашивать зачем)
|
|||
21
DrShad
06.09.12
✎
10:39
|
(19) не надо!!!!
|
|||
22
Miss1C
06.09.12
✎
10:39
|
Процедура ОбработкаПроведенияДокументовРеализацииОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
мДок = Источник.Метаданные(); Если Не мДок.Движения.Содержит(Метаданные.РегистрыНакопления.Продажи) Тогда Возврат; КонецЕсли; Если Не мДок.Движения.Содержит(Метаданные.РегистрыНакопления.ПродажиСебестоимость) Тогда Возврат; КонецЕсли; ТЗ = Новый ТаблицаЗначений; Ссылка = Источник.Ссылка; НаборЗаписей = РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Ссылка,Истина); НаборЗаписей.Прочитать(); НЗП = РегистрыНакопления.Продажи.СоздатьНаборЗаписей(); НЗП.Отбор.Регистратор.Установить(Ссылка,Истина); НЗП.Прочитать(); Количество = НаборЗаписей.Количество(); ТЗ = НаборЗаписей.Выгрузить(); ТЗ.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение, Проект", "Стоимость, Количество"); Для Каждого Стр Из НЗП Цикл Отбор = Новый Структура(); Отбор.Вставить("Номенклатура",Стр.Номенклатура); Отбор.Вставить("ХарактеристикаНоменклатуры",Стр.ХарактеристикаНоменклатуры); Отбор.Вставить("ЗаказПокупателя",Стр.ЗаказПокупателя); Отбор.Вставить("Подразделение",Стр.Подразделение); Отбор.Вставить("Проект",Стр.Проект); Строки = ТЗ.НайтиСтроки(Отбор); Стоимость = 0; Количество = 0; Для Каждого Строка Из Строки Цикл Стоимость = Стоимость+Строка.Стоимость; Количество = Количество + Строка.Количество; КонецЦикла; Если Стр.Количество = Количество Тогда Стр.Себестоимость = Стоимость; КонецЕсли; КонецЦикла; НЗП.Записать(); КонецПроцедуры Эта процедура выполнялась когда я новый документ записывала, теперь задание пройтись по старым записям и проставить себестоимость |
|||
23
Miss1C
06.09.12
✎
10:41
|
(20)Для отчета, данных в базе очень много, если отчет с объединением двоих регистров делать, производительность на порядок меньше будит, нежели сразу выбирать себестоимость с регистра на прямую
|
|||
24
PuhUfa
06.09.12
✎
10:43
|
(19) Не спрашивая "зачем", спрошу: в "ресурс "Себестоимость"" новые документы как данные пишут?
|
|||
25
Miss1C
06.09.12
✎
10:44
|
(24)Создала ПодпискуНаСобытие с Событием "ОбработкаПроведения" код см.(22)
|
|||
26
Ненавижу 1С
гуру
06.09.12
✎
10:47
|
на фото тема слегка приоткрыта
|
|||
27
PuhUfa
06.09.12
✎
10:47
|
(25) ну и что будет с твоим ресурсом если просто перепровести старый документ? -)
|
|||
28
orange777
06.09.12
✎
10:48
|
(27)там и продажисебестоимость могут полететь
|
|||
29
Miss1C
06.09.12
✎
10:48
|
(27)Должен записаться
|
|||
30
Miss1C
06.09.12
✎
10:49
|
(28)Почему?
|
|||
31
PuhUfa
06.09.12
✎
10:52
|
(29) Должен или запишется? -) И если ты уверенна в том что запишется, то почему просто взять и не перепровести документы и не городить всего этого в (0)? -)
|
|||
32
Miss1C
06.09.12
✎
10:54
|
(31)Запишется, проверяла
|
|||
33
Miss1C
06.09.12
✎
10:58
|
(31)Не все документы можно перепровести, "Не указаны параметры учетной политики управленческого учета на 1 января 2009 г".
|
|||
34
Miss1C
06.09.12
✎
11:00
|
(31)Управленческий учет. Документ Реализация товаров и услуг ЧК-00087328 от 27.09.2010 15:40:27, табличная часть "Товары"
Не списано по партиям 6 шт. товара Жигулівське 1 л пет, х-ка: , серия: , со склада: НЛ-1 Управленческий учет. Документ Реализация товаров и услуг ЧК-00087328 от 27.09.2010 15:40:27, табличная часть "Товары" Не списано по партиям 10 шт. товара Пляшка 0,5 темна, со склада: НЛ-1 Проведение по партиям остановлено |
|||
35
Ненавижу 1С
гуру
06.09.12
✎
11:00
|
+(26) надо бы тему сильнее раскрыть
|
|||
36
Miss1C
06.09.12
✎
11:01
|
(35)Вы о чем?
|
|||
37
Ненавижу 1С
гуру
06.09.12
✎
11:01
|
(36) о Них
|
|||
38
DrShad
06.09.12
✎
11:02
|
(35) +100500 особенно в свете (34)
|
|||
39
palpetrovich
06.09.12
✎
11:03
|
(19) "в регистр Продажи добавила ресурс "Себестоимость" - это кто-то подсказал так делать или самостоятельное решение?
|
|||
40
Miss1C
06.09.12
✎
11:09
|
(39) Подсказали
|
|||
41
DrShad
06.09.12
✎
11:10
|
(34) вот после этого посмотри что у тебя в этих двух регистрах? т.е. по продажам прошло все, а вот по себестоимости нет :)))
|
|||
42
Miss1C
06.09.12
✎
11:12
|
(41)Нормально все
|
|||
43
DrShad
06.09.12
✎
11:14
|
(42) уверена? если у тебе по партиям не списано, а себестоимость как раз по этому регистру рассчитывается
|
|||
44
palpetrovich
06.09.12
✎
11:20
|
(40) наверное те-же кто и (23) подсказал :) ...откуда интересно такие наблюдения "производительность на порядок меньше будит"?
|
|||
45
DrShad
06.09.12
✎
11:22
|
(44) +100500
учитывая что Себестоимость не ресурс, а реквизит и придется дергать физическую таблицу - скорость будет огромная |
|||
46
Miss1C
06.09.12
✎
11:25
|
(45)Ресурс
|
|||
47
Miss1C
06.09.12
✎
11:25
|
Сейчас доделаю, проверю и выложу результат
|
|||
48
palpetrovich
06.09.12
✎
11:28
|
(47) надеюсь все это не на боевой базе :)
|
|||
49
Miss1C
06.09.12
✎
11:30
|
(48) Конечно нет)
|
|||
50
Конфигуратор1с
06.09.12
✎
11:31
|
(49)ни в коем случае не добавляй ресурс и не трогай регистр. Скорости это не добавит а вот проблем очень много
|
|||
51
neckto
06.09.12
✎
11:40
|
(0) Какая конфа?
|
|||
52
palpetrovich
06.09.12
✎
11:42
|
(51) УТ да Украины по-ходу. или УТП
|
|||
53
neckto
06.09.12
✎
11:44
|
(52) А может УПП?
|
|||
54
Miss1C
06.09.12
✎
11:45
|
УПП
|
|||
55
Miss1C
06.09.12
✎
11:45
|
8.1
|
|||
56
DrShad
06.09.12
✎
11:46
|
(55) О_О как страшно жить!
|
|||
57
neckto
06.09.12
✎
11:46
|
Расчет себестоимости пишет в регистр ПродажиСебестоимость?
|
|||
58
Ненавижу 1С
гуру
06.09.12
✎
11:59
|
(55) все, после этого ты обязана раскрыть тему полностью!
|
|||
59
Coldboy
06.09.12
✎
12:01
|
а я уже ставлю 1С 8.1, чтобы такой помочь)
|
|||
60
Coldboy
06.09.12
✎
12:02
|
конфу тока скажите ...
|
|||
61
Coldboy
06.09.12
✎
12:02
|
а все вижу спс)
|
|||
62
Miss1C
06.09.12
✎
12:05
|
(58)Тему только мой парень может раскрыть
|
|||
63
DrShad
06.09.12
✎
12:08
|
(62) спорное утверждение
|
|||
64
neckto
06.09.12
✎
12:10
|
На (57) ответишь?
|
|||
65
Miss1C
06.09.12
✎
12:11
|
(57)Да
|
|||
66
neckto
06.09.12
✎
12:13
|
А теперь будет массовая запись в два регистра Продажи и Продажи себестоимость. У тебя пользователи будут вешаться. Два регистра сделано не просто так.
|
|||
67
Miss1C
06.09.12
✎
12:16
|
(66)При записи документа, производительность упала на 0.40, это не существенно
|
|||
68
DrShad
06.09.12
✎
12:20
|
(67) а при проведении?
|
|||
69
neckto
06.09.12
✎
12:20
|
Если не влияет на время расчета с/с и пользователи не замечают блокировки, значит объем данных не большой. Тогда нафига (0)?
|
|||
70
DrShad
06.09.12
✎
12:21
|
(69) ибо ОБС (одна бабка сказала)
|
|||
71
Miss1C
06.09.12
✎
12:22
|
(69)За день количество документов может быть больше 1000
|
|||
72
neckto
06.09.12
✎
12:23
|
И что, это много?
|
|||
73
DrShad
06.09.12
✎
12:23
|
(71) РСВ сколько проводится? и что пишет и куда?
|
|||
74
Miss1C
06.09.12
✎
12:26
|
(72)Не очень, но когда начальник захочет сформировать отчет за месяц, как вы думаете быстрее будит отрабатывать запрос с одной виртуальной таблицей или с двумя?
|
|||
75
DrShad
06.09.12
✎
12:27
|
(74) однокуйственно, т.е. он не заметит разницы
|
|||
76
Darky
06.09.12
✎
12:28
|
(0) вообще не понял зачем там соединение, если данные таблицы ПродажиСебестоимость нигде не используются в запросе
(22) пройтись по старым записям можно с помощью НабораЗаписей и отбора по Регистратору Создавать доп.ресурс в регистре не нужно было Если начальство не устраивает скорость построения отчетов - пусть раскошелятся на новый сервер |
|||
77
palpetrovich
06.09.12
✎
12:29
|
(74) дла начальника делать отчет быстро - это зло. Пока формируется отчет, он должен проникаться насколько все это сложно ;)
|
|||
78
Miss1C
06.09.12
✎
12:32
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | Продажи.Номенклатура, | Продажи.ХарактеристикаНоменклатуры, | Продажи.ЗаказПокупателя, | Продажи.Подразделение, | Продажи.Проект, | СУММА(Продажи.Себестоимость) КАК Себестоимость, | СУММА(Продажи.Количество) КАК Количество, | СУММА(ПродажиСебестоимость.Стоимость) КАК Стоимость, | СУММА(ПродажиСебестоимость.Количество) КАК Количество1, | Продажи.Регистратор КАК Регистратор |ИЗ | РегистрНакопления.Продажи КАК Продажи | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | ПО Продажи.Регистратор = ПродажиСебестоимость.Регистратор | И Продажи.Номенклатура = ПродажиСебестоимость.Номенклатура | И Продажи.ХарактеристикаНоменклатуры = ПродажиСебестоимость.ХарактеристикаНоменклатуры | И Продажи.ЗаказПокупателя = ПродажиСебестоимость.ЗаказПокупателя | И Продажи.Подразделение = ПродажиСебестоимость.Подразделение | И Продажи.Проект = ПродажиСебестоимость.Проект |ГДЕ | Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО | Продажи.Проект, | Продажи.Подразделение, | Продажи.ЗаказПокупателя, | Продажи.ХарактеристикаНоменклатуры, | Продажи.Номенклатура, | Продажи.Регистратор |ИТОГИ ПО | Регистратор"; Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон)); Результат = Запрос.Выполнить(); ТабличноеПоле1.Строки.Очистить(); ТабличноеПоле1 = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки(); НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей(); Для Каждого Стр Из ТабличноеПоле1.Строки Цикл Для Каждого Стр1 Из Стр.Строки Цикл Объект = Стр1.ЗаказПокупателя.ПолучитьОбъект(); НаборЗаписей.Отбор.Регистратор.Установить(Объект,Истина); НаборЗаписей.Прочитать(); Для Каждого Строка Из НаборЗаписей Цикл Отбор = Новый Структура(); Отбор.Вставить("Номенклатура",Строка.Номенклатура); Отбор.Вставить("ХарактеристикаНоменклатуры",Строка.ХарактеристикаНоменклатуры); Отбор.Вставить("ЗаказПокупателя",Строка.ЗаказПокупателя); Отбор.Вставить("Подразделение",Строка.Подразделение); Отбор.Вставить("Проект",Строка.Проект); Строки = ТабличноеПоле1.НайтиСтроки(Отбор); Стоимость = 0; Количество = 0; Для Каждого Строк Из Строки Цикл Стоимость = Стоимость+Строк.Стоимость; Количество = Количество + Строк.Количество; КонецЦикла; Если Стр1.Количество = Количество Тогда Стр1.Себестоимость = Стоимость; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; Пытаюсь записать себестоимость в дерево значений, но НаборЗаписей пустой, что не так делаю? |
|||
79
Darky
06.09.12
✎
12:36
|
не нужно объект получать
нужна ссылка |
|||
80
DrShad
06.09.12
✎
12:36
|
(78) какой адский ужас
|
|||
81
DrShad
06.09.12
✎
12:37
|
+(80) никому больше ЭТО не показывай
|
|||
82
Miss1C
06.09.12
✎
12:47
|
(79)Ссылку поставила, все равно тоже самое
|
|||
83
Kashemir
06.09.12
✎
12:49
|
(82) Значит твои заказы покупателей не имеют движения по регистру накопления продажи
ПыСы - код действительно страшен |
|||
84
ssh2006
06.09.12
✎
12:49
|
(78) Мисс, конкретная адресная помощь проблематична. Как-бы это не звучало, но нужно поизучать основы и поразбирать более простые примеры. Если будешь ломать живую базу, то это может иметь неприятные последствия.
|
|||
85
DrShad
06.09.12
✎
12:51
|
(84) она копию ломает
|
|||
86
Miss1C
06.09.12
✎
12:51
|
Мое творение еще будет тестироваться и проверятся программистом, который дал это задание
|
|||
87
Kashemir
06.09.12
✎
12:51
|
+(83) На 2 уровне дерева по идее и нет заказов покупателя - ибо это третья группировка
|
|||
88
Cashtane
06.09.12
✎
12:51
|
(78) "Для Каждого Строка Из НаборЗаписей Цикл". Строка -> ТекСтрока. "Строка" нельзя использовать, ибо служебное слово.
|
|||
89
Miss1C
06.09.12
✎
12:52
|
(87)Есть
|
|||
90
Kashemir
06.09.12
✎
12:53
|
(89) Тогда возьми любой пример заказа в цикле и посмотри в базе - есть ли у него движения по продажам.
|
|||
91
Darky
06.09.12
✎
12:54
|
(82) смотрите, код Вы пишете, пусть немного и нестандартный, но видно, что понятия есть. Единственное, что Вам нужно, так это немного практики и понимания структуры Вашей учетной программы.
В конкретном случае, заказы никак не могут быть регистраторами для регистра Продажи себестоимость (если Вы там чего-то не подкрутили) Посмотрите в конфигураторе, какие регистраторы могут быть у данного регистра накоплений |
|||
92
DrShad
06.09.12
✎
12:55
|
(88) наглая ложь! всегда использую и никаких проблем
|
|||
93
Cashtane
06.09.12
✎
12:58
|
(92) *Ушел учить мат.часть.
|
|||
94
Miss1C
06.09.12
✎
12:58
|
(91)Спасибо, поправила
Объект = Стр1.Регистратор.ПолучитьОбъект(); НаборЗаписей.Отбор.Регистратор.Установить(Объект,Истина); |
|||
95
Miss1C
06.09.12
✎
12:59
|
Но все равно возвращает пустой набор
|
|||
96
Miss1C
06.09.12
✎
13:00
|
(93)Меня учили проверять по Ctrl + Пробел, так что там все правильно
|
|||
97
ssh2006
06.09.12
✎
13:00
|
(94) попробуй мотивировать программиста, давшего задание на совместное его выполнение - и научишься и результат будет.
|
|||
98
Miss1C
06.09.12
✎
13:01
|
(97)Когда делаю сама быстрее научусь
|
|||
99
Kashemir
06.09.12
✎
13:06
|
(94) Вот так надо
//Объект = Стр1.Регистратор.ПолучитьОбъект(); НаборЗаписей.Отбор.Регистратор.Установить(Стр1.Регистратор,Истина); Во-вторых, что мешает воспользоваться отладчиком и (90) и опять же проверить наличие движения по регистру продаж у Стр1.Регистратор ? |
|||
100
ssh2006
06.09.12
✎
13:07
|
(98) Тоже верно, но методом тыка тут не очень хорошо учиться. Нужно понимание. Желательно чтение мануалов/лит-ры/итс, поиск. Занудно. Уровень задач будет возрастать.
Вот например твой код: Объект = Стр1.Регистратор.ПолучитьОбъект(); НаборЗаписей.Отбор.Регистратор.Установить(Объект,Истина); Посмотри что такое объект, что такое ссылка. |
|||
101
МишКа
06.09.12
✎
13:10
|
А может набор записей и должен быть пустым?
|
|||
102
Miss1C
06.09.12
✎
13:11
|
(99)Получилось, спасибки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |