|
v7: Помогите разобраться в запросе | ☑ | ||
---|---|---|---|---|
0
Irina3gger
20.07.17
✎
10:48
|
Доброго времени суток. Очень нужна помощь разобраться с запросом в отчете.
Суть в чем, есть Справочник.Объеты в каждом объекте есть ДоговорНаПроектирование - он только один, и может быть неограниченное количество ДопСоглашений. На данный момент в запросе (написанный предыдущем программистом) после формирования выводятся Даты начала проекта и окончания проекта из Справочника по объекту. Но мне нужно чтоб выводились даты из ДопСоглашений если они есть, а если их нет то пусть тянет из Справочника. Когда я пыталась сделать чтоб дата подтягивалась из Доп Соглашений, то она подтягивалась, но только подтягивалась именно то доп соглашение которое был проведен именно в промежуток времени который я указываю перед началом сформированием отчета. Судя из того что я поняла то это проблема в запросе, но я знаю как правильно его написать, помогите пожалуйста. Я новичок в 1С и еще плохо понимаю все привязки. Не судите строго, а лучше помогите. вот модель отчета Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); СоздатьОбъект("Регистр.АктОбъемРабот"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период С НачПер По ОконПер; |ТекДок = Регистр.Обороты.ТекущийДокумент; |Документы = Регистр.Обороты.Документ; |СуммаДог = Регистр.Обороты.СуммаДог; |СуммаДопСогл = Регистр.Обороты.СуммаДопСогл; |_Объект = Регистр.Обороты.Объект; |Объект = Регистр.Обороты.Объект.Наименование; |Код = Регистр.Обороты.Объект.Код; |Заказчик = Регистр.Обороты.Объект.Заказчик; |Отдел = Регистр.Обороты.Объект.Отдел; |Стадия = Регистр.Обороты.Объект.Стадия; |Примеч = Регистр.Обороты.Объект.Прим; |Условие (Стадия.Код <> Строка(1)); |Гип = Регистр.Обороты.Объект.Гип; |ИстФин = Регистр.Обороты.Объект.ИстФин; |Назначение = Регистр.Обороты.Объект.Назначение; |Район = Регистр.Обороты.Объект.Район; |Вотчет = Регистр.Обороты.Объект.Вотчет; |ПризнакПодпис = Регистр.Обороты.ПризнакПодпис; |Группировка Отдел Упорядочить По Отдел.Код; |Группировка Документы Упорядочить По Документы.ДатаДок; |Группировка Вотчет Упорядочить По Вотчет.Код; |Группировка Объект; |Группировка ТекДок; |Функция ОбщСуммаДог = Приход(СуммаДог); |" ; Если ПустаяСтрока(ВНаим) <> 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(Найти(Врег(Объект), Врег(СокрЛП(Внаим))) > 0);"; КонецЕсли; Если ТекИстФин.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(ИстФин = ТекИстФин);"; КонецЕсли; Если ТекЗаказчик.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(Заказчик = ТекЗаказчик);"; КонецЕсли; Если ТекНазнач.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(Назначение = ТекНазнач);"; КонецЕсли; Если ТекРайон.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(Район = ТекРайон);"; КонецЕсли; Если ТекОтдел.Выбран() = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие(Отдел = ТекОтдел);"; КонецЕсли; Если ВывАрхив = 1 Тогда ТекстЗапроса = ТекстЗапроса+"Условие (ТекДок.Объект.Архив = Перечисление.Признак.Да);"; КонецЕсли; Запрос.Выполнить(ТекстЗапроса); Таб.ВывестиСекцию("Маст"); Таб.ВывестиСекцию("Шапка"); Номер = 0; Прим = ""; Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("Отдел"); _СуммаДог = 0; Пока Запрос.Группировка(2) = 1 Цикл Пока Запрос.Группировка(3) = 1 Цикл Пока Запрос.Группировка(4) = 1 Цикл Прим = ""; КолПодпис = 0; КолНеПодпис = 0; ДатаНеПодписАкт = ""; ДатаПодписАкт = ""; Пока Запрос.Группировка(5) = 1 Цикл Если Запрос.Документы.Вид() = "ДоговорНаПроектирование" Тогда СуммаДог = Запрос.СуммаДог; ДогДатаС = Запрос.Документы.НачПроект; ДогДатаПо = Запрос.Документы.ОконПроект; КонецЕсли; Если Запрос.Документы.Вид() = "ДопСоглашение" Тогда Если Запрос.Документы.Сумма <> 1 Тогда СуммаДог = Запрос.Документы.Сумма; КонецЕсли; //ДогДатаС = Запрос.Документы.ДатаСоставления; //ДогДатаПо = Запрос.Документы.ДатаПолучения; ДатаНачПлан = Запрос.Документы.НачПроект; ДатаОконПлан = Запрос.Документы.ОконПроект; Прим = "Доп. согл " + Запрос.Документы.НомерДоговора; КонецЕсли; КонецЦикла; Если ПустаяСтрока(Стоим) <> 1 Тогда Если Число(СуммаДог) > Число(Стоим) Тогда Номер = Номер + 1; Таб.ВывестиСекцию("Данные"); _СуммаДог = _СуммаДог + СуммаДог; КонецЕсли; Иначе Номер = Номер + 1; Таб.ВывестиСекцию("Данные"); _СуммаДог = _СуммаДог + СуммаДог; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; |
|||
28
MrAvPika
20.07.17
✎
11:23
|
(26) Иконка не обновилась просто, кликай по иконке, откроется свежее фото
|
|||
29
Irina3gger
20.07.17
✎
11:26
|
(24) ДопСоглашение привязано к конкретному объекту из справочника.
Есть объект из справочника, и по его личному коды к нему привяза куча документов разных, в том числе и ДопСоглашение |
|||
30
HawkEye
20.07.17
✎
11:35
|
(23) именно! ))))
начини с описания метаданных. есть Справочник.Объеты у него есть реквизит ДоговорНаПроектирование - что такое договор на проектирование? документ? еще есть документ.ДопСоглашение - он как связан с объектом? у него есть реквизит? на Объект? или на ДоговорНаПроектирование? |
|||
31
HawkEye
20.07.17
✎
11:38
|
(29) ага...
значит 1. Справочник.Объект 2. документ.ДоговорНаПроектирование 3. документ.ДопСоглашение у 1 есть реквизит "ДоговорНаПроектирование" с ссылкой на 2. у 3 есть реквизит "Объект" с ссылкой на 1 так? |
|||
32
Irina3gger
20.07.17
✎
11:40
|
(31) нет
у 2 и 3 есть реквизиты на объект |
|||
33
Irina3gger
20.07.17
✎
11:46
|
(31) и у документ.ДоговорНаПроектирование,
и у документ.ДопСоглашение есть Реквизит шапки под названием "Объект" |
|||
34
пипец
20.07.17
✎
11:55
|
кажись я даже знаком с похожими конфигурациями ))) там сдается мне (к подчиненному) справочнику привязан документ как объект с табличной частью
|
|||
35
Irina3gger
20.07.17
✎
11:59
|
(34) да в Документе.ДоговорНаПроектирование есть табличная часть
|
|||
36
пипец
20.07.17
✎
12:14
|
(35) в данном случае нужно таки понять тебе нужен запрос к регистру (и что там таки его в реквизитах справочник или документ) или к документам ? на самом деле таки всё просто как пепелац ))) можешь соединить таки переменную ну например через точку (не сильно комильфо но таки можно) или можно еще внешнюю функцию налепить в запрос где проверять условие , но притормаживать будет яростно ))) или таки перейти к прямым запросам через ту же 1с++
-- пример внешней функции давать ? или сообразишь ? |
|||
37
Irina3gger
20.07.17
✎
12:38
|
если я все правильно поняла, мне нужно вытянуть дату из ДопСоглашения, а значит мне нужен запрос к документу
это значит что в запросе надо дописать что-то или полностью его переписывать? я сегодня целый день изучаю запросы и их написание, и уже мозг кипит, запуталась ужасно. а с внешней 1с++ я вообще не знакома, она есть, но я в ней ни разу запрос не писала |
|||
38
Ёпрст
20.07.17
✎
12:40
|
(37) запрос тут вообще не причем.
Для начала, нужно описать структуру твоей ИБ и что и зачем вы пихаете в регистр. Потом спросить, как получить то-то и то-то. |
|||
39
Irina3gger
20.07.17
✎
12:45
|
(38)как мне описать Вам структуру, чтоб вы мне помогли понять как вообще это все работает
|
|||
40
Ёпрст
20.07.17
✎
12:52
|
(39)
выложи мд свой. |
|||
41
Irina3gger
20.07.17
✎
12:54
|
(40)мд? что это?
|
|||
42
1dvd
20.07.17
✎
12:55
|
(41) файл конфигурации
|
|||
43
Irina3gger
20.07.17
✎
12:56
|
(42)хорошо, как это сделать?
|
|||
44
Irina3gger
20.07.17
✎
12:58
|
(42)где взять файл конфигурации?
|
|||
45
Смотрящий
20.07.17
✎
12:58
|
В каталоге базы файлик 1cv7.md
|
|||
46
пипец
20.07.17
✎
13:00
|
бядабяда ))))
|
|||
47
Злопчинский
20.07.17
✎
13:02
|
Наблюдаю.
|
|||
48
Irina3gger
20.07.17
✎
13:02
|
(45) вот ссылка
https://ru.files.fm/down.php?i=wusg4jw7&n=1Cv7.MD |
|||
49
Irina3gger
20.07.17
✎
13:03
|
(46) я работаю с 1с только месяц, и поэтому я очень многого не знаю, и именно поэтому я обращаюсь сюда помощью
|
|||
50
пипец
20.07.17
✎
13:07
|
(49) ничо ничо , продолжайте, ничего страшного, желательно конечно про структуру 1С почитать хотя б немного
|
|||
51
Irina3gger
20.07.17
✎
13:10
|
(50) читала, но запоминаю только то с чем сталкиваюсь на практике, многие доработки сама могу сделать и делаю, но вот тут что-то не могу понять что происходит и что нужно чтоб решить поставленную задачу
|
|||
52
Смотрящий
20.07.17
✎
13:11
|
(48) Какой-то мрачный самопис
|
|||
53
Смотрящий
20.07.17
✎
13:12
|
(51) А как отчет называется который ты скорежить хочешь ? Он в составе конфы или внешний ?
|
|||
54
Злопчинский
20.07.17
✎
13:16
|
Налетай, не дерись, покупай самопись!
https://www.youtube.com/watch?v=Eu5AhZNp_Ok |
|||
55
Irina3gger
20.07.17
✎
13:16
|
(53) ОтчетПоРаботеВсеПодразд11, он в составе конфы
|
|||
56
Смотрящий
20.07.17
✎
13:31
|
(55) Даты должны тянуться из последнего допСоглашения ?
|
|||
57
Irina3gger
20.07.17
✎
13:31
|
(56)да
|
|||
58
Ёпрст
20.07.17
✎
13:34
|
Да уж..жесть какая-то а не конфа.
Один только поиск в справочнике чего стоит. |
|||
59
Ёпрст
20.07.17
✎
13:34
|
через выборку элементов
|
|||
60
Irina3gger
20.07.17
✎
13:36
|
(58) какая есть, если мне получится в ней разобраться, то может все поменяю, но сейчас боюсь только все сломать
|
|||
61
пипец
20.07.17
✎
13:36
|
хмм для таких вещей используют периодический реквизит справочника например и валят туда документы - всё проще ...
|
|||
62
Ёпрст
20.07.17
✎
13:43
|
посмотрел стуктуру регистра, это даже не Полный ПЭ, это - п...ц.
|
|||
63
Ёпрст
20.07.17
✎
13:44
|
а вот за такое
Регистр.Обороты.Документ = ТекущийДокумент(); надо вообще увольнять |
|||
64
Ёпрст
20.07.17
✎
13:44
|
Регистр назвали Обороты и сделали его Остатковым.
Еще и не закрывается никогда. |
|||
65
Irina3gger
20.07.17
✎
13:45
|
(63) что такое Полный ПЭ?
и почему за это надо увольнять, и что это вообще значит? |
|||
66
Ёпрст
20.07.17
✎
13:47
|
Остальные регистры, тоже ураган.
С такими наборами измерений, они точно никогда не закрываются. |
|||
67
Ёпрст
20.07.17
✎
13:48
|
(65) Это значит, что тот, кто писал эту конфу мало знаком с регистрами, от слова совсем.
|
|||
68
Ёпрст
20.07.17
✎
13:48
|
Эта конфа - пособие, как не надо делать.
|
|||
69
1dvd
20.07.17
✎
13:52
|
Если сам Ёпрст ругается, то дела правда плохи
|
|||
70
Смотрящий
20.07.17
✎
13:53
|
Ну не все так плохо ;)
|
|||
71
Irina3gger
20.07.17
✎
13:58
|
Вы меня пугаете. Предыдущий программист как сказал пока работает я ни чего трогать не буду и меня тоже. И вот он уволился а я разбираюсь с этим
|
|||
72
Ёпрст
20.07.17
✎
14:01
|
(71) Лысым уволился ? По какому принципу людей на АЭС набирают у вас ?
|
|||
73
Irina3gger
20.07.17
✎
14:03
|
(72) без понятия. Меня больше беспокоит что я не могу разобраться с тем что он оставил.
|
|||
74
Ёпрст
20.07.17
✎
14:11
|
(73) по-уму, там нужно всё переписывать.
У вас нет ни одного правильного спроектированного регистра. Что вы там в них учитываете - загадка. Куча левых измерений, которые даже ничем не заполняете. Ну пихать текущий документ в измерение регистра, когда и так он есть априори, это тот еще "подарок". Этим вы делаете 100% незакрытие останкового регистра. + в половине регистров у вас есть даты и строки в измерениях. Судя по коду, при приходе и расходе, они у вас всегда разные. Это тоже -"незакрытый" регистр. Зачем они там нужны - хз. |
|||
75
Ёпрст
20.07.17
✎
14:13
|
Код с использованием goto, такое редко встретишь.
Изменять справочники в момент проведения не есть гуд, использовать чорные запросы в модуле проведения - тоже. Хранить историю в справочнике и изменять её в модуле проведения - аналогично. |
|||
76
Irina3gger
20.07.17
✎
14:16
|
(75) Звучит ужасно. Я даже без понятия как все что вы перечислили изменить и как то исправить. Когда у меня возникают вопросы иногда в самых простых задачах. Подскажите пожалуйста как сделать ту задачу что мне поставили?
|
|||
77
Ёпрст
20.07.17
✎
14:16
|
Поиск в списке справочника - вообще шедевр, при условии, что есть быстрый поиск всправочнике штатно.
|
|||
78
Ёпрст
20.07.17
✎
14:16
|
(76) беги оттуда
|
|||
79
Ёпрст
20.07.17
✎
14:16
|
:)
|
|||
80
Irina3gger
20.07.17
✎
14:17
|
(79) не могу, у меня тут преддипломная практика, мне в любом случае надо тут работать. и именно поэтому общаюсь за помощью
|
|||
81
Ц_У
20.07.17
✎
14:19
|
(80) бедный ребенок, ладно 1С, но 7.7., за что тебя так?
|
|||
82
Irina3gger
20.07.17
✎
14:20
|
(81)так вышло
|
|||
83
vadim777
20.07.17
✎
14:24
|
(0) Уже в самом описании проблемы логические ошибки:
.... Суть в чем, есть Справочник.Объеты в каждом объекте есть ДоговорНаПроектирование - он только один, и может быть неограниченное количество ДопСоглашений. .... На самом деле, Объект является реквизитом документов как ДоговорНаПроектирование, так и ДопСоглашение. Ничто не мешает созданию этих документов в любом количестве. |
|||
84
Ёпрст
20.07.17
✎
14:28
|
(80) ну смотри.
в запросе в (0) 1. Переменная Документы = и группировка Документы, не нужна, выкидываем 2.Группировка Отдел, не нужна, выкидываем, ибо в документах у тебя, это измерение Нигде не заполняется. 3.Группировка вОтчет, Объект - выкидываем, ибо далее, в коде, ты никак не используешь эти группировки, от слова совсем. И того: тебе нужна только группировка по текущему документу регистра. Что тебе там еще то надо от него ? |
|||
85
Irina3gger
20.07.17
✎
14:31
|
(84) Мне нужно что ДатаОкончания подтягивалась с последнего проведенного ДопСоглашения
|
|||
86
vadim777
20.07.17
✎
14:38
|
(85) У тебя параллельно с регистром Обороты, заполняется Справочник ПоОбъекту. Почему-бы по нему запрос не сделать?
|
|||
87
Irina3gger
20.07.17
✎
14:42
|
(86) потому что это первый запрос 1С в моей жизни, и я даже толком не знаю как это сделать, именно поэтому и обратилась к Вам за помощью
|
|||
88
vadim777
20.07.17
✎
14:53
|
(87) Попробуй создать отчет с помощью Конструктора отчетов. В конфигураторе стань на ветвь Отчеты, и создай новый отчет - откроется Конструктор отчетов.
|
|||
89
Ёпрст
20.07.17
✎
14:55
|
(85)
в финале, как отчет должен выглядеть ? |
|||
90
Irina3gger
20.07.17
✎
15:04
|
(89) так же как и выглядил) там же в табличной части видно.
если что вот скрин то как он сейчас выглядит когда формируется Ссылка на файлы: https://ru.files.fm/u/hekx4x9r |
|||
91
Ёпрст
20.07.17
✎
15:13
|
(90) круто.
Теперь ответь, зачем тебе вообще данные брать из регистра ? Когда ты из него, окромя своего Объекта не берешь ничего ? Или ты хочешь узнать только, приход Объекта? |
|||
92
Злопчинский
20.07.17
✎
15:13
|
(81) ты видишь, что дети творят когда им в руки дали 77-калаш, а ты представляешь, что эти дети могут натворить, если им дать 8-тяжелуюартилерию?
|
|||
93
Ёпрст
20.07.17
✎
15:13
|
Тебе сумма, нужна из регистра по приходу за период, или нужна сумма и дата из последнего ДопСоглашения ?
|
|||
94
Ёпрст
20.07.17
✎
15:14
|
И это, последнее ДопСоглашение, это какое ? Какое попало в регистр за этот период, или последнее в базе ?
|
|||
95
Ёпрст
20.07.17
✎
15:14
|
(92) теперь понятно, откуда Чернобыль появился.
|
|||
96
Irina3gger
20.07.17
✎
15:16
|
(95)я как понимаю мне надо последний который был сохранен в базу
|
|||
97
Ёпрст
20.07.17
✎
15:18
|
(96) круто. Тогда зачем тебе данные из регистра и период в нём ?
Может того, будешь обходить весь справочник ? |
|||
98
Irina3gger
20.07.17
✎
15:21
|
(97) наверно это было сделано потому что не во всех объектах есть ДопСоглашение
|
|||
99
Ёпрст
20.07.17
✎
15:29
|
(98) на вот
https://cloud.mail.ru/public/BiGY/PiePDz1bz |
|||
100
Ц_У
20.07.17
✎
15:31
|
(99) Хрень! :)))
|
|||
101
Ёпрст
20.07.17
✎
15:32
|
||||
102
Ёпрст
20.07.17
✎
15:32
|
думаю, это то, че тебе надо
|
|||
103
Ёпрст
20.07.17
✎
15:32
|
Иначе, непонятно, зачем тебе вообще впёрся этот регистр
|
|||
104
Irina3gger
20.07.17
✎
15:34
|
(103)спасибо за помощь. А можно попросить ваш контактный имейл чтоб спрашивать совета, потому что мне ни кто не может на работе подсказать с 1с
|
|||
105
Ёпрст
20.07.17
✎
15:37
|
(104) ты пиши тут
|
|||
106
Irina3gger
20.07.17
✎
15:41
|
(105)но вы же не всегда тут, но форум замечатетльный, я тут и информацию читаю и книгу и совета спрашиваю
|
|||
107
Ёпрст
20.07.17
✎
15:42
|
(106) Тут знающих клюшки вагон и маленькая тележка.
|
|||
108
aka AMIGO
20.07.17
✎
15:44
|
Поскольку всё и всем ясно, спрошу я.. Забавная конструкция - объявлена переменная без имени :)
https://i.paste.pics/40ff9cc4f5ef024da1c03ee933e11914.png |
|||
109
Злопчинский
20.07.17
✎
15:53
|
(108) Гы-Гы-..Пы.. экономика...
поянтно, откуда у нас такая экономика... ;-) |
|||
110
Злопчинский
20.07.17
✎
15:54
|
(107) тут осталась маленькое стадо мохнатых мамонтов, которые бродят по широким равнинам клюшек... иногда кого-то встречают.. ;-)
|
|||
111
Злопчинский
20.07.17
✎
15:56
|
ааа...аа... барановичи.. Волклвыск.. Овруч.. Суходол... Песчатка.. Кувырдяки.. Плетюганы.. Блювиничи.... Малорита...
РОДИНА! Автор, ты спрашивай, спрашивай здесь. белорусские партизаны помогут... Тут даже из Бреста как минимум 2 человека есть |
|||
112
aka AMIGO
20.07.17
✎
15:57
|
(109) И тем не менее, синтаксических ошибок нет :)
Одноместная операция :) |
|||
113
Сияющий Асинхраль
20.07.17
✎
15:59
|
(112) Ага. Первый раз такое заметил, но судя по всему СоздатьОбъект() можно записать куда угодно не присваивая значение, СоздатьОбъект("бухгалтерскиеитоги") работает также, то бишь не работает, но ошибок не выдает...
|
|||
114
Irina3gger
20.07.17
✎
16:00
|
(111)я тоже с Бреста)
|
|||
115
aka AMIGO
20.07.17
✎
16:04
|
(113) Видимо, синтакс-анализатор обладает определенным пофигизмом, а интерпретатор ему вторит :)
|
|||
116
Ёпрст
20.07.17
✎
16:06
|
(115) непонятно, чему вы удивляетесь ?
СоздатьОбъект() - это всего лишь системная функция, которая что-то возвращает. Необязательно в коде результат функции присваивать переменной. Тут нет никакой ошибки или фичи. |
|||
117
Ёпрст
20.07.17
✎
16:08
|
Это всё равно, что написать
Функция Вася() Сообщить("Лошпед") КонецФункции Вася();Вася();Вася();Вася(); Петя=Вася(); |
|||
118
aka AMIGO
20.07.17
✎
16:08
|
(114) Ирина, закомментируй в модуле эту строку.. Нехорошо оставлять непонятные конструкции, которые могу невесть чем обернуться.
//СоздатьОбъект("Регистр.АктОбъемРабот"); (116) Да это-то как-раз и ясно. Тут не синтаксис, а смысл кода утерян |
|||
119
Сияющий Асинхраль
20.07.17
✎
16:09
|
(115) Попробовал в восьмерке :-) "Новый" без левой части сделать не дает, да и вообще какую-либо встроенную функцию без выражения тоже не дает написать...
|
|||
120
aka AMIGO
20.07.17
✎
16:09
|
(119) 8-ка - зубастая :)
|
|||
121
HawkEye
20.07.17
✎
16:56
|
весело у вас тут )
|
|||
122
Злопчинский
20.07.17
✎
17:34
|
(114) ну дык я завтреца как раз из мск в брест стартую.
так что можно очно рассказать что и как в кафе заи бутылочкой кофе... ;-))) |
|||
123
vadim777
20.07.17
✎
17:57
|
(122) Фотоотчет будет?
|
|||
124
HawkEye
20.07.17
✎
18:07
|
(122) а я завтра в Москоу )) на МАКС )
|
|||
125
Злопчинский
20.07.17
✎
20:23
|
(123) это вам не мистасборище гопников ;-)
|
|||
126
san4ez1008
21.07.17
✎
09:01
|
(108) это..я тут случайно заметил..а где взять такую хрень, которая код свернет (слева от кода минус для сворачивания)?
|
|||
127
Ёпрст
21.07.17
✎
09:11
|
(126) scicolorer
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |