• Есть ли альтернатива Finerader?

    @Busla
    Если жене на выходе требуется .doc можно предположить, что у вас имеется MS Office — в него входит и система распознавания. Распознавание и экспорт в Word доступно в приложении MS Office Imaging. Если офис 2010, этого приложения нет в составе. Тогда качаем отдельно официально бесплатно SharePoint Designer 2007 — там оно есть. (Можно вообще его без офиса поставить, но, подозреваю, что экспорт работать не будет)
    Ответ написан
    2 комментария
  • Python requests как правильно работать с proxy?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Во-первых:
    proxies = {
        'http': 'xxx.xx.xxx.xx:xxxx',
        'https': 'xxx.xx.xxx.xx:xxxx'
    }

    Во-вторых: вы заменяете User-Agent? По стандарту он 'python-requests' - многие сайты блокируют.
    В-третьих: если берете прокси из общего доступа, то он уже может быть заблокированным (на самом деле это довольно часто). Берите сразу большое кол-во прокси и пробуйте перебирать их примерно так:
    proxies = []
    for proxy in proxies:
        response = requests.get(proxies=proxy)
        if response.status_code == requests.codes['ok']:
            break
    
    response.text
    Ответ написан
  • Какой из дистрибутивов Linux больше всего подходит для 1С:Розницы?

    Jump
    @Jump
    Системный администратор со стажем.
    Какой из дистрибутивов Linux больше всего подходит для 1С:Розницы?
    Выбирайте Ubuntu не ошибетесь - тут все дело в популярности, а производители в основном ориентируются на популярные дистрибутивы.
    Ответ написан
    Комментировать
  • Как проверить наличие существования юзернейма в Django?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Как-то так можно:
    if User.objects.filter(username=username).exists():
        # OK
    else:
        # Not OK


    Но ваш способ тоже норм.
    Ответ написан
    Комментировать
  • Как хранить секреты django в dynaconf?

    mkone112 рассказываю как делаю это я.
    Для начала объясню что такое local_settings.py, это файл с локальными настройками, где вы можете переопределить любую глобальную настройку (в том числе и SECRET_KEY). Его содержимое выглядит примерно так
    from .settings import *
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = False

    Этот файл нужно добавить в .gitignore и создавать вручную или автоматически на сервере где производится деплой. Самое главное, чтобы этот файл не попадал в репозиторий.

    Таким образом вы можете не парится про SECRET_KEY который будет отправлен в репозиторий, вы просто при деплое переопределяете его на произвольный, вот так
    from .settings import *
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 'Мой самый секретный ключ'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = False


    Далее же вы используете файл настроек при запуске вот так, при разработке. В gunicorn соответственно эту же настройку добавить нужно.
    $ python manage.py runserver --settings=myproject.local_settings


    Таким образом решается ваша проблема. А ваш SECRET_KEY в репозитории, не будет иметь ничего общего с реальным SECRET_KEY который на продакт сервере.
    Ответ написан
    4 комментария
  • Как узнать доменное имя по IP адресу в локальной сети?

    @cat_crash
    В коммандной строке
    nslookup X.X.X.X
    Ответ написан
    Комментировать
  • Есть ли единое API для доступа к данным чека онлайн касс?

    @BorisKorobkov
    Web developer
    QR-код на чеке дублирует ту же самую информацию, что и человек может прочитать на чеке.

    Куда именно приложение ФНС отправляет данные для проверки, вы можете проверить самостоятельно, если установите их программу https://kkt-online.nalog.ru/ и воспользуетесь любым сниффером.

    Также можно проверить чек на
    https://kpkcheck.ru/System/ExpressCheck.aspx
    https://ofd.ru/checkinfo
    https://ofd-ya.ru/check
    https://consumer.1-ofd.ru/#/landing
    и пр.
    Ответ написан
    3 комментария
  • Есть ли единое API для доступа к данным чека онлайн касс?

    @sb_user
    Каждый ОФД имеет свой API. Т.е. если вы пишите софт под определенную кассу, то необходимую ссылку вы собрать сможете
    Например ссылка на чек такскома будет выглядить так:
    https://receipt.taxcom.ru/v01/show?fp=[fpd]&s=[sum...
    где fpd - фискальная подпись документа
    summ - итоговая сумма чека

    Для ofd.ru будет выглядить вот так:
    https://ofd.ru/rec/[inn]/[rn]/[fn]/[docNumb]/[fpd]
    inn - инн юр лица пробившего чек
    rn - рег. номер кассового аппарата
    fn - номер фискального накопителя
    docNumb - номер чека
    fpd - фискальная подпись

    Но согласен, ответ на вопрос интересен =) Если будет универсальный API единый для всех, то это конешно удобнее.
    Ответ написан
  • Есть идеи, как реализовать создание/хранение приходной/расходной накладной на Django?

    neatsoft
    @neatsoft
    Life is too short for bad software
    В одной таблице должны храниться документы, во второй - строки табличной части (всех документов).

    models.py:
    from django.db import models
    from django.db.models import Max, Sum
    from django.utils.translation import ugettext_lazy as _
    
    
    class Product(models.Model):
        name = models.CharField(
            _('Name'),
            max_length=200,
            db_index=True,
        )
    
        def __str__(self):
            return self.name
    
    
    class Document(models.Model):
        INVOICE = 'I'
        WAYBILL = 'W'
        TYPE_CHOICES = (
            (INVOICE, _('Invoice')),
            (WAYBILL, _('Waybill')),
        )
        type = models.CharField(
            _('Type'),
            max_length=1,
            choices=TYPE_CHOICES,
        )
        number = models.CharField(
            _('Number'),
            blank=True,
            max_length=50,
        )
        created_at = models.DateTimeField(
            _('Created'),
            auto_now_add=True,
            db_index=True,
        )
    
        @property
        def total(self):
            return self.items.aggregate(sum=Sum('total'))['sum']
    
        class Meta:
            ordering = ['-created_at']
    
    
    class DocumentItem(models.Model):
        document = models.ForeignKey(
            Document,
            models.CASCADE,
            related_name='items',
        )
        position = models.PositiveIntegerField(
            verbose_name=_('Position'),
            editable=False,
            db_index=True,
        )
        product = models.ForeignKey(
            Product,
            models.PROTECT,
        )
        price = models.DecimalField(
            _('Price'),
            max_digits=12,
            decimal_places=2,
        )
        quantity = models.DecimalField(
            _('Quantity'),
            max_digits=10,
            decimal_places=3,
        )
        total = models.DecimalField(
            _('Total'),
            max_digits=12,
            decimal_places=2,
        )
    
        def save(self, *args, **kwargs):
            if not self.position:
                position = self.document.items.aggregate(Max('position'))['position__max'] or 0
                self.position = position + 1
            super(DocumentItem, self).save(*args, **kwargs)


    admin.py:
    from django.contrib import admin
    
    from .models import Product, Document, DocumentItem
    
    
    @admin.register(Product)
    class ProductAdmin(admin.ModelAdmin):
        pass
    
    
    class DocumentItemInline(admin.TabularInline):
        model = DocumentItem
        fields = (
            'position',
            'product',
            'price',
            'quantity',
            'total',
        )
        readonly_fields = (
            'position',
        )
        ordering = ['position']
    
    
    @admin.register(Document)
    class DocumentAdmin(admin.ModelAdmin):
        inlines = [
            DocumentItemInline,
        ]
        list_display = (
            'type',
            'number',
            'created_at',
            'total',
        )
        list_filter = (
            'type',
        )
        search_fields = (
            '=number',
        )


    Стандартная админка - для примера, вообще она не для этого (обычным пользователям она не должна быть доступна). Но реальные формы строятся по тому же принципу.

    Код накидал прям здесь, не проверял, поэтому возможны незначительные ошибки.
    Ответ написан
    4 комментария
  • Зачем нужен Adobe Bridge?

    goandkill
    @goandkill
    live slow — die old
    Лично для меня главных преимуществ было два.

    1. Быстрый рендер. Тифф и рав любого размера открывается моментально.

    2. И собственно самое важное, ради чего бридж и делался — фильтры. Объясню на простом примере из жизни. Прислали вам из фотостудии фотки, сто фоток. На них две модели. Каждая в пяти разных платьях. А через пару дней еще таких же фоток присылают, всё то же самое но на другом фоне. А потом еще таких же, но чб. И так несколько раз в неделю. А потом через 2 месяца попробуй что-нибудь найти.
    Бридж даёт возможность отфильтровать всё например [Аня, красное платье, 50мм, прошлый месяц]. А по факту все фотки могут быть свалены в одну папку.

    Очевидно, что за 15 лет вам не довелось поработать в мире моды:D
    Ответ написан
    5 комментариев
  • Как восстановить серийный номер Windows с наклейки?

    @edogs
    Если есть серийный норме самого ноутбука, то можно написать производителю, попросят как-то доказать что Вы владелец, но могут прислать серийник… или комплект дисков (за малую сумму) с рекавери и вшитым серийником.
    Ответ написан
    8 комментариев
  • Google Support это миф?

    angelov
    @angelov
    А может работников Гугла и не существует вовсе? Брин и Ларри в свое время сделали Гугл, раскрутили, и рулят всем вдвоем до сих пор, а объявления о приеме на работу, о мифическом штате сотрудников — ими же придуманная утка, а сейчас у них отдых — поэтому ответить не могут а кроме них двоих и некому
    Ответ написан
    1 комментарий
  • фриланс кодинг - стоит ли втягивать в это девушку?

    @bondbig
    Я бы вовлёк.
    В бытность студентом я пытался заниматься неким подобием «бизнеса» — занимался починкой компов на дому. Этим очень многие занимаются, но я немного расширил масштаб — давал объявления в газеты, клеил на столбы-подъезды, сделал сайт, нанял сотрудников, зарегал ИП, платил налоги по УСН и т.п. Если бы не жена — вряд ли справился бы, во всём помогала мне: на звонки отвечала, объявления клеила со мной, в общем, помогала во всём. Но она у меня вообще инициативная, сама была заинтересована.
    Ответ написан
    1 комментарий
  • Когда лучше купить ноутбук?

    akalend
    @akalend
    программирую
    это напоминает одну историю про покупку стиральной машины в Эльдорадо,
    однин мой знакомый в декабре решил купить стиральную машину, ходил регулярно и ждал скидок…
    Цена на машинку была 13-200. И вот Ура! Объявление о скидках большими буквами 10-15%. Подходит в выбранной модели и что он видит:
    Старая цена: 14-800
    Новая цена: 13-200

    Глазам не поверил!!!
    Ответ написан
    4 комментария
  • Принципы работы модема в Kindle 3 Wi-Fi+3G

    ipswitch
    @ipswitch
    IT-инженер
    www.mobileread.com/forums/showthread.php?t=60006
    www.mobileread.com/forums/showthread.php?t=103972
    www.mobileread.com/forums/showthread.php?t=102240

    есть там SIM.

    everything has to go through the Amazon web proxy servers. All other connections are blocked.

    If you're in a region which doesn't give you free web access via 3G on your Kindle then all you can access is the Kindle store and Wikipedia.
    Ответ написан
    1 комментарий