Skocz do zawartości
Forum użytkowników

Ernest Sadowski

Użytkownik
  • Ilość treści

    65
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Ernest Sadowski wygrał w ostatnim dniu 3 grudnia 2019

Ernest Sadowski ma najbardziej lubianą zawartość!

Reputacja

9 Neutral
  1. Ja np. bym zasugerował coś w stylu: Nowy sprzęt zostaje zakupiony, wprowadzamy FZ z auto-PZ i przyjmujemy go na magazyn. Ma on swoją wartość netto/brutto. Wystawiamy FS na usługę (jednorazową lub nie) np. "Wynajem na 3 m-ce" i dodajemy do pozycji usługi "Koszt" w postaci RW, tym samym wydając sprzęt z magazynu. W tej RW wydany sprzęt powinien mieć taką samą wartość netto (jego rzeczywista wartość, taka jak np. przy zakupie na tej pierwszej PZ). Z racji, że to RW to ma oczywiście 0% vat, a rozliczana jest usługa. Później możemy ten sam sprzęt (np. możemy nadawać osobnym urządzeniom kody dostaw - każdy ma swój - żeby śledzić ich ruch) przyjąć za pomocą albo PW albo nawet korektą (KRW) jak chce się mieć dodatkowe powiązanie. Tutaj dowolność praktycznie. Ważne, że żeby go wydać, musimy go z powrotem przyjąć - a to robimy jak klient go odda. W przypadku sprzedaży urządzenia na stanie wystawiamy normalnie FS na te urządzenie i wydajemy je już jak WZ (nie RW jak wcześniej "koszt"). Tak bym robił gdyby wszystko było w jednym systemie, pozwala to śledzić każdy ruch każdej dostawy i znać ceny (tzn. program odpowiednio będzie wyliczać zyski) zakupu, sprzedaży oraz dodatkowo mamy wszystkie powiązania zgodne - faktury, usługi i przyjęcia/wydania. Teraz tak - mówi Pan, że dużo sprzętu już jest i nie ma ich jak powiązać z np. fakturami, a i faktury są robione osobno. Patrząc na powyższe nasuwa się proste rozwiązanie - zrobić to samo bez FZ/PZ. Czyli: Wprowadzamy (PW) istniejące urządzenia na magazyn z oryginalnymi wartościami netto i wydajemy je klientom (czy gdziekolwiek) za pomocą np. RW. Należy pamiętać, że dokumenty wewnętrzne nie są podstawą do praktycznie niczego, tym bardziej w KPiR. Zatem można robić co się chce. Ważne żeby Ci od wystawiania FZ/FS odliczali VAT. W momencie sprzedaży (FS) z tego innego systemu ("prosto w księgowości") warto tylko śledzić wartość magazynową netto tych urządzeń (dlatego mówiłem żeby poprawnie je wprowadzać), a wydawać je nadal jako RW. Ktoś może spytać o inwentaryzacje i remanenty - jeżeli dobrze Pan wprowadzi wartości to ładnie wyjdzie wartość magazynu, bo przecież RW/PW to 0%. Pytanie jak chce pan to śledzić na dłuższą metę i kto ten magazyn podliczy. EDIT: Mówiąc "Koszt" jako RW mam na myśli funkcję - w dokumencie sprzedaży kliknąć prawym na pozycje i dodać "Koszt". W przypadku gdzie FV są wystawiane poza systemem to po prostu robić to zwykłymi RW/PW nadając odpowiednią wartość netto i kod dostawy (prawym na pozycje i "Rozbicie pozycji").
  2. Czy jest to ta sama działalność co Pana czy inna spółka? Bo z wypowiedzi mogą to być oba. Czy działa Pan (czy ta Spółka) na KPiR? Ogólnie rzecz biorąc to na KPiR można prawie wszysko a PW/RW to dokumenty wewnętrzne, którymi można prawie wszystko. Nie zmienia to faktu, że jak firma zakupiła (FZ) coś i prowadzi magazyn, to przyjmuje PZ. Odn. zachowania dok. magazynowych wewnętrznych (PW/RW) - wszystkie wartości powinny być netto z 0% stawką. Nadal jednak nie rozumiem dlaczego FZ miałaby nie wprowadzać towarów PZ? EDIT: Proszę opisać lepiej sytuację, bo może można by zastosować np. usługi z materiałami i zwrotami.
  3. Zezwolić, zedytować i zablokować z powrotem (zalecam, żeby w przyszłości nie stworzyć kolejnego duplikatu).
  4. Bardzo podobnie operujemy ale u nas kładzie się bardzo silny nacisk na pilnowanie cen i kodów dostaw, co podobnie zalecę Pani. Na start definicje: Marża "stała" - marża widniejąca w cenniku przy "stałej" cenie nabycia i sprzedaży. Mówię "stała" nawet gdy jest dynamiczna bo to nadal nie cena na dokumencie (jak niżej - faktyczna). Marża "faktyczna" - marża wyliczona z dokumentów na podsumowaniach. Pojedynczy asortyment ma swoją cenę nabycia i sprzedaży (wspomniane wyżej "stałe"), która jest kopiowana z cennika na nowo powstałe dokumenty. Nazwałem ją "stałą" bo obliczana jest "na życzenie" użytkownika (czyli tworząc cenniki lub zwyczajnie edytując asortyment). Ta "stała" cena nie zwraca uwagi na dostawy, z których składa się asortyment. "Stała" cena sprzedaży definiowana jest przez nas a "stała" marża wyliczana na podstawie "stałej" ceny zakupu, która także obliczana jest przez nas - te wyliczenie może być na podstawie ceny ewidencyjnej, cen towarów na stanie lub w dyspozycji. Tak więc to co widać kiedy otworzymy podgląd asortymentu - czyli wspomniana "stała" marża to coś co liczone jest "na tą chwilę" i bazuje na aktualnie zdefiniowanych cennikach i cenach zakupu (które mogą się wyliczać dynamicznie). Mając np. kilka dostaw możemy podejrzeć ich ceny zakupu i uśrednić wagowo cenę zakupu całego asortymentu składającego się z tych dostaw, jednak nie obliczamy marży dla każdej dostawy osobno, przynajmniej jeszcze nie tutaj. To się dzieje w wspomnianej wcześniej marży "faktycznej", którą wylicza się dopiero po wystawieniu dokumentów z daną dostawą (która ma swoja cenę zakupu), lub dostawami (w tym przypadku zalecam uśrednić wagowo cenę na bazie dostaw w dyspozycji) i ceną sprzedaży. Nie da się jednak zawrzeć wielu cen sprzedaży dla jednej pozycji o wielu dostawach - w tym przypadku, jak wcześniej napisałem zalecam średnie wagowe. Ostatecznie wyliczenie "faktycznej" marży użyje ceny sprzedaży z pozycji (składającej się możliwie z wielu dostaw), a nie dostawy, zatem będzie przekłamana dla pojedynczych dostaw. Istnieje opcja wystawiania osobnych dostaw jako osobnych pozycji na dokumencie w celu nie-uśredniania wagowo ich ceny sprzedaży - tym sposobem można mieć dla każdej dostawy osobną pozycje z osobną ceną sprzedaży i tym samym wyliczać poprawne marże. EDIT Jeżeli chodzi o "zobaczenie" tego "faktycznego" zysku/marży to w "Sprzedaż" mamy raport "Sprzedaż wg Dostaw, Asortymentu i Klientów". Grupowanie="Wg kodów dostaw i asortymentu" i widzimy ile dana dostawa nas kosztowała i ile z niej zarobiliśmy (marży). Jak wspomniałem - wartości będą przekłamane jeżeli nie rozbijemy dostaw o różnych cenach zakupu/sprzedaży na osobne pozycje na dokumencie. Jeżeli je uśrednimy to możemy mieć sytuacje: Dostawa A - zakup 10, sprzedaż 50 Dostawa B - zakup 40, sprzedaż 50. Total - zakup 50, sprzedaż 100. A możemy rozbić na np. (ale wtedy widzi to klient): Dostawa A - zakup 10, sprzedaż 30 Dostawa B - zakup 40, sprzedaż 70. Total - zakup 50, sprzedaż 100. Silnie zależy to od polityki wyliczania zysków. EDIT 2: Mogę być nieco niezrozumiały jak ktoś nie wie co z czym się je (jednak powyższe jest poprawne), więc w razie problemów mogę jeszcze screeny rzucić dla jasności.
  5. Każdy asortyment ma status: aktywny lub nie. Zmieniamy to klikając prawym na dany obiekt i go (dez)aktywując. Jak dla mnie to najjaśniejsze wytłumaczenie ale może błąd jest gdzieś głębiej.
  6. Jeżeli chodzi o pracę remote to już było nieraz stwierdzone, że Nexo leży pod tym względem. Najczęstsza propozycja to użytkowanie przez RDP prosto na serwerze co wg mnie to klapa z poziomu designu programu. Można z tego wnioskować, że Nexo wysyła więcej danych niż samo RDP, albo raczej nie radzi sobie z ich przesyłem dobrze. Gdzieś w Nexo jest ogromny overhead na samym przesyle/odbiorze danych. W porównaniu do jakiegokolwiek innego nowoczesnego programu, który wymienia czasem ogromne ilości danych z serwerem, Nexo działa za wolno dla danych rozmiarów potrzebnych do płynnej pracy. Nie wierze, że nie da się tego poprawić. Jeżeli chodzi o pracę lokalną (też na stanowisku serwerowym) to też się powtarza. Jednym z bardziej istotnych problemów w skalowaniu jest chyba zaczytywanie danych ahead-of-time (np. listy nie mają paginacji). Jeżeli chodzi o samo przyspieszenie: Zacząć od konserwacji bazy z poziomu programu serwisowego. Więcej nie wiem co by można zrobić oprócz mocnego czyszczenia w samej bazie i czekaniu na dobrego update UX. Było też mówione aby nie dodawać zbyt wielu pozycji i powiązań na jakichkolwiek dokumentach w starszych tematach na forum.
  7. Jak w tytule - czy jest jakiś powód? RW i WZ mają rozbicia na partie, kosztowe, ilościowe... cała masa tego. A PZ i PW tak od biedy standard. Czy można prosić o dodanie, czy trzeba samemu walczyć? EDIT Po powieleniu "PW standard" i dodaniu "Opis towaru" do tabeli mamy błąd przy próbie użycie wzorca.
  8. Chciałbym się dowiedzieć czy istnieje możliwość opisywania dokumentów PDF (w postaci np. nadania "Autora" jako firmy i "Tytułu" jako tytułu np. pliku w momencie print/exportu)? Tak to wygląda aktualnie przy Print to PDF: A tak z Export as file: (zrzut z innego komputera stąd inny język, ale chodzi mi tu o dane w polach): Ostatecznie (bo chyba się nie da) chciałbym takiego feature requesta dać bo wtedy można lepiej łączyć zewnętrzne programy i wyszukiwać dokumenty (nazwa pliku nie jest wiarygodna, a tytuł przy zapisie zawsze pozostaje taki sam)
  9. Żeby prowadzić analizy jakiekolwiek, potrzebne są dane, a jeżeli dobrze rozumiem tych danych nie ma, więc nie rozumiem jak w ogóle działacie. Z tego co wnioskuje (podobnie jak my robimy), używacie kodów dostaw jako S/N (serial) produktu i każda jednostka danego produktu musi mieć inny S/N (kod dostawy). Tak jak Pan mówi - Subiekt PRO to wspiera i z poziomu wydań/przyjęć i z poziomu dokumentów handlowych więc to nie jest problem z InsERTem. Rozumiem, że Amazon FBA nie wspiera serializacji produktów i w momencie przyjęcia na/wydania z magazynu wydają produkt randomowo nie patrząc na jego S/N i raportują tylko ilość wydanych sztuk? Czyli i Pan i klient nie wie jaki S/N dostaje przed zakupem? Zatem jak ma znać cenę (a Pan koszt)? Jeżeli tak jest to nawracam do pierwszego zdania - nie ma danych i nie ma co liczyć na sensowne rozwiązania. Najlepiej pozbyć się kodów dostaw i traktować wszystkie tak samo, lub wystawiać produkt z danym S/N na Amazonie jako osobny z osobną ceną. Czy FBA przynajmniej ma jakieś FIFO?
  10. Bardzo dziękuje za nakierowanie! Drukowanie do PDF działa dobrze! Ciekawe czy to naprawią 😮
  11. Mówimy o zwyczajnych wzorcach wydruku powielonych ze standardowych InsERTa ze zmianą kolumn i ich szerokości. Dostaje coś takiego (pozycja 3 "Opis towaru") przy różnych ilościach wierszy w komórce. Na podglądzie wygląda dobrze (ma 3 linijki, a nie 4 jak wyżej), ale po wyeksportowaniu do PDF coś się dzieje podczas konwertowania bo czasami z N linijek się zrobi N+1 (może nawet więcej? N+M). Podejrzewam jakiś problem z czcionkami lub zły sposób wyliczania ilości linijek na podstawie szerokości kolumny w momencie generowania PDF . Czy bug znany? Nie znam się (jeszcze) na Stimulsofcie. Może propozycja naprawy? Problem zachodzi w wielu wzorcach (wszystkich?)
  12. Nadając danemu asortymentowi wielo-cechową właściwość, w jakimś miejscu zachodzi nieprzewidywalne zachowanie programu. Cechy (chyba) są auto-sortowane alfabetycznie przy zapisie (patrzą na screen poniżej (dolny wycinek): gdybym wstawił Tri Clamp pierwsze a DN 50 drugie, to po zapisie się obrócą tak jak na screenie). Ale później jak mam tak utworzone 3 różne asortymenty, to jakimś cudem ich Właściwość/kolejność jest wyświetlana tak samo, ale po wygenerowaniu auto-nazwy/opisu nagle mamy odwrócone (widoczne na 1szym wycinku na dole). O co chodzi? Jakiś czas temu mówiliście, że pracujecie nad rozwinięciem modeli/właściwości/cech. Można się spodziewać zmian także w sortowaniu?
  13. Nie jestem pewny czy to tutaj wrzucić, ale czy u innych występuje taki błąd? (W Subiekcie nexo PRO 27.0) Próbuje wyeksportować FS w XML i/lub EDI++ za dany miesiąc, a nawet za dany okres jednego dnia i wysypuje błąd po ok. 30sec zawiechy. Podobna sytuacja z poziomu Rachmistrza nexo PRO 27.0 gdy próbuje Wysłać off-line do EDI++. Screen z Rachmistrza: Stacktrace z Subiekta: System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. w System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior, ObjectContext objectContext) w System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues) w System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) w System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__26_0() w System.Lazy`1.CreateValue() w System.Lazy`1.LazyInitValue() w System.Lazy`1.get_Value() w System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.<>c__DisplayClass14_0`2.<PageObjectQueryOptimizedForInteger>b__2(IQueryable`1 pq) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQueryPrivate[T,TId,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Func`2 action, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean orderByGivenIds, IInformatorOPostepieOperacji informatorOPostepie, Boolean applyDistinctOperatorAfterValueSelection, Int32 poprawkaNaIloscEtapowDlaInformatoraOPostepie, Boolean prepareQueriesInSeparateThread) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQueryOptimizedForInteger[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Action`1 action, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean breakAfterFirstFound, IInformatorOPostepieOperacji informatorOPostepie, Int32 minimalRangeSize, Int32 rangesCountInQuery, Boolean applyDistinctOperatorAfterValueSelection) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.GetAllOptimizedForInteger[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Int32 rangesCountInQuery, Boolean applyDistinctOperatorAfterValueSelection, IInformatorOPostepieOperacji informatorOPostepie) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.GetAll[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean orderByGivenIds, Boolean applyDistinctOperatorAfterValueSelection, IInformatorOPostepieOperacji informatorOPostepie, Boolean useOptimizedQueriesIfPossible, Int32 rangesCountInQuery, Boolean prepareQueriesInSeparateThread) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.<>c__DisplayClass194_1.<ZaladujDaneDoWysylki>b__5() w InsERT.Moria.Narzedzia.Prywatne.PustySynchronizatorOperacjiPrzypisanejDoWatku.Wykonaj[T](Func`1 funkcja) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.ZaladujDaneDoWysylki(UnitOfWork uow, IEnumerable`1 ids, ISynchronizatorOperacjiPrzypisanejDoWatku synchronizator) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.WybierzWlasciweDokumenty(Boolean wyslijMagazynoweIHandlowe, Magazyn magazyn, Boolean wyslijKasowe, StanowiskoKasowe kasa, Boolean wyslijBankowe, RachunekBankowy rachunek, Boolean okreslonyOkres, Nullable`1 okresOd, Nullable`1 okresDo, InstancjaBazyDanych instancja, UnitOfWork uow, WysylkaDanychEPPCache& cache, Boolean& innyOdbiorca) w InsERT.Moria.DokumentyDoKsiegowania.UI.WysylkaDoBiuraEppDialog.<>c__DisplayClass122_0.<ProcessResult>b__0(Boolean nieWysylajDanychWrazliwych) w InsERT.Moria.DokumentyDoKsiegowania.UI.WysylkaDoBiuraEppDialog.ProcessResult(MessageBoxResult result) w InsERT.Mox.UIFramework.DialogService.ProcessDialogResult(MessageBoxResult result) w InsERT.Mox.WpfControls.ServiceDialogBox.InvokeResultHandler(MessageBoxResult result) w InsERT.Mox.WpfControls.ServiceDialogBox.OK_Click(Object sender, RoutedEventArgs e) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) w System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) w System.Windows.Controls.Primitives.ButtonBase.OnClick() w System.Windows.Controls.Button.OnClick() w System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) w System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) w System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) w System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) w System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) w System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) w System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) w System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) w System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) w System.Windows.Input.InputManager.ProcessStagingArea() w System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) w System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) w System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) w System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) -System.Data.SqlClient.SqlException: Upłynął limit czasu wykonywania. Limit upłynął przed ukończeniem operacji lub serwer nie odpowiada. - w System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) w System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) w System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) w System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) w System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() w System.Data.SqlClient.SqlDataReader.get_MetaData() w System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) w System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) w System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) w System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) w System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) w System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) w System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) w System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior, ObjectContext objectContext) --System.ComponentModel.Win32Exception: The wait operation timed out EnvironmentStackTrace: w System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) w System.Environment.get_StackTrace() w InsERT.Mox.UIFramework.AnalyzedException..ctor(Exception exception) w InsERT.Mox.UIFramework.ErrorContext..ctor(Exception exception, String dumpFilePath, Stream screenCapture) w InsERT.Moria.Startup.UI.NerfSupport.ShowFerfWindow(Exception exception, String dumpFile, Boolean newThread) w InsERT.Moria.Startup.UI.NerfSupport.HandleUsingFerf(Exception exception) w InsERT.Moria.Startup.UI.NerfSupport.ProcessUnhandledException(Exception exception) w InsERT.Moria.Startup.UI.NerfSupport.Dispatcher_UnhandledExceptionFilter(Object sender, DispatcherUnhandledExceptionFilterEventArgs e) w System.Windows.Threading.Dispatcher.ExceptionFilter(Exception e) w System.Windows.Threading.Dispatcher.ExceptionFilterStatic(Object source, Exception e) w System.Windows.Threading.ExceptionWrapper.FilterException(Object source, Exception e) w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) w System.Lazy`1.CreateValue() w System.Lazy`1.LazyInitValue() w System.Lazy`1.get_Value() w System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.<>c__DisplayClass14_0`2.<PageObjectQueryOptimizedForInteger>b__2(IQueryable`1 pq) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQueryPrivate[T,TId,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Func`2 action, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean orderByGivenIds, IInformatorOPostepieOperacji informatorOPostepie, Boolean applyDistinctOperatorAfterValueSelection, Int32 poprawkaNaIloscEtapowDlaInformatoraOPostepie, Boolean prepareQueriesInSeparateThread) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.PageObjectQueryOptimizedForInteger[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Action`1 action, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean breakAfterFirstFound, IInformatorOPostepieOperacji informatorOPostepie, Int32 minimalRangeSize, Int32 rangesCountInQuery, Boolean applyDistinctOperatorAfterValueSelection) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.GetAllOptimizedForInteger[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Int32 rangesCountInQuery, Boolean applyDistinctOperatorAfterValueSelection, IInformatorOPostepieOperacji informatorOPostepie) w InsERT.Moria.Narzedzia.Prywatne.ObjectQueryHelper.GetAll[T,TValue](IQueryable`1 source, Expression`1 idSelector, Expression`1 valueSelector, IEnumerable`1 ids, Nullable`1 pageSize, Nullable`1 minPageSize, Nullable`1 maxPageSize, Boolean orderByGivenIds, Boolean applyDistinctOperatorAfterValueSelection, IInformatorOPostepieOperacji informatorOPostepie, Boolean useOptimizedQueriesIfPossible, Int32 rangesCountInQuery, Boolean prepareQueriesInSeparateThread) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.<>c__DisplayClass194_1.<ZaladujDaneDoWysylki>b__5() w InsERT.Moria.Narzedzia.Prywatne.PustySynchronizatorOperacjiPrzypisanejDoWatku.Wykonaj[T](Func`1 funkcja) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.ZaladujDaneDoWysylki(UnitOfWork uow, IEnumerable`1 ids, ISynchronizatorOperacjiPrzypisanejDoWatku synchronizator) w InsERT.Moria.DokumentyDoKsiegowania.SerializatorDanychKlientaBiuraRachunkowego.WybierzWlasciweDokumenty(Boolean wyslijMagazynoweIHandlowe, Magazyn magazyn, Boolean wyslijKasowe, StanowiskoKasowe kasa, Boolean wyslijBankowe, RachunekBankowy rachunek, Boolean okreslonyOkres, Nullable`1 okresOd, Nullable`1 okresDo, InstancjaBazyDanych instancja, UnitOfWork uow, WysylkaDanychEPPCache& cache, Boolean& innyOdbiorca) w InsERT.Moria.DokumentyDoKsiegowania.UI.WysylkaDoBiuraEppDialog.<>c__DisplayClass122_0.<ProcessResult>b__0(Boolean nieWysylajDanychWrazliwych) w InsERT.Moria.DokumentyDoKsiegowania.UI.WysylkaDoBiuraEppDialog.ProcessResult(MessageBoxResult result) w InsERT.Mox.UIFramework.DialogService.ProcessDialogResult(MessageBoxResult result) w InsERT.Mox.WpfControls.ServiceDialogBox.InvokeResultHandler(MessageBoxResult result) w InsERT.Mox.WpfControls.ServiceDialogBox.OK_Click(Object sender, RoutedEventArgs e) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) w System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) w System.Windows.Controls.Primitives.ButtonBase.OnClick() w System.Windows.Controls.Button.OnClick() w System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) w System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) w System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) w System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) w System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) w System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) w System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) w System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) w System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) w System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) w System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) w System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) w System.Windows.Input.InputManager.ProcessStagingArea() w System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) w System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) w System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) w System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) w MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) w System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) w MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) w MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) w System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) w System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) w System.Windows.Window.ShowHelper(Object booleanBox) w System.Windows.Window.Show() w System.Windows.Window.ShowDialog() w InsERT.Moria.Startup.UI.NexoAppBase.Go() w InsERT.Moria.Subiekt.SubiektApp.Main(String[] args)
  14. A no to się uspokoiłem. To był strzał na ślepo. To właśnie miałem na myśli mówiąc, że snapshot mógłby powstawać przy pierwszym użyciu (a nie każdej edycji, gdzie np. 10 razy edytujemy obiekt, bez wystawiania dokumentów, bo ciągle zmieniamy zdanie jak ma być opisany). Zwykle się to robi tak, że niezależnie od ilości edycji Obiekt się UPDATUJE (i ustawia jakąś flagę jako nie-snapshotowany) a dopiero gdy zostanie użyty po raz pierwszy od czasu edycji (przestawienia flagi), powstaje jego zapis w historii, z którego będzie korzystać dokument (zatem funkcjonalność taka sama, a mniej danych w bazie). Mówię "zwykle", bo miałem okazje takie rzeczy pisać i sam i w zespołach. Różnica jest taka, że te moje "zwykle" obejmowało często wiele milionów rzędów co z poziomu UX było odczuwalne. Także zauważyłem, że Pan tu dużo pisze. Ale podsumowując - faktycznie pewnie przesadzam (nie lubię gdy ponad połowa tabeli to syf), a tutaj także uspokojony zostałem. Dopytam jeszcze może jaki +/- realny rozmiar ma Pana zapis tabeli z 144443 wpisami? Coś koło 60MB?
×