Search
Write a publication
Pull to refresh
0
0
Send message
За 20 лет Вы так и не поняли разницу между 1с-никами. Автор писал про одного, Вы пишите совсем про другого. Есть тот, кто поддерживает и дорабатывает конфигурацию на месте — это одна профессия (статья про нее). А есть тот, кто разработал платформу/конфигурацию и продал ее Вашему предприятию — это вообще другая профессия, ему пофиг на Ваш бизнес, у него реальная цель — осеменить все вокруг с помощью 1с — это его хлеб, но это ДРУГОЙ человек, статья вообще не про него
«Вот тут забавно получается. В мире обычных (не 1С) программистов считается, что 1Сники – убогие, потому что работают с ограниченной платформой.»
Почему 1с-ников не любят другие программисты — тема для отдельной статьи.
Если коротко, по большей части — это миф, а точнее комплекс неполноценности, которыми страдают сами 1с-ники, а пользуются этим всякие тролли.
Первым ограничением платформы в истории стал переход от машинного кода к ассемблеру, и далее таких ограничений было такое количество, что между программистами разных платформ давно должна была начаться межгалактическая война. Но этой войны нет, потому что никому это не надо, ИТ развился в кучу самостоятельных веток. История пошла по такому пути, человеческие потребности пошли по такому пути, ибо никто не хочет каждое утро разбирать-собирать двигатель автомобиля, чтобы доехать до работы (иначе ты не тру-автомобилист). Единственная вещь, которая осталась неизменной — это человеческая глупость, а еще зависть в придачу.
Так что, если вам где-то встретится тру-программист, заявляющий об ограниченности чьей-то платформы, смело заставляйте его кодить на машинном языке, иначе он не поймет.
1С-ники спасут мир в том числе благодаря своему терпению.
Такой проверки в коде может и не быть
Картины классиков смотри, классическую музыку послушай, авось вдохновение придет
Результат такой практики — понимание фронтед-бекэнд-программирования
Бывает полезно
Лучшая статья, которую я читал за последнее время. Согласен абсолютно со всем

Иногда практикую создание сайта в блокноте. Чисто как испытание для мозга. Приносит удовольствие)
Перехватываешь сообщение об ошибке, записываешь в лог-файл
Кстати, интересно было бы почитать про стандарты оформления кода на разных языках
И еще вопрос: где начинать транзакцию? До начала попытки или в начале самой попытки? Есть вообще разница?
Да, соглашусь этот вариант правильный, и он мне нравится:
Попытка
    НачатьТранзакцию();
    ДелаемЧтоТо();
    ЗафиксироватьТранзакцию();
Исключение
    Если ТранзакцияАктивна() Тогда
        ОтменитьТранзакцию();
    КонецЕсли;
    ВызватьИсключение;
КонецПопытки;

Вот только не понимаю, зачем нужно
ВызватьИсключение;
1С. Ошибка «В данной транзакции уже происходили ошибки».
Причина появления данной ошибки — вызов исключительной ситуации во вложенной транзакции. Попытка создает неявную транзакцию, тем самым исключение откатывает транзакцию полностью.

Внутри вложенной транзакции вызывается исключительная ситуация, что откатывает всю транзакцию и некорректно отрабатывает. Например:

НачатьТранзакцию();


Попытка

Исключение // если тут будет вызвано исключение — то вы увидите ошибку «В данной транзакции уже происходили ошибки»

КонецПопытки;

КонецТранзакцию();
Во избежания таких ситуаций, нужно избегать использования попытки внутри транзакции.

avditor.ru/index.php/programmirovanie-1s/102-1s-oshibka-v-dannoj-tranzaktsii-uzhe-proiskhodili-oshibki
Можно еще вот так, но я не вижу в этом смысла:

Попытка
НачатьТранзакцию();
Действия();
ЗафиксироватьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
Конецесли;
КонецПопытки;
А неактивна она, потому что Исключение отменяет транзакцию )
Я пробовал отменять в блоке попытки, вылезала ошибка: «Транзакция не активна»
Ошибся в первом сообщении, вот полная конструкция:

Попытка
НачатьТранзакцию();
Действия();
ЗафиксироватьТранзакцию();
Исключение
КонецПопытки;

Почему именно так: все, что находится внутри Попытки, убивается в случае ошибок в Исключении, т.е. нет нужды отменять транзакцию, она отменится автоматически. Фиксация транзакции расположена последней в очереди внутри попытки. По-моему, вопрос закрыт. Как вы считаете?
Автор, я не претендую на абсолютную истину, но где-то читал, что верна следующая конструкция:

Попытка
НачатьТранзакцию();

Исключение
КонецПопытки;

Information

Rating
Does not participate
Registered
Activity