• Как исправить мой код 1С: Предприятие нахождение максимального элемента в табличной части чтоб он не выдавал ошибку?

    @Dementor
    программист, архитектор, аналитик
    Давайте смотреть, что не так с вашим кодом без детального анализа, а просто что сразу бросается в глаза:
    1. Поломанное форматирование. Пока 8 строчек как тут - это просто эстетическая боль, но когда строчек 80, 800 или 8000, то это маскирует ошибки, на которые уйдет больше чем три дня
    2. Снова таки, с точки зрения облегчения восприятия, нужно все делать в едином стиле - делаете переменные с маленькой буквы - они все должны быть с маленькой, а делаете с большой, то все уже с большой. В коде половина маленькие, половина большие без какой-либо систему. То же замечание касается ключевых слов - если не используете системное автодополнение, которое само за вас все ключевые слова пишет с большой буквы, и по личным предпочтениям начинаете писать с маленькой - то пишите с маленькой уже все подряд, а не "тогда" с маленькой, а "Цикл" с большой
    3. Использование переменных в духе "а и б сидели на трубе" крайне не рекомендовано - все переменные должны в своем имени отражать свое содержимое. Если лень писать СтрокаТабличнойЧастиГоловныхУборов, то хотя бы СтрокаТЧ, но никогда не "а"!!!
    4. Выборка из менеджера объекта полезная штука для некоторых сценариев, но конкретно тут просто увеличивается "углеродный след". Достаточно выполнить запрос сразу к табличной части, в котором тут же получить максимальное количество, а не вытаскивать в оперативку все объекты
    5. Вы уверены, что в табличной части запрещены отрицательные числа? На каком основании в переменную для сравнения вы размещаете ноль?
    6. Для вас же было бы понятнее, если бы вы не использовали явное сравнение, в котором допустили ошибку, а воспользовались стандартной функцией Макс()
    7. Ну и на финал, этот некрасивый и абсолютно не оптимальный код может даже заработать (но выдавать неправильное значение), если из переменной Макс2 (смотрим пункт №3 про нормальные наименования) типа Число не пытаться прочитать свойство "Количество_материалов". Такое ощущение, что было несколько черновиков кода и в одном из них сохранялось не максимальное значение, а сама строка табличной части, а потом все варианты свалили в единую кучу


    Upd. Я смотрел поверхностно, но другие более детально и подсказали в комментариях про необходимость обхода выборки данных с помощью метода Следующий().

    Итого, если не переписывать на запрос, то правильный код будет следующим:

    Выборка=Справочники.Варианты_головных_уборов.Выбрать(); 
    МаксКоличество = Неопределено;
    Пока Выборка.Следующий() Цикл
    	Для каждого СтрокаКоличества  из Выборка.ТабличнаяЧасть1 Цикл
    		Если МаксКоличество = Неопределено тогда
    			МаксКоличество = СтрокаКоличества.Количество_материалов;
    		Иначе
    			МаксКоличество = Макс(МаксКоличество, СтрокаКоличества.Количество_материалов);
    		КонецЕсли;        		
    	КонецЦикла; 
    КонецЦикла; 
    МаксКоличество = ?(МаксКоличество=Неопределено, 0, МаксКоличество);
    Сообщить(МаксКоличество);
    Ответ написан
    2 комментария
  • Поставить индексы на каждое поле?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если я на каждый столбец, который используется в WHERE добавлю одиночные индексы, не ухудшит ли это производительность?

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

    пока не понятно, какие индексы нужны, а какие нет.

    Вот когда закончите в основе, тогда и будете смотреть, какие запросы частые, какие критичные, и подбирать минимальный пак индексов для их оптимизации.
    Ответ написан
    4 комментария
  • Как реализовать ACID и транзакции на примере БД в виде простого текстового файла?

    Melkij
    @Melkij
    PostgreSQL DBA
    Реализовать, по сути, половину СУБД.
    Начните с талмуда Transactional Information Systems, by Gerhard Weikum and Gottfried Vossen, Morgan Kaufmann
    Ответ написан
    Комментировать
  • С чего начать обновлять пк?

    Правильный алгоритм такой:
    1. Выясняем, какие конкретно игры нужны будут. И какие у них системные требования (ну и соответственно, при каком качестве нужно играть - кому-то хватает и на низких настройках, а кому-то ультра на 4к мониторе подавай).
    2. Смотрим, какой процессор из предложенных в п.1 покроет все эти игры, и к каким мат.платам он подойдёт.
    3. Смотрим, какую память поддерживает эта мат плата, если тоже DDR3 - то возможно, память просто добавим к имеющейся, а если уже DDR4 - то придётся купить новую.
    4. Смотрим, какая видеокарта покроет все эти игры на требуемом качестве - ну и прикидываем, какой БП подойдёт - либо имеющийся (хватит ли тока по линии 12v1 для процессора и 12v2 для видеокарты, или если там одна линия то суммарный ток) и есть ли такие разъёмы для видеокарты и для процессора (4 или 8 пин для процессора, 6, 6+1, 6+2, 6+6 и т.п. для видеокарты).
    5. Прикидываем, влезет ли это всё в имеющийся корпус (а, да, при подборе процессора неплохо бы учесть что кулер нужен будет соответствующий), и нужно ли его менять.
    6. Считаем, сколько это всё стоит, и есть ли столько денег. И есть ли магазин, где это можно купить разом, или придётся по разным всё бегать закупать. Если денег меньше - идём в п.1 и пробуем вычеркнуть какие-то игры, или подобрать для них более низкие требования (вместо рекомендуемых минимальные или немного ниже рекомендуемых), и просчитываем ещё раз. И так до достижения результата.
    ...
    Пока всё считаем и собираем конфигурацию, выясняется, что каких-то железок нет, но можно взять похожее, и нужно опять всё пересчитать и перепроверить.

    P.S. При сборке нужно ещё перечитать сайты производителей мат платы, оперативки, процессора, и иногда видеокарты, чтобы исключить всякие несовместимости. Ну и про форумы не забыть - не всегда всё можно найти на сайтах производителей, но может оказаться, что похожее уже кто-то собирал, и можно почитать что да как вышло.

    Или - просто купить готовую сборку. В магазинах уже есть много разных, на любой вкус и кошелёк.
    Ответ написан
    Комментировать
  • Как синхронизировать 1С филиала в случае падения соединения?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    Две базы + Обмен / Синхронизация / РИБ
    Ответ написан
    Комментировать
  • Стоит ли бросать учебу в колледже ради узучения ЯП?

    prrrrrrr
    @prrrrrrr
    Верстаю сразу на PHP.
    стоит ли не оплачивать учебу а потратить на курсы по изучению ЯП

    facepalm.jpg
    Ответ написан
    2 комментария
  • Стоит ли бросать учебу в колледже ради узучения ЯП?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    научили

    Тебя и не должны учить. Тебе дают материал - ты его учишь. А то, что ты
    пол года отучился сказать что я чему то научился
    - это твои личные проблемы.
    стоит ли бросать учебу в колледже ради изучение ЯП

    А что, сильно тяжело после учебного дня потратить час времени на изучение программирования? Ох вейт, как я мог забыть, нужно же в обязательном порядке погулять/поиграть/позаниматься еще какой-то фигней.
    Если ты не в состоянии учиться и выделять для этого время - программирование вообще не для тебя.
    Ответ написан
    11 комментариев
  • Как исправить ошибку при просмотре проводок по документу в 1с: предприятие, бгу 1.0?

    @Dementor
    программист, архитектор, аналитик
    Тестирование и исправление вам никогда в таких ситуациях не поможет. У вас ошибка в коде!

    Переходите в модуле объекта "Документ.ИзменениеКФО_Расчеты" на строку 2236 и смотрите, что там происходит. Там есть переменная "Ссылка", от которой ожидают, что она будет ссылкой, но она есть "что-то другое". Посмотрите код выше - возможно это копипаста и не все переменные правильно переименовали.
    Ответ написан
    Комментировать
  • Синхронизация данных ЗУП ред. 3 и ERP?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    Красивые картинки...
    а ошибки то какие, пробовали Подробно смотреть....
    Ответ написан
    4 комментария
  • Изменить логику ORDER BY?

    @dimuska139
    Backend developer
    Так работает?
    SELECT * FROM product
        WHERE product .product_category = '2' 
    ORDER BY (product_subgroup='A'), product_subgroup
    Ответ написан
    3 комментария