21.12.2001, 15:54 | #1 |
Участник
|
Начальные остатки по складу
Кто-нибудь имеет опыт закачки начальных остатков по складам в модуле Управление запасами? Опишите пожалуйста, с какими проблемами вы при этом сталкивались.
|
|
21.12.2001, 16:31 | #2 |
Участник
|
Мы закачивали номенклатуру - никаких проблем при этом не было.
Остатки заводили вручную через форму Закупки от фиктивного поставщика "начальное сальдо" Думаю, если бы закачивали, то тоже бы не столкнулись ни с какими проблемами. |
|
21.12.2001, 16:41 | #3 |
Участник
|
Проблема в том, что при закачке нужно формировать в частности поле InventDimId, которое в свою очередь прописывается в таблицу InventDim. Заставить систему формировать его при импорте из Excel не получается. Вручную - это не наш случай, количество номенклатурных единиц - 6000...
|
|
21.12.2001, 18:26 | #4 |
Участник
|
Ответ найден. Можно использовать инвентаризацию. При этом система создает сама все нужные идентификаторы во всех таблицах. Остается только изменить количества в таблицах InventSum и InventJournalTrans, стоимости в таблице InventJournalTrans, временно поменять счет прибылей-убытков в номенклатурных группах и можно разносить. :-)))
|
|
02.01.2002, 16:01 | #5 |
сибиряк
|
Так делали мы ...
Я так понял, что вопрос уже решен, но в качестве альтернативного решения
предлагаю свой вариант. К сообщению прикреплен проект TMP_AddData. Распакуйте архив, импортируйте проект в Аксапту. Принцип действия: 1. В таблицы с префиксом TMP_ заносится информация аналогичная родительским таблицам (допустим TMP_inventTable = InventTable). Заполнение таблиц происходит обычными SQL-скриптами, благо сгенерить их очень просто. Поле RecId заполняется любыми уникальными значениями (иначе система не увидит записей). 2. Посмотрите метод TMP_inventJournalTrans класса TMP_insert и поменяйте номера бух/счета и номерной серии на настроенные в вашей компании. 3. Запускается на исполнение Jobик TMP_Start. Таблица TMP_inventTrans - строки остатков. (Склад нахождения, номенклатура , себестоимость, …) В результате в «Управление запасами/Журналы/Складские проводки» создаются несколько журналов по количеству складов. Проверяем , разносим .. В проекте также заносится информация по клиентам/поставщикам, странам, номенклатуре .. и т.д. Ненужное можно легко вырезать )
__________________
С уважением, Вячеслав. |
|
03.01.2002, 12:10 | #6 |
Участник
|
Re: Так делали мы ...
Небольшое замечание:
и что ж вас все в программизм то тянет? Конечно можно и так... Но это очень похоже на удаление гланд автогеном. Цитата:
Изначально опубликовано slava
Поле RecId заполняется любыми уникальными значениями (иначе система не увидит записей). |
|
03.01.2002, 12:38 | #7 |
сибиряк
|
Постановка задачи требовала
Медленно по пунктам
>> ..и что ж вас все в программизм то тянет.. >> Конечно можно и так... Но это очень похоже на удаление гланд автогеном. Задача: Закачка складских остатков. Необходимо перенести в систему порядка 10 тысяч строк. Несложными математическими вычислениями получаем n человеко/часов ручной работы и умножаем его на n/5 число ошибок при ручном вводе и еще на n/20 часов исправления ошибок после ошибок А при далеко не моментальной скорости работы Аксапты со справочником товара объемом этак 100 тысяч наименований, этот процесс можно назвать только одним, и то неприличным словом >> "разработчики не гарантируют правильную работу Аксапты" (С) TechNet. Звездная фраза Надеюсь это только про RecId С уважением, Вячеслав |
|
04.01.2002, 14:15 | #8 |
Участник
|
Итак, вернемся в исходной задаче.
Цитата:
Кто-нибудь имеет опыт закачки начальных остатков по складам в модуле Управление запасами?
Теперь вернемся к исходной задаче. Исходная задача делится на две подзадачи. 1. Закачать список номенклатуры. 2. Ввести (закачать) остатки. Так вот, закачать номенклатуру можно с помщью импорта из текстового файла. На этом форуме эта проблема обсуждалась. И насколько я понимаю, у вас эта подзадача проблем не вызывает. Теперь про ввод остатков. Нормальный механизм ввода остатков в Аксапте - журнал прибылей и убытков по складу или журнал инвентаризации (я бы рекомендовал инвентаризацию). Таким образом, если у вас будет заполненный журнал инвентаризации, то вы элементарно получите остатки в Аксапте. Правильно? Т.е. исходная задача свелась к задаче заполнения журнала инвентаризации. = Создаем новый журнал - Аксапта дает ему номер. = Импортируем строки журнала с помощью того же импорта из текстового файла. = Разносим журнал инвентаризации Единственное что надо сделать - указать номер журнала в импортируемых данных. Таким образом, можно обойтись и без ручного ввода, и без программирования. Теперь про уникальность RecID. Я напомню, что вы предложили Цитата:
Поле RecId заполняется любыми уникальными значениями
Цитата:
Ни в коем случае не "любыми"! Аксапта предполгает, что RecID уникальны в пределах всей базы данных. Если RecID в базе будут дублироваться, то "разработчики не гарантируют правильную работу Аксапты" (С) TechNet.
"In the Axapta database all records have a unique Record ID (RecID), which is an integer" "A record ID uniquely identifies a row of data in a table. Record IDs are integers. They are assigned and managed by Axapta" Т.е. если вы, Slava, заполните RecID "любыми" значениями, то своими же руками нарушите условие целостности базы. Как раз для таких программистов, как вы, Slava, разработчики Аксапты на TechNet'е и сказали, что "Если RecID в базе будут дублироваться, то разработчики не гарантируют правильную работу Аксапты" Таким образом, Slava, ваш сарказм неуместен. И этим самым неприличным словом можно назвать только вас, Slava. С новым годом вас, Slava. Пусть ваши мечты сбудутся. |
|
26.02.2003, 16:53 | #9 |
Administrator
|
Позволю себе реанимировать тему...
Цитата:
Изначально опубликовано mazzy
Т.е. исходная задача свелась к задаче заполнения журнала инвентаризации. ... = Импортируем строки журнала с помощью того же импорта из текстового файла. ... Спасибо.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.02.2003, 17:10 | #10 |
Участник
|
Главное меню \ Администрирование \ Экспорт/Импорт \ Группы определения
Кнопка импортировать |
|
26.02.2003, 17:21 | #11 |
Administrator
|
Я чего-то не понимаю, да? Вроде бы там только из того, что "Файл данных Axapta (*.dat)" можно импортировать...
Ладно, давай по другому вопрос поставлю. Я закачал справочник номенклатуры (это проблем теперь действительно не вызывает ). У меня есть текстовый файл. Пусть даже это CSV-файл. Там записан код номенклатуры (так же, как в закачанном справочнике), количество и стоимость единицы. Проясните мне, пожалуйста, каким образом мне все это закачать в журнал инвентаризации? Что нужно сделать, чтобы сделать это совсем без программерства? Как сделать, чтобы у меня еще и аналитика вся нормально проставилась (Склад(первичная)+Номер партии)? Спасибо.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.02.2003, 17:26 | #12 |
Участник
|
понятно.
создай новую группу. сними галку. зайди в таблицы. наслаждайся http://www.mazzy.ru/axapta/hints/import/ |
|
26.02.2003, 17:27 | #13 |
Участник
|
кстати, еще одно.
если включено авторезервирование, то после импорта возможно придется шаманить Job'ом над классами InventMovement. Будь осторожен, проверь перед рабочим запуском. |
|
26.02.2003, 17:35 | #14 |
Участник
|
Про складскую аналитику.
И еще одно - данные для импорта готовить надо. Что подготовишь то и будет заимпортировано. А готовить данные надо в терминологии таблиц. Т.е. готовить данные для InventDim а в журнал пихать inventDimID. Если у тебя некий конечный набор складских аналитик, то лучше сначала подготовить InventDimID вручную (создав строчки-пустышки со складскими аналитиками, а потом удалив складские строчки-пустышки) Если же у тебя много разных складских аналитик, то надо научится создавать данные для соответствующих таблиц. И еще один хинт: иногда посадить двух-трех девочек на два-три дня дешевле, чем напрягать одного квалифицированного программера в течении недели |
|
26.02.2003, 17:48 | #15 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
Т.е. готовить данные для InventDim а в журнал пихать inventDimID. Если у тебя некий конечный набор складских аналитик, то лучше сначала подготовить InventDimID вручную (создав строчки-пустышки со складскими аналитиками, а потом удалив складские строчки-пустышки) Немного раздражает только то, что никак (или я не разобрался?) нельзя настроить создание строк журнала инвентаризации (того, что по кнопке создается). Он создает какую-то свою сомнительную аналитику и все строки в нее пихает. Кстати, нельзя ли как-нибудь автоматизировать процесс создания пустых аналитик? И как-нибудь можно отслеживать эти аналитики-пустышки потом (ну и прибивать их, чтобы не плодились почем зря)? Цитата:
Изначально опубликовано mazzy
И еще один хинт: иногда посадить двух-трех девочек на два-три дня дешевле, чем напрягать одного квалифицированного программера в течении недели
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
26.02.2003, 18:04 | #16 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Он создает какую-то свою сомнительную аналитику и все строки в нее пихает. Почитай о инвертаризационных группах. Не забывай о кнопке Выбор, когда заполняешь строки Цитата:
Изначально опубликовано Maxim Gorbunov
Кстати, нельзя ли как-нибудь автоматизировать процесс создания пустых аналитик? На что кот ответил: а куда ты хочешь попасть? ...ну и так далее... Как-нибудь автоматизировать завсегда можно. Особенно с хорошим бюджетом Что ты хочешь получить на выходе? В принципе, там ничего сложного нет. Посмотри на InventDim::FindOrCreate() Цитата:
Изначально опубликовано Maxim Gorbunov
И как-нибудь можно отслеживать эти аналитики-пустышки потом (ну и прибивать их, чтобы не плодились почем зря)? На всякий случай насчет прибивать: Я не знаю штатных средств как вычислить какой InvenDimID является неиспользуемым. Если это вычсилить, то "прибить" труда не составляет. |
|
26.02.2003, 18:08 | #17 |
Модератор
|
Из серии "если нельзя, но очень хочется"
В конце концов, можно SystemSequences подправлять create procedure GetNextRecId @DataAreaId varchar(3), @RecId int output as begin set nocount on set ansi_warnings off update SystemSequences set NextVal = NextVal + 1, @RecId = NextVal where DataAreaId = @DataAreaId end хотя это конечно неправильно |
|
27.02.2003, 10:04 | #18 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
Такое ощущение что ты в чем то не разобрался. Почитай о инвертаризационных группах. Не забывай о кнопке Выбор, когда заполняешь строки Цитата:
Изначально опубликовано mazzy
В принципе, там ничего сложного нет. Посмотри на InventDim::FindOrCreate() Цитата:
Изначально опубликовано mazzy
На всякий случай насчет прибивать: Я не знаю штатных средств как вычислить какой InvenDimID является неиспользуемым.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
27.02.2003, 13:49 | #19 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Да, я как раз про это. Ведь есть же ссылки на счета в ГК. Думал, вдруг, что-то подобное и для аналитик сделали. В принципе, такое добро и самому наваять несложно. Подумаю о необходимости этого. Я вспомнил еще один способ, который когда то практиковал. Жаль что я о нем забыл. готовишь данные в Excel'е например. открываешь журнал. При помощи клавиатуры и буфера обмена переносишь строчку из Экселя в Аксапту. ЗАПОМИНАЕШЬ последовательность нажатий клавиш при помощи какой-нибудь программы для макрокоманд (таких дофига) Запускаешь автоповтор твоих действий. Твои нажатия повторяются для всех данных. Главное зациклить свои действия. Способ быстрее и дешевле, чем девочки. Способ позволяет вычислить и гарантировать сроки исполнения, в отличие от программирования поскольку, в общем случае, тебе не нужно разбираться в коде и программных хитростях. Если нужно заполнить всего лишь несколько тысяч строк, то этот способ эффективнее. В общем, попробуй. Может быть, тебе понравится. |
|
27.02.2003, 13:59 | #20 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
Это сложно на самом деле. Попробуй. Цитата:
Изначально опубликовано mazzy
Я вспомнил еще один способ, который когда то практиковал. ... ЗАПОМИНАЕШЬ последовательность нажатий клавиш при помощи какой-нибудь программы для макрокоманд (таких дофига) Запускаешь автоповтор твоих действий.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|