AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.07.2002, 11:03   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Строки журналов
Управление запасами -> Журнал (например Прибыль/Убыток) -> Строки.

После сохранения новой строки, пропадает возможность сменить в ней номенклатуру. Сдается мне, что это не спроста - что то происходит в системе в момент сохранения записи - вопрос что ? Пробовал посмотреть отладчиком - происходит много чего - а насколько это критично, сразу и не поймешь. Смотрел мониторинг SQL запросов - при сохранении только что введенной записи происходит всего один INSERT - собственно в InventJournalTrans. Но почему то же нельзя менять номенклату в сохраненной записи ? Какое ваше мнение по этому поводу.
Старый 18.07.2002, 12:00   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Пробовал посмотреть отладчиком - происходит много чего - а насколько это критично, сразу и не поймешь. Смотрел мониторинг SQL запросов - при сохранении только что введенной записи происходит всего один INSERT - собственно в InventJournalTrans.
Сам же и поправлюсь - плохо пробовал. Если не указано количество, то все действительно так, но если указать количество номенклатуры - то проходит еще один UPDATE по InvetSum.

То есть как я понимаю, изменять номенклатуру напрямую нельзя - иначе в InventSum будет неверная информация.

Тогда другой вариант. Добавляем кнопку, по нажатию на которую в строках журнала создается новая строка, все данные кроме названия номенклатуры копируются в нее из старой строки, название номенклатуры запрашивается у пользователяи то же заносится в новую строку, старая строка удаляется.

Если я буду удалять старую строку вот таким способом:

PHP код:
    QueryRun qr;
    ;

    
super();

    
qr InventJournalTrans_ds.queryRun();
    
inventJournalTr qr.get(tableNum(InventJournalTrans));

    
inventJournalTr.delete();
    
InventJournalTrans_ds.research(); 
это безопасно. Я не нарушу правильность информации.
Старый 06.08.2002, 17:03   #3  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Скорее всего проблема в том, что на соответствующем поле в таблице свойство AllowEdit установлено в No, а AllowEditOnCreate в Yes. Поэтому значение поля можно изменять только при создании. Установи AllowEdit в Yes, тогда поле будет доступно для редактирования всегда.
Старый 06.08.2002, 17:27   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Строки журналов
Цитата:
Изначально опубликовано Андре
После сохранения новой строки, пропадает возможность сменить в ней номенклатуру. Сдается мне, что это не спроста
Неспроста.
При создании строки журнала создаются InventTrans.
Посмотри на складские проводки из журнала (Кнопка Склад, Проводки)
А складская проводка может быть не одна. Если установлено авторезервирование или автопометка и есть серийные номера или партии... то их может быть много. Безопасно ли их удалять? ХЗ. По-моему, не стоит.
Старый 06.08.2002, 18:42   #5  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
почему?
Насколько я понимаю, одна строка журнала соответствует одной проводке.
А при чем тут серийные номера, ведь для одной строки я все равно могу указать только одну складскую аналитику. А резервирование, насколько я помню (хотя было это давно и мог и забыть) просто меняет статус проводки.
Авторезервирование в складских журналах не пробовал - оно там вообще есть, или авторезервирование актуально только для заказов?

Вообще с тем фактом, что резервирование является складской проводкой, связана очень интересная грабля, на которую было однажды наступлено.
А именно - для корректного отображения остатков по складу резервировать всегда стоит с конкретного склада (хотя механизм складской аналитики позволяет и иное).
Тогда, если у компании есть выделенный склад хранения и выделенный склад отгрузки, и имется 2 продавца, один из которых зарезервировал товар на складе отгрузки, а другой - точно такой же товар на складе хранения (из-за нехватки товара на складе отгрузки), то если второй отгружает свой товар раньше, то его придется либо вести (неоправданные издержки, так как тот же товар уже есть на складе отгрузки), либо мониторить такие ситуации вручную, и снимать/проставлять резервы вручную, следя при этом, чтобы товар не перехватил кто-то еще Уйти от такой ситуации при сохранении механизма резервирования как складской проводки по моему мнению, невозможно. Возможно, если резерв является складской аналитикой, однако это уже писать надо
Старый 06.08.2002, 19:01   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: почему?
Цитата:
Изначально опубликовано komar
Насколько я понимаю, одна строка журнала соответствует одной проводке.
А при чем тут серийные номера, ведь для одной строки я все равно могу указать только одну складскую аналитику.
Есть возможность пропускать аналитику. Тогда Аксапта сама подбирает значения.

А вообще говоря, каждое создание строки журнала, заказа, закупки приводит к вызову InventMovement. Этот класс работает по разному в зависимости от RecID.

Если RecID = 0, то класс считает, что запись новая и ИНИЦИАЛИЗИРУЕТ ее.
Если RecID != 0, то класс ОБНОВЛЯЕТ запись. При этом считает, что обновляется тот же артикул. Класс предполагает, что артикул не изменяется.
Старый 07.08.2002, 09:37   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Удаление проводок
to komar
Всякую складскую проводку можно разбить на некоторое кол-во строк не меняя ни каких аналитик (На форме Проводки кнопка Функции\Разбиение), а так же ручками зарегистрироовать\зарезервировать.

to Андре
Метод delete на InventJournalTrans перекрыт и в нем делаются все действия по удалению проводок из InventTrans (в т.ч. update InventSum) и удаление книги складского журнала, если в ней законцились строки. Так что твоё удаление неразнесенных строк не опасно.

to mazzy
Удаление непроведенных по главной книге складских проводок никому еще не мешало (если не делать doDelete ), так как складские остатки обновляются в методе delete на InventTrans. Но, конечно, лучше чтобы проводки удалялись вместе со строками (заказ, закупка, журнал и т.д.) на этот лот ссылающимся (что обычно и делается)
Кстати, есть даже такой классик InventUpd_DeleteMovement
Старый 07.08.2002, 10:50   #8  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
?
Только значит ли это, что одной строке журнала может соответствовать несколько складских проводок? Я такого не встречал, однако, если это возможно...речь идет не о разделении одной строки на 2, а именно, о соответствии "строка документа--складская проводка".
Старый 07.08.2002, 10:59   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Есть соответствие "строка журнала - номер лота", а лот подразумевает 1 или несколько записей в InventTrans объединенных тем же номером лота. Причина возникновения нескольких проводок не важна, главное что это возможно.
Старый 07.08.2002, 12:01   #10  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
?
Извиняюсь - еще раз уточню вопрос - несколько складских проводок с тем же статусом.
Интересна же мне следующая задача - как создать, например, по строке заказа (или журнала) несколько складских проводок прихода, например, на разный склад (или возьмем любую другую складскую аналитику).
Что-то подсказывает мне, что такое сделать мне не удастся. Вывод такой делаю из следующего - если я указываю аналитику в обязательном порядке, то для каждой строки она заполняется однозначно. Если не указываю, то товар и приходуется/расходуется с пустым значением аналитики (то есть отсутствие значения аналитики вопринимается системой как одно из значений оной). В любом другом случае смысл генерить несколько проводок прихода по одному лоту, связанных с одной строкой журнала или заказа кажется неочевидным. Если такие проводки в системе создаются, то причины их возникновения (если это не модификация) как раз очень интересны.

Еще вопрос - разве автоматическое резервирование в журналах действует? Ручное действует, а автоматическое?
Старый 07.08.2002, 15:59   #11  
Алексей Контев is offline
Алексей Контев
Участник
 
118 / 31 (2) +++
Регистрация: 28.12.2001
Адрес: Барнаул
Несколько строк проводок по одному заказу и т.п.
Ну, во-первых, если в закупке не ставить партию, она генерится автоматически (создается новая в зависимости от настроек Группы складской аналитики в модуле "Управление запасами"), а ,если поставить, то добавляет проводки в выбранную партию.

В расходе (заказы,журналы), если не проставлять партию в строках, берется N доступных партий, где есть остатки, и 1 запись со статусом "заказано", если товара на складе не хватило. (Могут быть варианты при разных настройках резервирования товара).

Кроме того, если в настройках Управление запасами\Настройки \Разное в поле "Автоматическое добавление" не стоит галочка, то при корректировке количества по строке заказа в большую сторону, например, с 3 на 5, добавится строка проводок с количеством 2, а не исправится 3 на 5.

Далее, при обработке частичных продаж (немедленная поставка) по строке заказа, каждая строка в InvnetTrans может делится на несколько строк и т.д. и т.п.
Старый 07.08.2002, 16:02   #12  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Изначально опубликовано komar
Интересна же мне следующая задача - как создать, например, по строке заказа (или журнала) несколько складских проводок прихода, например, на разный склад (или возьмем любую другую складскую аналитику).
Что-то подсказывает мне, что такое сделать мне не удастся. Вывод такой делаю из следующего - если я указываю аналитику в обязательном порядке, то для каждой строки она заполняется однозначно. Если не указываю, то товар и приходуется/расходуется с пустым значением аналитики (то есть отсутствие значения аналитики вопринимается системой как одно из значений оной). В любом другом случае смысл генерить несколько проводок прихода по одному лоту, связанных с одной строкой журнала или заказа кажется неочевидным. Если такие проводки в системе создаются, то причины их возникновения (если это не модификация) как раз очень интересны.
1. Создаешь строку пакета журнала складских проводок.
2. Делаешь приход 10 единиц (штук, например) чего-нибудь (вводишь данные в строку без разноски).
3. Нажимаешь кнопочку Склад\Регистрация.
4. Нажимаешь Разбиение. Вводишь 1. И т.д.
5. Потом регистрируешь все приходы на разные склады.

т.о. можешь 10 единиц оприходовать на 10 разных складов (если эти единицы имеют аналитику склад). Еще до разноски можешь посмотреть складские проводки (10 шт.)(Склад\Проводки). Можешь разбить на 5 и 5, чтобы не мучаться.

Вроде все просто. Или я неправильно понял вопрос?

Глеб
Старый 07.08.2002, 18:09   #13  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
Вполне правильно, спасибо По моей формулировке вопроса так и выходило.

Головную боль доставляет то, что система не делает такой процедуры автоматически, при незаполнении соответствующей аналитики. Другими словами, интерпретирует пустое значение поля, например, "склад" как еще один склад вместо распределения товара по складам. Что при определенных настройках позволяет создавать отрицательное количество товара на складе при отключенном параметре "отрицательный склад".

Но это ладно, все вполне понятно, еще раз спасибо всем учасникам.
Старый 07.08.2002, 19:20   #14  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Нет уж, нет уж. Подождите, подождите.

Это как же Axapta будет автоматически склад подставлять? По какому такому алгоритму? Предположим у нас есть 10 складов: Склад1, Склад2, … Склад10. Делаем закупку. Склад не указываем. И что система должна делать? Откуда она узнает, куда товар попал физически?

Если склад один и заполнять лень – можно везде понаставлять складов по умолчанию: в клиентах есть, в номенклатуре – тоже есть. По-моему еще где-то можно настраивать. Будет подставляться автоматически.

А чтобы не было пустого склада, нужно группы складской аналитики соответствующим образом определить. Там на закладке Настройки есть поля Первичная аналитика хранения, Пропуск для приходов и Пропуск для расходов. Пустой склад может получиться, если первая не взведена (а обычно для склада ее взводят), а последние две – да. Но для таких настроек на складе нужны веские основания.

А вот для серийных номеров и партий автоматическую нумерацию выдумали. Но это же совсем другое дело, нежели склад.

В общем, нужно смотреть на ситуацию.

Глеб
Старый 08.08.2002, 10:02   #15  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
:)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задача: запретить удалять строки разнесённых журналов. jeky DAX: Программирование 12 28.01.2009 22:22
Итого по дебиту (кредиту) строки журналов titov DAX: Программирование 0 19.10.2006 13:49
При создании строки в закупке статус строки становится "Отменено" AlexUnik DAX: Функционал 4 27.09.2004 16:05
Очистка складских журналов dyatlowsky DAX: Функционал 0 26.03.2004 17:55
Функция "Удалить строки" Oks DAX: Функционал 1 03.07.2002 18:09
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:51.