12.11.2003, 12:25 | #1 |
Участник
|
Название таблицы???
Уважаемые Коллеги!
Не подскажет ли кто где названия таблиц то смотреть? Пытаюсь залить информацию в таблицу сотрудников, но не смог найти название этой самой таблицы. Пробовал вариант: открываю таблицу->смотрю в настройки какого-нить поля->далее нажимаю закладку информация и в поле "Название формы" смотрю название таблицы. Правильное ли название я нашёл? PS. Прошу прощения, что не разместил данный постинг в "Доработке Аксапты...". Просто туда достучаться навозможно.
__________________
Спасибо за ответ! |
|
12.11.2003, 12:44 | #2 |
Дмитрий Ерин
|
В принципе, наверное, да. Только там, насколько я понимаю, название формы. Но обычно оно совпадает с названием основной таблицы.
Там можно кнопочку "Правка" нажать - попадете в ветку АОТ с нужной формой. У нее в DataSources есть источник данных (с аналогичным названием), но для пущей уверенности можно посмотреть свойство Table этого источника данных (по правой кнопке -> Свойства). PS: Может, в чем-то я и не прав - сам только разбираюсь. Профи поправят... |
|
12.11.2003, 13:02 | #3 |
Соучастник
|
один из методов.
1) заходите в "расчеты с персоналом/карточка сотрудника". открываете эту форму. 2)в форме карточка сотрудника - правой кнопкой мыши - "настройка" 3)в открывшейся форме закладка "Информация". Название формы "RHRMEmplTable". кнопка редактировать. 4)в открывшемся окне ветка datasource: видим "EmplTable". alt-enter. свойство Table = EmplTable. второй метод: 1)читаем бестрактис по поводу принятого имяобразования объектов. 2)переводим слово сотрудник на английский. 3)открываем AOT и находим нужную таблицу. третий метод(если сгенерированы перекрестные ссылки). 1)Смотрим заголовок необходимой формы с выбранной записью. Видим "Сотрудник - " 2)Сервис-Средства разработки-метка-поиск меток. В поиске вводим "сотрудник" 3)Видим, что меток состоящих только из одного слова "Сотрудник" штук 7-8. 4)Видим, что только одна принадлежит SYS слою - это наша. Т.к. таблица "Сотрудник", явно базовая. 5)Нажимаем кнопку "Чем используется ". Видим \Data Dictionary\Tables\EmplTable.
__________________
View Anton Soldatov's LinkedIn profile |
|
12.11.2003, 13:34 | #4 |
Участник
|
Так вот далее ...
Уважаемые Коллеги!
Огромнейшее Вам спасибо за ответы. Очень благодарен. Теперь постараюсь объяснить зачем всё это было мне нужно. Итак: у меня Аксапта 3.0 SP1 Задача - заполнить (сделать импорт в) таблицу, отвечающую за хранение информации о сотрудниках компании (ФИО, должность, отдел и т.д.). Мои действия: 1. Прочитал на http://axapta.mazzy.ru про импорт данных в Аксапту. 2. Следовал шагам как описано там (создал группу определения --- настройка таблиц (перед этим создал текстовый файл в нормальном виде с разделителем ~) --- указал таблицу EmplTable --- сделал импорт --- было получено сообщение, что "поле Ссылка должно быть заполнено" - Нельзя создать новые строки в таблице окружения >>> ЧТО НЕ ТАК???? - может я поля какие не те выбрал в настройке полей?; может я информации мало при заливе даю? Вот и возникло у меня подозрение, что я залил не в ту таблицу.
__________________
Спасибо за ответ! |
|
12.11.2003, 13:40 | #5 |
Соучастник
|
смотрите код. при создании карточки сотрудника ручками - создаются записи в связанных таблицах.. какие - уже не помню.. в HRMVirtualNetworkTable точно. это таблица уже "наша".. дополнительные параметры типа фотографии/адреса... и вроде строки в "журнале перемещений". так что импортить придется сразу в несколько таблиц.. осторожней только... чревато %))
__________________
View Anton Soldatov's LinkedIn profile |
|
12.11.2003, 13:51 | #6 |
Участник
|
ОК. А дальше?
Ок
Ну хорошо! В datasources указаны такие таблицы: EmplTable, RHRMVirtualNetworkTable, PayParmEmplTrans. Так откуда импортить то начинать? Вот методом тыка получил, что с EmplTable нельзя - ругается. Кстати после импорта в таблицу EmplTable все записи сотрудников, которые были исчезли.
__________________
Спасибо за ответ! |
|
12.11.2003, 14:02 | #7 |
Соучастник
|
смотрите код. в частности метод EmplTable.insert(). Пользуйтесь дебагером. Импортить придется во все. Либо заводить сотрудников руками. А с тем что остальные сотрудники "пропали".. Не пропали они. Просто "не выбраются" из-за ваших импортированных записей : либо удалите то, что насоздавали. либо создайте необходимые записи в связанных таблицах. А вообще - нужно предохраняться перед подобными low-level экспериментами.
__________________
View Anton Soldatov's LinkedIn profile |
|
12.11.2003, 14:48 | #8 |
Участник
|
Про low-level это Вы точно заприметили. Если честно я только только начинаю подходить к основам Аксапты и по этому могу задавать вопросы кажущиеся элементарными для Вас, но отнюдь не для меня.
Поймите верно - я начинающий. Отсюда сами понимаете вопросы -)): 1. где посмотреть указанный Вами метод (посмотрел при вызове правки в методах таблицы EmplTable и ничего не нашёл)? 2. Как удалить то, что насоздавал? Или без удаления выбирать то, что нужно? 3. "создайте необходимые записи в связанных таблицах" - это я так понимаю Вы указываете опять на, то что необходимо будет заливать в связанные таблицы. Да? 4. По поводу предохранения не беспокойтесь. Эту БД я как раз и сделал для подобных экспериментов. -)) Уже устал извиняться за свои "начинающие" вопросы. PS. Вопрос про обнаружение метода указанной таблицы снят. Уже нашёл. PS2 Ещё один вопросик если можно: 5. Не нашёл требуемую ссылку при импорте. Где мне её искать и может быть существуют методики поиска требуемых для заполнения полей?
__________________
Спасибо за ответ! |
|
12.11.2003, 15:07 | #9 |
Соучастник
|
2. один способ - sql запрос.. например delete from empltable where dataareaid='tst' and emplid not in(select EmplId from RHRMVirtualNetworkTable where dataareaid='tst');
второй способ: правой кнопкой на EmplTable-AddIns-Обозреватель таблиц. и ручками выделяете нужные записи и нажимаете кнопочку удаления в toolbar-е 3)да. что необходимо довести дело до конца. и сделать записи в связанных таблицах. 4)хорошо. не буду беспокоиться
__________________
View Anton Soldatov's LinkedIn profile |
|
12.11.2003, 15:26 | #10 |
Участник
|
Антон!
А по поводу 5-го вопроса? Нет ответа? ЗЫ Проверил второй метод. Я наверное неправильно отписал. При импорте вылезает ошибка, что невозможно заполнить какую-то "Ссылку" и поэтому импорт не возможен. Ничего не импортировалось! И в то же время единственная запись, которая была в форме "Карточка сотрудника" исчезла. Поэтому насколько я понял в обозревателе таблиц ничего и нету!
__________________
Спасибо за ответ! |
|
12.11.2003, 15:40 | #11 |
Участник
|
Re: Так вот далее ...
Цитата:
Изначально опубликовано 2b4fITin
Задача - заполнить (сделать импорт в) таблицу, отвечающую за хранение информации о сотрудниках компании (ФИО, должность, отдел и т.д.). ... указал таблицу EmplTable --- сделал импорт --- было получено сообщение, что "поле Ссылка должно быть заполнено" - Нельзя создать новые строки в таблице окружения >>> ЧТО НЕ ТАК???? - может я поля какие не те выбрал в настройке полей?; может я информации мало при заливе даю? Тут дело в связанной таблице HRMVirtualNetworkTable Аксапта часть информации запоминает там. Надо рыть туда. Я бы начал с того, что отключил проверку при записи (validateWrite) при импорте. А заметм периодической операцией сделать Управление персоналом \ Периодические операции \ Построение окружения. Если это не поможет, то сначала надо заполнить HRMVirtualNetworkTable, а затем EmplTable. Если дождетесь вечера, то вечером я проверю. |
|
12.11.2003, 15:56 | #12 |
Участник
|
Извините, что встрял.
пока туда-сюда бегал, Антон Солдатов уже ответил. И еще. Не стесняйтесь спрашивать. Все нормально. Мы все начинали. Цитата:
Изначально опубликовано 2b4fITin
5. Не нашёл требуемую ссылку при импорте. Где мне её искать и может быть существуют методики поиска требуемых для заполнения полей? Существует обратная ссылка из HRMVirtualNetwork. В EmplTable есть validateWrite. Кстати, работа с окружением (HRMvirtualNetwork) типичный пример того, как НЕ НАДО делать! Похоже, эту штуку сделал программист, совершенно не знакомый с принципами устройства Аксапты. В общем, вы начали изучение с, пожалуй, самого тяжелого исключения из правил этой программе. Быстрым способом (без программирования) можно определить список обязательных полей, если создать Excel-шаблон для импорта. Обратите внимание на скрытые строки в этом шаблоне. Чертовски познавательная штука. А выделенные цветом колонки - обязательны к заполнению. Но, если в работу Аксапты вмешался программист, то все может быть гораздо сложнее (как в этом случае ). Надо дополнительно анализировать методы validateWrite, validateField, insert у EmplTable. Ваша ошибка генерируется в классе HRMVirtualNetworkTableReplicate::insert() Скорее всего, вам должен помочь метод с отключением проверки во время импорта. |
|
12.11.2003, 16:05 | #13 |
Участник
|
Цитата:
Изначально опубликовано 2b4fITin
При импорте вылезает ошибка, что невозможно заполнить какую-то "Ссылку" и поэтому импорт не возможен. Ничего не импортировалось! Или поищите сами, где эта ошибка возникает Например, вот так: http://axapta.mazzy.ru/hints/xref/#060 или поставьте точку останова в первой строке метода Info::add() Этот метод используется для вывода любых строк в infolog (даже в корпоративном портале). Спасибо за совет Андрею Васько. |
|
12.11.2003, 17:25 | #14 |
Участник
|
Большое спасибо!
Уважаемый Сергей и Антон!
Большое спасибо Вам за ответы. Информации много пошёл разбираться.
__________________
Спасибо за ответ! |
|
13.11.2003, 05:11 | #15 |
Соучастник
|
Цитата:
Изначально опубликовано 2b4fITin
Про low-level это Вы точно заприметили. Если честно я только только начинаю подходить к основам Аксапты и по этому могу задавать вопросы кажущиеся элементарными для Вас, но отнюдь не для меня. Поймите верно - я начинающий.
__________________
View Anton Soldatov's LinkedIn profile |
|
13.11.2003, 05:44 | #16 |
Соучастник
|
Цитата:
Изначально опубликовано 2b4fITin
Антон! Ничего не импортировалось! И в то же время единственная запись, которая была в форме "Карточка сотрудника" исчезла. либо у вас в группе определений(ГО) стояла галочка "удалить данные компании перед импортом". тогда у вас не только "карточка сотрудника" исчезла. либо, при импорте, аксапта проанализировала вашу ГО, и предложила удалить данные из тех таблиц, которые перечислены в ГО и в которых уже есть данные(в Аксапте). если вы подтвердили предложение удалить - система удалит. но никак не самостоятельно.
__________________
View Anton Soldatov's LinkedIn profile |
|
13.11.2003, 11:24 | #17 |
Участник
|
Не выходит каменный цветок!
Почему то не выходит у меня импортировать данные.
Мои действия: 1. Управление персоналом --- Обработка --- Построение окружения --- Отметил "Сотрудники, Контактные лица, Кандидаты" --- ОК 2. Администрирование --- Экспорт/Ипорт данных --- ГО --- создал группу по импорту сотрудников --- Настройка таблиц (указал HRMVirtualNetworkTable в поле название таблицы; указал файл импорта; отметил пропустить проверку; настройку полей посмотрел, но ничего не менял). 3. Импорт. Получил ошибку "Невозможно создать запись в "Окружение" ('HRMVirtualNetworkTable') Личность: , Сотрудник. Запись уже существует. Одна запись импортирована. 4. Далее по такой же схеме заливаю в EmplTable. Возникает такая же ошибка как и в предыдущем шаге. 5. Пытаюсь посмотреть эту запись. Иду с начала Управление персоналом --- Сотрудник --- Пустая форма???? 6. Пытаюсь посмотреть эту запись в другом месте. Иду с потом Расчёты с персоналом --- Карточка Сотрудника --- Пустая форма???? Что то видимо не так делаю. А что?
__________________
Спасибо за ответ! |
|
13.11.2003, 14:44 | #18 |
Участник
|
хорошо. вечером попробую
|
|
13.11.2003, 15:57 | #19 |
Member
|
Re: Не выходит каменный цветок!
Цитата:
Изначально опубликовано 2b4fITin
...Что то видимо не так делаю. А что?... Например, если бы у вас не была закуплена лицензия на модуль "Управление персоналом", то проблем с окружением не возникало бы. Вообще в полнофункциональной версии данные о сотруднике хранятся в двух табличках. Основная часть данных хранится в EmplTable. Часть данных хранится в HRMVirtualNetworkTable. Данные этой таблицы отображаются на закладке "Личные сведения" карточки сотрудника. Мне только что удалось внаглую импортировать сотрудника, не нарвавшись при этом на ошибки. Смотрите, как я сделал. 1. Создаю текстовый файл с незамысловатым текстом "ХХХХ~Вася Пупкин". 2. Настраиваю группу определений для импорта. Создаю строчку и заполняю поля: Группа определения: "Тест" Название: "Тест" Тип: "Произвольный" Нажимаю кнопку "Настройка таблиц": Название таблицы: "EmplTable" Статус: "Импорт" Имя файла импорта: (тут указываю путь к незамысловатому текстовому файлу) Разделитель записей: "~" Внимание!!! ставлю галку в поле "Пропустить проверку" Жму кнопку "Настройка полей": Имя поля :: Номер поля :: Активный EmplId :: 1 :: [X] Name :: 2 :: [X] Во всех остальных полях галка в поле "Акивный" не стоит. Далее делаю импорт. Система пишет, что "1 проводок импортировано". Захожу в карточку сотрудников. Вижу еще одну запись: Код сотрудника: "ХХХХ" Имя сотрудника: "Вася Пупкин" На закладке "Личные сведения" поля в группах полей "Личные сведения", "Страна", "Виза", и т.д. серенькие (неактивные). Это потому, что в связанной таблице HRMVirtualNetworkTable для записи с новым сотрудником нет соответствующей записи. Тут можно пойти двумя путями. 1. Предположим, "личные сведения" вы тоже хотите импортировать. Сформировать данные для табличики HRMVirtualNetworkTable. Код окружения можно сформировать произвольно, но так, чтобы он не пересекся с соответствующей номерной серией. Посмотрите импорт в связанную таблицу InventDim при импорте номенклатуры по этому поводу (http://www.axforum.info/forums/showt...1236#post21236). Импортировать лучше обе таблички сразу (хотя можно и по очереди). Связь делается по коду сотрудника. 2. "Личные сведения" вам импортировать не нужно (вы их либо вводить не будете, либо введете вручную). После импорта записи в таблицу EmplTable открываем "Управление персоналом\Периодические операции\Обработка\Построение окружения". Ставим галку напротив "Сотрудники". Жмем "ОК". Идем в справочник сотрудников. Выбираем нашего ХХХХ, смотрим на закладку "Личные сведения". Поля личных сведений стали доступными. В них можно вводить данные (можно и не вводить). Запись в таблице HRMVirtualNetworkTable для сотрудника была создана автоматически на основании номерной серии (можете сами проверить). PS. 1. Не нужно ничего программировать. Это вредно и неразумно, если до вас это уже кто-то запрограммировал. Исключением является случай, когда процесс программирования является целью. 2. С полем "Пропустить проверку" нужно работать крайне аккуратно (если вы абсолютно уверены в том, что вы делаете)! Можно все сломать. 3. Всегда делайте резервные копии всего, что только можно, перед таким импортом данных.
__________________
С уважением, glibs® |
|
13.11.2003, 16:18 | #20 |
Участник
|
Re: Re: Не выходит каменный цветок!
Цитата:
Изначально опубликовано glibs
2. С полем "Пропустить проверку" нужно работать крайне аккуратно (если вы абсолютно уверены в том, что вы делаете)! Можно все сломать. 3. Всегда делайте резервные копии всего, что только можно, перед таким импортом данных. Спасибо, glibs. |
|
|
|