04.07.2012, 10:27 | #1 |
Участник
|
Отчет в Аксапте
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
|
|
04.07.2012, 11:05 | #2 |
MCITP
|
Цитата:
Сообщение от МАГ
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
А вот в каких таблицах смотреть - это уже другой вопрос - надо смотреть в отчёте. В простом случае в ветке DataSource отчёта они будут перечислены. Но есть вероятность что смотреть придётся и поглубже, в код (например метод fetch())... В общем случае ответа на этот вопрос нету
__________________
Zhirenkov Vitaly |
|
04.07.2012, 11:14 | #3 |
Участник
|
Я сам принцип не могу понять))) Таблицы - не могу понять связи, не найду их никак. Например, есть реквизит номенклатуры, который явно куда-то ссылается. А вот куда? Мне бы эту связь понять и заглянуть в таблицу связанную)))
Связи в отчете тоже непонятны: Нашла сначала в Menus, потом по аналогии в NenuItems, потом поискала в Classes. А попроще нельзя? Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код? |
|
04.07.2012, 11:28 | #4 |
Участник
|
чтоб понять принцип, того что и как происходит в аксапте нужно почитать соответствующую литературу (я кэп)). а вообще существуют: перекрестные ссылки, переходы к основной таблице, "правая кнопна мыши\ надстройки \ новое окно \ разные пункты меню" и прочие радости разработчика
PS связи таблиц смотрятся в релейшенах таблиц и EDT |
|
04.07.2012, 11:33 | #5 |
Участник
|
Цитата:
По делу: Отчёт, про корый идёт речь - это объект в разделе AOT\Reports? Он содержит ветку Disigns\...\GeneratedDesign? Какие секции содержит эта ветка? Есть ли там секция с типом Body? Какие контролы содержаться в этой секции? Заполнены ли у них свойства Table, DataField или DataMethod? |
|
04.07.2012, 11:35 | #6 |
MCITP
|
Цитата:
Сообщение от МАГ
Я сам принцип не могу понять))) Таблицы - не могу понять связи, не найду их никак. Например, есть реквизит номенклатуры, который явно куда-то ссылается. А вот куда? Мне бы эту связь понять и заглянуть в таблицу связанную)))
Связи в отчете тоже непонятны: Нашла сначала в Menus, потом по аналогии в NenuItems, потом поискала в Classes. А попроще нельзя? Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код? Почитать бы вам чё-нить для "чайников" лучше для начала... Связи между таблицами могуть задаваться либо в самих таблицах (AOT - Data Dictionary - Tables - Relations), либо на расширенных типах данных (AOT - Data Dictionary - Extended Data Types - Relations). Во втором случае поле в таблице должно иметь данный тип, чтоб эта связь заработала. Попроще? в Меню Айтеме отчёта (в свойствах) конкретно указан объект, который вызывается по этому пункту меню. Можно перейти к этому объекту непосредственно по правой клавише - Открыть используемый объект (или что-то в этом роде). Ну или можно самому найти в AOT данный отчёт (AOT - Reports) или класс (AOT - Classes). Двойной щелчок на отчёт открывает весь его код. Описание случая с классом в данное руководство не входит. ЗЫ заняться просто с утра нечем что-то....
__________________
Zhirenkov Vitaly |
|
04.07.2012, 11:40 | #7 |
Участник
|
С удовольствием бы почитала. Где взять? Аксапту отменяют сразу после перехода на 1с, переход в августе...
Нашла книгу "Введение в язык программирования АКСАПТА (X++)" в электронном виде. А мне бы руководство какое, на русском, я ж английский забыла за 10 лет))) Перекрестные ссылки не канают, там снова меню, в котором я ничего не нашла. Хоть бы как в access увидеть ссылки,а? Вроде раскопала, что реквизит номенклатуры это массив Extended Data Types. Это переменные расширенного типа. Ладно. Как увидеть "внутренности" такой переменной? Из каких данных этот массив? |
|
04.07.2012, 11:42 | #8 |
Axapta
|
Здесь взять.
вышла новая книга по Axapta |
|
|
За это сообщение автора поблагодарили: МАГ (1). |
04.07.2012, 11:49 | #9 |
Участник
|
Назовите хоть что за отчет? Стандартный, стандартный с доработкой или чистая доработка? Хоть Имя назовите?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
04.07.2012, 12:12 | #10 |
Участник
|
Если б я понимала... Скорее всего нестандартный, чистая доработка (мои предположения), называется "Отчет по реализации HP". В Reports я его не нашла (не знаю как искать). С подсказки ZVV, нашла в через MenuItems (просто смотрела КАЖДЫЙ), там определила объект Classes "ERG_HPReportsClass". Открыла двойным нажатием "мыши" и любуюсь. в Declaration Run вот такой текст
public void run() { ERG_Excel ex = new ERG_Excel(); int line = 1; // super(); CustInvoiceJour cij; CustInvoiceTrans cit; InventTable it; ERG_HPItemData itData; // ex.newFile("c:\\hp_report_template.xls", false); ex.newFile(#ReportTemplatePath_RU + "hp_report_template.xls", false); this.queryrun().reset(); while(this.queryrun().next()) { cij = this.queryrun().get(tablenum(CustInvoiceJour)); cit = this.queryrun().get(tablenum(CustInvoiceTrans)); it = this.queryrun().get(tablenum(InventTable)); line ++; ex.insertValue(ERG_Excel::BookMark(line, 1), "FB"); ex.insertValue(ERG_Excel::BookMark(line, 2), cij.OrderAccount); ex.insertValue(ERG_Excel::BookMark(line, 3), mthofyr(cij.InvoiceDate)); ex.insertValue(ERG_Excel::BookMark(line, 4), year(cij.InvoiceDate)); ex.insertValue(ERG_Excel::BookMark(line, 5), it.ERG_VendItemId); itData = ERG_HPItemData::find(it.ERG_GroupsOfPlanningId); ex.insertValue(ERG_excel::BookMark(line, 6), itData.ProductGroup); ex.insertValue(ERG_excel::BookMark(line, 7), itData.ProductLine); ex.insertValue(ERG_excel::BookMark(line, 8), "HP" == it.Dimension[4] ? "HP" : "other OEM"); ex.insertValue(ERG_Excel::BookMark(line, 9), cit.LineAmountMST); ex.insertValue(ERG_Excel::BookMark(line, 10), cit.Qty); ex.insertValue(ERG_Excel::BookMark(line, 11), "RUR"); ex.insertValue(ERG_Excel::BookMark(line, 12), today()); ex.insertValue(ERG_Excel::BookMark(line, 13), ""); ex.insertValue(ERG_Excel::BookMark(line, 14), ERG_HPReportCust::ExistCust(cij.OrderAccount) ? "CSP" : "Transaction customer"); } ex.visible(true); } Меня интересует ProductGroup и ProductLine. Эти штуки есть в таблице InventTable, я так понимаю, только в этой таблице есть лишь ERG_GroupsOfPlanningId, которая является ExtendedType, массив. Уф!!!! Как этот массив посмотреть? Когда он формируется и что туда входит? Мне эту структуру надо в 1с реализовать))) |
|
04.07.2012, 12:38 | #11 |
Участник
|
ERG_GroupsOfPlanningId - это поле в таблице inventTable,
ERG_HPItemData (т.е. idData) - это какой-то справочник,т.е. таблица, где ERG_GroupsOfPlanningId скорей всего является первичным ключом. кусок кода itData = ERG_HPItemData::find(it.ERG_GroupsOfPlanningId); определяет уникальную запись в этом справичнике по этому ключу кусок кода ex.insertValue(ERG_excel::BookMark(line, 6), itData.ProductGroup); ex.insertValue(ERG_excel::BookMark(line, 7), itData.ProductLine); отображает дополнительные поля ProductGroup, ProductLine в этом справочнике этой уникальной записи
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
04.07.2012, 12:50 | #12 |
Участник
|
у поля ERG_GroupsOfPlanningId таблицы inventTable посмотрите в свойствах посмотрите наименования EDT, Встаете на поле - правая кнопка мыш - надстройки - новое окно - открыть использованный расширенный тип данных. У этого EDT скорей всего настроен relation на таблицу ERG_HPItemData.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
04.07.2012, 13:32 | #13 |
Участник
|
ничего личного, но не удивительно, что они переходят с ах на 1с, глядя на этот пример кода. судя по тому что 1снику приходится вникать в код и структуру таблиц, команду "спецов" по ах уже уволили
Последний раз редактировалось ice; 04.07.2012 в 13:34. |
|
04.07.2012, 14:38 | #14 |
Участник
|
Огромное спасибо за отклик!!! Спецов здесь больше нет, я одна. Работаю третью неделю))))
Всё правильно, открыла расширенный тип данных.Relations содержит вот это: ERG_GroupsOfPlanningId = = CopyOfERG_GroupsOfPlanning.GroupId Таблицу CopyOfERG_GroupsOfPlanning я нашла, посмотрела. Оттуда копируется массив значений поля GroupId (типа ключ). Вроде так. А откуда потом берётся ProductGroup и ProductLine? Чуть-чуть осталось, ребята! умнею на глазах! Уже книжку изучаю! |
|
04.07.2012, 14:48 | #15 |
Участник
|
Цитата:
В любом случае Pustik прав: Цитата:
Конечно если в тексте метода ERG_HPItemData::find вдруг внезапно не окажется чего-нибудь непредсказуемого А ссылка на CopyOfERG_GroupsOfPlanning очень похожа на мусор в структуре данных... Последний раз редактировалось S.Kuskov; 04.07.2012 в 14:50. |
|
04.07.2012, 15:06 | #16 |
Участник
|
Да уж...
Forms/ERG_HPReport нашла форму отчета, здесь есть DataSourse вот такая ветка ERG_HPItemData Теперь я умная, правой кнопкой - открыть в новом окне - Используемая таблица и ...ВУАЛЯ! Нашла! Блин, кто такой умный проектировал эту базу?!!!!!! ОГРОМНОЕ-ПРЕОГРОМНОЕ СПАСИБО! Эх, жаль мои знания по 1с не пригодятся, а то я бы!!! Обращайтесь, если что!)) |
|
05.07.2012, 08:41 | #17 |
Участник
|
Цитата:
Которую именно? Что касается отчета, то это специализированный отчет для HP. (сначала его сделали джобом, потом понадобился регулярный...) В меню можно найти форму настройки для этого отчета (которую МАГ и нашла в результате). В форме указываются клиенты, данные по которым попадают в отчет и используемые в HP обозначения для разных групп товаров. Последний раз редактировалось uchenik; 05.07.2012 в 08:58. |
|
|
|