Задать вопрос
  • Отключение запроса dll файла в exe-шнике?

    @d-stream
    заглушка не работает, я не понимаю, почему
    например потому что неправильно сделана.
  • Как хорошо нужно знать XAML для WPF? Что почитать по XAML?

    @d-stream
    Foggy Finder, на самом деле идея биндинга шаблона к модели в том или ином виде используется давно и не только в виде wpf

    Кстати powershell+wpf чуть поскуднее, но работает. Притом знакомый даже не программист, а скорее админ вполне осилил реализовать многофункциональную рулилку/даш сотнями виртуалок за считанные дни.

    А так - еще в "доисторические" времена был Clarion со своими экранными переменными (screen/window емнип)
  • Visual Studio не хочет работать с символьной переменной, что делать?

    @d-stream
    Собственно я бы без особой нужды исключил и символы, которые можно набрать с клавиатуры в отличных от en-us раскладок. Особенно если дополнительных раскладок более одной... к примеру есть клиенты из бывших союзных республик и у них зачастую "длинное кольцо" раскладок состоящее из en,rus,de+пара-тройка нацраскладок. Ну и в итоге как минимум три вариации кодов символа "С" со всеми вытекающими...

    В общем лучше пользоваться скудным набором a-z, A-Z,_,0-9 )
  • Какой способ построения VPN выбрать для 40 Mikrotik и Keenetic?

    @d-stream
    на что я подписался и какие последствия могут быть.
    традиционный лентяйский вариант "шобы изолировать")
  • В чём отличие между базой данных на sql и базой данных на javascript?

    @d-stream
    Александр,
    на что я подписался и какие последствия могут быть.
    очевидный ответ:
    - знания
    - широта кругозора

    Впрочем "многие знания - многие печали"))))))
  • Какой способ построения VPN выбрать для 40 Mikrotik и Keenetic?

    @d-stream
    Nday001, приобретенное оборудование будет заниматься выходом в интернет и прочим.

    А так - что мешает провести натурные испытания подняв разные виды туннелей и собирать реальную информацию под нагрузками.

    p/s/ вначале изобретать объединение сетей воедино, а потом натить их друг в друга - imho извращение
  • Как не танцевать на граблях с бубном делая CRM?

    @d-stream
    Было ТЗ
    Если это техническое задание, а не точка зрения - то там должно было быть описано где, когда и как это надо видеть. Полагаю что речь об отчете. Который имеет полное право формироваться не миллисекунды, а например единицы-десятки секунд... а потом рендер 100500 страничного отчета будет ползти по медненным каналам минуты, печататься - десятки минут, изучаться - примерно никогда) А вот для выбора к примеру для корзины/заказа - актуально то что прямо здесь и сейчас еще есть в наличии и сколько его еще осталось.
  • Как правильно считать остатки в денежной форме?

    @d-stream
    Связка продажи с партией поступления (реальное списание) возникает в момент продажи - ничего искусственно создавать не надо. Кстати в тот же момент можно апдейтить строки поступления указывая хелпер остатка. Последнее конечно слегка отходит от идеологии целостности, но иногда может поспособствовать.
  • Как не танцевать на граблях с бубном делая CRM?

    @d-stream
    Это есть, это нужно, этим пользуются и сформировалась сначала потребность а затем код.
    Это не ответ. Точнее ответ в стиле "вместите мне на визитке фио, должности и регалии в одну строку 24 кеглем")

    "на текущий момент" совершенно спокойно строится на хэлперах в виде партия-остаток
  • Как правильно считать остатки в денежной форме?

    @d-stream
    Скорее всего это не цена только последних партий в количестве остатков, включая неполную пограничную партию.
    это цена в каждой конкретной поставке. Вчера было по три, сегодня - по пять)

    для понимания - пример:

    поступления
    партия1: 1 января куплено 20 булок по 3 р
    партия2: 1 февраля куплено 15 булок по 2р
    партия3: 1 марта куплено 30 булок по 4р

    продажи:
    продажа1 1 июля - 23 булки по 15р, а именно:
    - 15 булок из партии1
    - 6 булок из партии2
    - 2 булки из партии3

    в таком раскладе:
    партия1: осталось 5 булок, купленных по 3р = 15р
    партия2: осталось 9 булок, купленных по 2р = 18р
    партия3: осталось 28 булок, купленных по 4р = 112р

    итого на складе осталось 42 булки на сумму 145р (средняя себестоимость остатка 3.45р)

    p/s/ можно вместо булок рассмотреть например водку/обувь/ювелирку/шины - там каждая бутылка прослеживаемая и имеет уникальный "серийный номер"
  • Можно ли работать по ПСН без УСН?

    @d-stream
    alex vak, написать заявление например
  • Как правильно считать остатки в денежной форме?

    @d-stream
    Ну если партионный - то и надо партионный. Он очевиднее, понятнее и предсказуемее.
    Всей разницы - таблица-связка списаний партий.
    То бишь строка в расходе(продаже) - ссылается на строку в "партиях" (id_прихода, id_расхода, кол-во, дата, кто и т.п.) и уже через нее - в приходы

    побочный эффект - продажа 2 булок может оказаться из двух строк (1 булка из одной партии, вторая - из другой). Впрочем если речь зайдет о ОСН и НДС и импортных товарах - то это итак будет нужно в плане учета ГТД)

    Ну и в итоге простейший вариант (несколько упрощенный) даст приход, остаток, сумму остатка:
    select
    incomes.doc_id, 
    incomes.item_code,
    rest_qnt = sum(incomes.qnt)-sum(outs.qnt),
    rest_sum = (sum(incomes.qnt)-sum(outs.qnt))*incomes.price,
    from incomes 
    inner join outs on outs.id_in=incomes_id
    group by incomes.doc_id,  incomes.item_code
    where incomes.date<date_x and outs.date<date_x

    дальше останется обернуть это в еще одну группировку только по товару и просуммировать кол-во и сумму
  • Window 10, на что используется RAM?

    @d-stream
    можно начать с поглядывания в rammap от Руссиновича (ныне Майкрософт)
  • Window 10, на что используется RAM?

    @d-stream
    + зачастую отъеденную SQL сервером память в лоб не видно)
  • Как объединить "in" и "case"?

    @d-stream
    Вот как один из вариантов применения case и in (в развернутом виде)
    select 
    *
    from @customer as c
    left join @documents as d on c.id = d.customer_id
    where 
    	1 = case 
    		when c.type='ФОП' and d.type in ('паспорт','инн') then 1 
    		when c.type='Юр.лицо' and d.type in ('паспорт','инн') then 1 
    		when c.type='Физ.лицо' and d.type in ('паспорт','инн','загран') then 1 
    		else 0
    	end


    Вот из более очевидного без case
    select 
    *
    from @customer as c
    left join @documents as d on c.id = d.customer_id
    where 
    	c.type='Физ.лицо'
    	or
    	c.type='Юр.лицо' and d.type in ('паспорт','инн')
    	or
    	c.type='ФОП' and d.type in ('паспорт','инн')


    Ну и чуть посуше, но вполне понятный без case и in

    select 
    *
    from @customer as c
    left join @documents as d on c.id = d.customer_id
    where 
    	c.type='Физ.лицо'
    	or
    	(c.type='Юр.лицо' or c.type='ФОП') and (d.type='паспорт' or d.type='инн')


    Ну и из общекритичного: ветвить и отбирать по текстовым названиям - моветон. Нормально - иметь id и наименование - id для кода, наименование (наименования) - для людей

    К примеру индивиндуальный предприниматель, как нечто среднее между физлицом и организацией обзывался ПБОЮЛ, ИП, ЧП, притом в таблице уместно светить сокращенное "ИП", а где-нибудь в карточке конкретного - "Индивиндуальный предприниматель" - то бишь было бы уместным иметь
    int - как код типа (напр 1 - физ, 2 - юр, 3 - ип, и возможно 4 - СЗ)
    и несколько строковых полей типа
    - обозначение полное ("Индивиндуальный предприниматель")
    - обозначение краткое ("ИП")
    - обозначение при обращении ("Предприниматель")

    с документами - по жизни все посложнее:
    1. ИНН - это пожизненный уникальный и неизменный идентификатор, но это не документ... документом является свидетельство о присвоении ИНН со своей серией и номером и в ряде случаев свидетельств может быть больше одного
    2. Паспорт - ограничен по сроку действия/утере => паспортов может быть много и в ряде случаев до даты смены - это один паспорт, после - другой
    3. загранпаспорт - аналогично паспорту, только их вообще может быть несколько одновременно
  • Как объединить "in" и "case"?

    @d-stream
    Илья, конструкция in здесь вообще не при чем.

    именно case работает иначе
    конкретно для простоты - он отдает одно-единственное значение

    и если я правильно понимаю исходное, которое зачем-то было вывернуто "мехом внутрь," то вероятно это может выглядеть как-то так:

    select 
     ...
    customer_type_descr = case customer.type when 1 then 'A'  when 2 then 'B'  when 3 then 'C' else 'n/a' end,
     ...
    from customer
    inner join documents on documents.customer_id = customer_id
    where documents.id in (1,2,3)
  • Как объединить "in" и "case"?

    @d-stream
    case так не работает. от слова совсем.
  • Почему в Java используется байт-код для обеспечения кроссплатформенности?

    @d-stream
    12rbah, да, нужно. Притом упрощенно не писать а скомпилировать ее под платформу.
    То бишь скомпилировав одну jvm мы сможем выполнять 100500 java-программ, а не компилировать каждую программу [java].
  • Как передавать приложение клиенту без исходиников?

    @d-stream
    Мне кажется не отдавать исходники клиенту - плохой тон )
    Autodesk, Adobe, Microsoft, etc зачастую с этим несогласны)
    давай не забывать про обфускаторы
    и индусский код, который еще круче)
  • Какой менеджер базы данных для MS SQL выбрать?

    @d-stream
    Самир Курбанов, пкм на таблице и edit top 200 rows )
    Просто это настолько неестественная и редкая задача...

    Ну бывает конечно, но я быстрее напишу update, притом это в конце будет в виде пары update - поменять "туда", потом "обратно", а возможно пригодится для тиражирования потом.